Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

internal table events

Former Member
0 Kudos

hai i need some internal table events with some sample code

3 REPLIES 3

Former Member
0 Kudos

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)

former_member189629
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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>