10-09-2007 11:10 AM
10-09-2007 12:00 PM
Hi,
Basic list: The basic list is displayed after all system-triggered events that are coded are executed:
INITIALIZATION.
AT SELECTION-SCREEN.
START-OF-SELECTION.
GET <table>.
GET <table> LATE.
END-OF-SELECTION.
TOP-OF-PAGE.
END-OF-PAGE.
Detail list: A detail list is displayed after a user event is executed:
AT PF##. or
AT LINE-SELECTION. or
AT USER-COMMAND.
REPORT YIRxx05_1 .
TABLES : lfa1.
START-OF-SELECTION.
SELECT lifnr name1 ort01
FROM lfa1 INTO CORRESPONDING FIELDS OF lfa1.
WRITE : / lfa1-lifnr, 20 lfa1-name1,50 lfa1-ort01.
ENDSELECT.
SET PF-STATUS 'BASE'.
TOP-OF-PAGE.
WRITE: / 'VENDOR ID VENDOR NAME CITY'.
TOP-OF-PAGE DURING LINE-SELECTION.
WRITE: 'sy-lsind.= ',SY-LSIND.
CASE SY-PFKEY.
WHEN 'INVOICES'.
WRITE 'INVOICES'.
WHEN 'SORTD'.
WRITE ' SORT IN DESCENDING ORDER'.
WHEN 'SORTA'.
WRITE ' SORT IN ASCENDING ORDER'.
WHEN 'TOTA'.
WRITE 'TOTAL'.
ENDCASE.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'INVO'.
SY-LSIND = 1.
SET PF-STATUS 'INVOICES'.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
WRITE : /'THIS WINDOW WILL EVENTUALLY CONTAIN' ,
/ ' INVOICES FOR SELECTED VENDOR'.
WHEN 'SORTD'.
SET PF-STATUS 'SORTD'.
SY-LSIND = 2.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
WRITE : /'THIS WINDOW WILL EVENTUALLY CONTAIN' ,
/ ' INVOICES FOR SELECTED VENDOR, IN DESCENDING ORDER'.
WHEN 'SORTA'.
SET PF-STATUS 'SORTA'.
SY-LSIND = 2.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
WRITE : /'THIS WINDOW WILL EVENTUALLY CONTAIN' ,
/ ' INVOICES FOR SELECTED VENDOR, IN ASCENDING ORDER'.
WHEN 'TOTA'.
SET PF-STATUS 'TOTA'.
SY-LSIND = 2.
WINDOW STARTING AT 10 4
ENDING AT 77 14.
WRITE : /'THIS WINDOW WILL EVENTUALLY CONTAIN' ,
/ ' TOTAL OF THE INVOICES FOR SELECTED VENDOR.'.
ENDCASE.
Assign points if useful.
Regards
(YUGANDHAR.P)
10-09-2007 12:02 PM
Chaaya,
The Control-Break Stmts are...
1. At-new
2. At-first.
3. At-last.
4. At-end-of.
5 on-change -of..
See the example below for usage............
DATA: BEGIN OF ITAB OCCURS 0,
MATNR TYPE MATNR,
WERKS TYPE WERKS_D,
VALUE TYPE NETPR,
END OF ITAB.
ITAB-MATNR = 'ABC'.
ITAB-WERKS = '0100'.
ITAB-VALUE = '10.00'.
APPEND ITAB.
ITAB-MATNR = '1ABC'.
ITAB-WERKS = '0100'.
ITAB-VALUE = '10.00'.
APPEND ITAB.
SORT ITAB BY MATNR WERKS.
LOOP AT ITAB.
AT END OF MATNR.
SUM.
WRITE: / ITAB-MATNR, 'MATERIAL TOTAL - ', ITAB-VALUE.
ENDAT.
AT END OF WERKS.
SUM.
WRITE: / ITAB-WERKS, 'PLANT TOTAL - ', ITAB-VALUE.
ENDAT.
ENDLOOP.
reward if helpful,
Karthik
10-09-2007 12:07 PM
HI chaaya
is this what you wanted to know about.....
<b>internal table controling events are....
at first------endat.
at new <field>----
endat.
at end of <field>.
SUM. " here perform sum operation on specified field.
endat.
at last.
SUM.
endat.
the above all control statments valide only if we keep inside the LOOP AT < table>
ENDLOOP.EXAMPLE.
**provide tables work area.
tables: kna1,vbak.
**selection screen logic.
select-options: s_kunnr for kan1-kunnr.
**structure creation
data: begin of it_tab,
it_kunnr type kna1-kunnr,
it_vbelntype vbak-vbeln,
it_erdat type vabk-erdat,
it_netwr type vbak-netwr,
end of it_tab.
**internal table creation.
data: itab_wa type it_itab,
itab_body type table of it_itab.
select statement.
select distinct kna1kunnr vbakvbeln vbakerdat vbaknetwr into table itab_body from kna1 inner join vbak on kna1kunnr = vbakkunnr where kna1~kunnr in s_kunnr.
***internal table control statements.
loop at itab_body into itab_wa.
at first.
write:/ 'sales order details'.
endat.
at new kunnr.
write:/ 'acc number:', itab_wa-erdat
endat.
at end of kunnr.
sum.
write:/ 'total', itab_wa-netwr.
endat.
at last.
sum.
write:/ 'grand total', itab_wa-netwr.
endat.
endloop.</b>