‎2008 Aug 01 10:45 AM
BEGIN OF t_final,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
segal TYPE segal,
aedat TYPE erdat,
mblnr TYPE mblnr,
END OF t_final.
i_final is my final internal table.
Heading for those fields in the output screen should be:
1.PO number(ebeln).
2.PO Line item.(ebelp).
3.Ex/Non Ex.(segal).
4.Date in.(aedat)
5.MM document.
Above is my final structure.
How can display data in classical report display format.
kindly guide pelase.My program is done. I want to display data of i_final[] using classical report format.
‎2008 Aug 01 10:57 AM
Hi,
Use below code it will solve your problem.
if not t_final[] is initial.
uline.
format color col_heading on.
write:/01 sy-vline,
04 'PO number',
24 sy-vline,
26 'PO Line item',
44 sy-vline,
46 'Ex/Non Ex.',
56 sy-vline,
57 'Date in',
75 sy-vline,
79 'MM document',
112 sy-vline.
uline.
format color off.
loop at t_final.
format color col_normal on.
write:/01 sy-vline,
04 t_final-ebeln,
24 sy-vline,
26 t_final-ebelp,
44 sy-vline,
46 t_final-segal,
56 sy-vline,
57 t_final-erdat,
75 sy-vline,
79 t_final-mblnr,
112 sy-vline.
format color off.
endloop.
uline.
else.
message i000 with text-i05.
endif.
Regards,
Koti reddy.
‎2008 Aug 01 10:47 AM
Hello Ganguly babu..
Use statement
Loop at <table>.
write: <Field1>, <Field 2> , <Field 2> etc...
endloop.
‎2008 Aug 01 10:48 AM
hi,
Put the Data inside the Inrternal TAble.
Use Write Statement.
try.
Loop at i_table into t_table.
write:/ t_table-vbeln,
t_table-<field>
endloop.
Regards
Sumit Agarwal
‎2008 Aug 01 10:49 AM
hiiii
you can use select query for your fields..and use it like below code for displaying with header
SELECT sbook~carrid "CARRIER ID
sbook~connid "CONNECTION ID
sbook~fldate "FLIGHT DATE
sbook~customid "CUSTOM ID
scustom~name "NAME OF THE CUSTOMER
sbook~wunit "UNIT
INTO table t_table
FROM scustom LEFT OUTER JOIN sbook
ON scustom~id = sbook~customid.
write :/2 'carrid',
14 'connid',
22 'fldate',
35 'custonid',
50 'name',
75 'wunit'.
skip.
w_carrid = p_carrid.
w_connid = p_connid.
loop at t_table into fs_table where carrid = w_carrid and connid =
w_connid.
write:/2 fs_table-carrid,
14 fs_table-connid,
22 fs_table-fldate,
35 fs_table-customerid,
50 fs_table-name,
75 fs_table-wunit.
endloop. "LOOP ENDregards
twinkal
‎2008 Aug 01 10:49 AM
Friend,
take a help from this:
REPORT yfven001 .
* Program Description
* List vendor activity for cleared/non cleared items from specific
* activity date.
TABLES: lfa1, "Vendor Master
lfb1, "Vendor Company Master
lfm1, "Vendor Purchase Master
bsik, "Accounting Secondary Index - By Vendor
bsak. "Accounting Secondary Index - By Vendor - Cleared Items
DATA: creation_date TYPE d.
DATA: i_lfb1_i LIKE lfb1 OCCURS 0 WITH HEADER LINE.
DATA: i_lfb1_e LIKE lfb1 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF i_lfb1 OCCURS 0,
bukrs LIKE lfb1-bukrs,
END OF i_lfb1,
BEGIN OF i_bsik OCCURS 0,
bukrs LIKE bsik-bukrs,
END OF i_bsik.
DATA: BEGIN OF itab_lfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr, " Vendor Number
name1 LIKE lfa1-name1, " Name
land1 LIKE lfa1-land1, " Country
erdat LIKE lfa1-erdat,
belnr LIKE bsak-belnr, " Last Document #
bukrs LIKE bsak-bukrs, " Company
budat LIKE bsak-budat, " Last Posting Date
loevm LIKE lfa1-loevm, "deletion flag
sperr LIKE lfa1-sperr, "block flag
sperm LIKE lfa1-sperm, "block flag for Purchase
marked(1) , "Marked for del and blcked
remark(50),
END OF itab_lfa1.
*----------------------------------------------------------------------*
* Parameter and Select-Options *
*----------------------------------------------------------------------*
SELECTION-SCREEN: SKIP,
BEGIN OF BLOCK b01 WITH FRAME TITLE text-t01.
SELECT-OPTIONS: i_lifnr FOR lfa1-lifnr .
PARAMETERS: i_actdt LIKE bsik-budat.
SELECT-OPTIONS: i_land1 FOR lfa1-land1.
*SELECT-OPTIONS: s_bukrs FOR lfb1-bukrs.
SELECTION-SCREEN: END OF BLOCK b01.
SELECTION-SCREEN: SKIP,
BEGIN OF BLOCK b02 WITH FRAME TITLE text-t02.
SELECTION-SCREEN: SKIP.
PARAMETERS: i_vend RADIOBUTTON GROUP srt,
i_vctry RADIOBUTTON GROUP srt.
SELECTION-SCREEN: END OF BLOCK b02.
SELECTION-SCREEN: SKIP,
BEGIN OF BLOCK ven WITH FRAME TITLE text-t03.
PARAMETERS: ven AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN: END OF BLOCK ven.
START-OF-SELECTION.
PERFORM fill_itab_lfa1.
*&---------------------------------------------------------------------*
*& Form fill_itab_lfa1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fill_itab_lfa1.
CLEAR itab_lfa1. REFRESH itab_lfa1.
* creation_date = sy-datum - p_exdays.
SELECT *
FROM lfa1
INTO CORRESPONDING FIELDS OF TABLE itab_lfa1
WHERE lifnr IN i_lifnr AND
land1 IN i_land1 AND
erdat < i_actdt.
* select only those vendors which exist in selected company codes
IF NOT itab_lfa1[] IS INITIAL.
CLEAR i_lfb1_i.
REFRESH i_lfb1_i.
SELECT *
FROM lfb1
INTO CORRESPONDING FIELDS OF TABLE i_lfb1_i
FOR ALL ENTRIES IN itab_lfa1
WHERE lifnr EQ itab_lfa1-lifnr.
* and bukrs in s_bukrs.
SORT i_lfb1_i.
* remove vendors which do not exist in selected company codes
LOOP AT itab_lfa1.
READ TABLE i_lfb1_i WITH KEY lifnr = itab_lfa1-lifnr
BINARY SEARCH.
IF sy-subrc <> 0.
DELETE itab_lfa1.
ENDIF.
ENDLOOP.
IF NOT itab_lfa1[] IS INITIAL.
CLEAR i_lfb1_e.
REFRESH i_lfb1_e.
SELECT *
FROM lfb1
INTO CORRESPONDING FIELDS OF TABLE i_lfb1_e
FOR ALL ENTRIES IN itab_lfa1
WHERE lifnr EQ itab_lfa1-lifnr.
* and bukrs not in s_bukrs.
SORT i_lfb1_e.
ENDIF.
ENDIF.
SORT itab_lfa1 BY lifnr.
LOOP AT itab_lfa1.
PERFORM get_last_activity.
ENDLOOP.
ENDFORM. " fill_itab_lfa1
END-OF-SELECTION.
PERFORM print_itab_lfa1.
TOP-OF-PAGE.
WRITE: / 'Vendor',
12 'Vendor Name',
48 'Ctry',
52 'Cr Date',
63 'Document',
74 'CoCd',
79 'Last Act.Dte',
100 text-003.
ULINE.
*&---------------------------------------------------------------------*
*& Form get_last_activity
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_last_activity.
DATA: latest_date1 TYPE d,
latest_date2 TYPE d.
CLEAR: latest_date1, latest_date2.
SELECT MAX( budat ) INTO latest_date1 FROM bsik WHERE
lifnr = itab_lfa1-lifnr.
SELECT MAX( augdt ) INTO latest_date2 FROM bsak WHERE
lifnr = itab_lfa1-lifnr.
IF latest_date1 > latest_date2.
IF latest_date1 < i_actdt.
DELETE itab_lfa1.
ELSE.
SELECT SINGLE budat belnr bukrs INTO
(itab_lfa1-budat ,itab_lfa1-belnr ,itab_lfa1-bukrs )
FROM bsik WHERE
lifnr = itab_lfa1-lifnr AND
budat = latest_date1.
MODIFY itab_lfa1.
ENDIF.
ELSEIF NOT latest_date2 IS INITIAL.
IF latest_date2 < i_actdt.
DELETE itab_lfa1.
ELSE.
SELECT SINGLE budat belnr bukrs INTO
(itab_lfa1-budat ,itab_lfa1-belnr ,itab_lfa1-bukrs)
FROM bsak WHERE
lifnr = itab_lfa1-lifnr AND
augdt = latest_date2.
MODIFY itab_lfa1.
ENDIF.
ELSEIF latest_date1 EQ '00000000' AND
latest_date2 EQ '00000000'.
DELETE itab_lfa1.
ENDIF.
ENDFORM. " get_last_activity
*&---------------------------------------------------------------------*
*& Form print_itab_LFA1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM print_itab_lfa1.
DATA : total TYPE p.
IF i_vend = 'X'.
SORT itab_lfa1 BY lifnr land1.
ELSE.
i_vctry = 'X'.
SORT itab_lfa1 BY land1 lifnr.
ENDIF.
CLEAR total.
LOOP AT itab_lfa1.
IF ven = ''.
SELECT bukrs FROM lfb1 INTO TABLE i_lfb1 WHERE lifnr = itab_lfa1-lifnr.
SELECT bukrs FROM bsik INTO TABLE i_bsik FOR ALL ENTRIES IN i_lfb1
WHERE bukrs = i_lfb1-bukrs AND
lifnr = itab_lfa1-lifnr.
IF sy-subrc = 0.
itab_lfa1-remark = text-004.
ENDIF.
IF sy-subrc NE 0.
SELECT SINGLE * FROM lfa1 INTO lfa1 WHERE lifnr = itab_lfa1-lifnr.
lfa1-sperr = 'X'.
lfa1-sperq = '99'.
UPDATE lfa1 FROM lfa1.
COMMIT WORK.
itab_lfa1-remark = text-005.
ENDIF.
ENDIF.
MODIFY itab_lfa1 TRANSPORTING remark.
IF itab_lfa1-loevm NE 'x' OR itab_lfa1-loevm NE 'X'.
total = total + 1.
WRITE: / itab_lfa1-lifnr, " Vendor Number
itab_lfa1-name1, " Name
itab_lfa1-land1, " Country
itab_lfa1-erdat,
itab_lfa1-belnr, " Last Document #
itab_lfa1-bukrs, " Company
itab_lfa1-budat, " Last Posting Date
itab_lfa1-loevm, "deletion flag
itab_lfa1-sperr, "block flag
itab_lfa1-sperm, "block flag for Purchase
itab_lfa1-remark UNDER text-003.
ENDIF.
ENDLOOP.
* BOC by Bhavina ...
SKIP 1.
WRITE :/ sy-uline.
WRITE : / ' Total Number of Vendors ' , total RIGHT-JUSTIFIED .
WRITE :/ sy-uline.
* EOC ........
ENDFORM. " print_itab_LFA1Amit.
‎2008 Aug 01 10:51 AM
Hi,
U can do like this..
END-OF-SELECTION.
Write : /2(20) 'PO Number' , (20) 'PO Line Item' , (20) 'Ex/Non Ex' , (20) 'Date In' , (20) 'MM document'.
loop at i_final.
write : /2(20) i_final-ebeln , (20) i_final-ebelp , (20) i_final-segal , (20) i_final-aedat , (20) i_final-mblnr.
endloop.
‎2008 Aug 01 10:52 AM
Loop at i_final .
At first.
Write: / '1.PO number(ebeln).',
'2.PO Line item.(ebelp).',
'3.Ex/Non Ex.(segal).',
'4.Date in.(aedat)',
'5.MM document.'.
Endat.
Write: / i_final-ebeln,
i_final-ebelp,
i_final-segal,
i_finalaedat,
i_final-mblnr.
Endloop.With luck,
Pritam.
‎2008 Aug 01 10:52 AM
Hi Friend,
You can use the keyword UNDER.
Define text elements with the required headings and write the fields under those text elements.
check this code snippet.
WRITE:/ 25 'Ordered Quan'(005),
40 'Received Quan'(006).
loop at itab.
WRITE:/t_eket-menge UNDER text-005,
t_eket-wemng UNDER text-006.
endloop.Here text-005 is 'Ordered Quan'.
Here text-006 is 'Received Quan'.
Regards,
Chandra Sekhar
‎2008 Aug 01 10:57 AM
Hi,
Use below code it will solve your problem.
if not t_final[] is initial.
uline.
format color col_heading on.
write:/01 sy-vline,
04 'PO number',
24 sy-vline,
26 'PO Line item',
44 sy-vline,
46 'Ex/Non Ex.',
56 sy-vline,
57 'Date in',
75 sy-vline,
79 'MM document',
112 sy-vline.
uline.
format color off.
loop at t_final.
format color col_normal on.
write:/01 sy-vline,
04 t_final-ebeln,
24 sy-vline,
26 t_final-ebelp,
44 sy-vline,
46 t_final-segal,
56 sy-vline,
57 t_final-erdat,
75 sy-vline,
79 t_final-mblnr,
112 sy-vline.
format color off.
endloop.
uline.
else.
message i000 with text-i05.
endif.
Regards,
Koti reddy.
‎2008 Aug 01 11:04 AM
got the idea how to do.thanks all.
requirement is to use use uline, vline also so that it'll look like alv grid.
‎2008 Aug 01 11:07 AM
Hi,
Check out following code :
WRITE AT: /1(10) 'PO Number',
12(20) 'PO Line item',
34(15) 'Ex/Non Ex.',
51(18) 'Date in.',
71(15) 'MM document'.
loop at i_final into w_final.
WRITE AT: /1(10) w_final-ebeln,
12(20) w_final-ebelp,
34(15) w_final-segal,
51(18) w_final-aedat,
71(15) w_final-mblnr.
endloop.