Application Development and Automation 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: 
Read only

events

Former Member
0 Likes
881

can anybody describe me each and every event.

waiting for ur reply

6 REPLIES 6
Read only

Former Member
0 Likes
840

hi,

chk the coding below

&----


*& Report ZWK22671

*&

&----


*&

*&

&----


REPORT zwk22671 LINE-COUNT 40(3)

LINE-SIZE 200

NO STANDARD PAGE HEADING.

*----


*TABLES

*----


TABLES : mkpf , "MATERIAL DOCUMENT

mseg , "DOCUMENT SEGMENT : MATERIAL

t156t , "MOVEMENT TYPE TEXT

makt. "MATERIAL DESCRIPTIONS

*----


**DECLARATION OF STRUCTURE , INTERNAL TABLES , VARIABLES

*----


*STRUCTURE OF INTERNAL TABLES

DATA : BEGIN OF xtab,

mblnr TYPE mkpf-mblnr , "DOCUMENT NUMBER

mjahr TYPE mkpf-mjahr , "YEAR

budat TYPE mkpf-budat , "POST DATE

blart TYPE mkpf-blart , "DOCUMENT TYPE

END OF xtab.

DATA : BEGIN OF ytab,

mblnr TYPE mseg-mblnr , "DOCUMENT NUMBER

mjahr TYPE mseg-mjahr , "YEAR

zeile TYPE mseg-zeile , "ITEM NUMBER

bwart TYPE mseg-bwart , "MOVEMENT TYPE

btext TYPE t156t-btext , "MOVEMENT DESCRIPTION

matnr TYPE mseg-matnr , "MATERIAL NUMBER

maktx TYPE makt-maktx , "MATERIAL DESCRIPTION

meins TYPE mseg-meins , "UNIT OF MEASURE

menge TYPE mseg-menge , "QUANTITY

dmbtr TYPE mseg-dmbtr , "AMOUNT

END OF ytab.

*INTERNAL TABLE DECLARATION

DATA : i_tab1 LIKE STANDARD TABLE OF xtab WITH HEADER LINE. "INTERNAL TABLE 1 : CONTAINS MATERIAL DETAILS

DATA : i_tab2 LIKE STANDARD TABLE OF ytab WITH HEADER LINE. "INTERNAL TABLE 2 : CONTAINS ITEMWISE MATERIAL DETAILS

*VARIABLES

DATA : v_color TYPE sy-tabix , "FOR SETTING COLOR FORMATS DURING GENERATING REPORT

v_field(20) , "FOR STORING THE CLICKED FIELD NAME

v_value(20) , "FOR STORING THE CLICKED FIELD VALUE

v_mblnr TYPE mkpf-mblnr , "FOR VALIDATING DOCUMENT NUMBER

v_mjahr TYPE mkpf-mjahr , "FOR VALIDATING DOCUMENT YEAR

v_bwart TYPE mseg-bwart , "FOR VALIDATING MOVEMENT TYPE

v_matnr TYPE mseg-matnr . "FOR VALIDATING MATERIAL NUMBER

*----


**SELECTION-SCREEN

*----


SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_mblnr FOR mkpf-mblnr , "DOCUMENT NUMBER

s_mjahr FOR mkpf-mjahr OBLIGATORY, "DOCUMENT YEAR

s_bwart FOR mseg-bwart NO INTERVALS NO-EXTENSION, "MOVEMENT TYPE

s_matnr FOR mseg-matnr . "MATERIAL NUMBER

SELECTION-SCREEN : END OF BLOCK blk1.

*----


  • AT SELECTION-SCREEN

*----


AT SELECTION-SCREEN.

PERFORM validation. "PERFORMS VALIDATION OF SELECTION-SCREEN FIELDS

*----


*TOP-OF-PAGE

*----


TOP-OF-PAGE.

PERFORM header. "CREATES HEADER FOR THE BASIC LIST

*----


*END-OF-PAGE

*----


END-OF-PAGE. "CREATES FOOTER FOR THE BASIC AND SECONDARY LIST

PERFORM footer.

*----


*START-OF-SELECTION

*----


START-OF-SELECTION.

PERFORM generation_basic. "GENERATES REPORT FOR BASIC LIST WHICH CONTAINS DOCUMENT NO , DOCUMENT YEAR

"POST DATE , DOCUMENT TYPE.

*----


*END-OF-SELECTION

*----


END-OF-SELECTION.

PERFORM report_basic. "DISPLAY REPORT FOR BASIC LIST

*----


*AT LINE-SELECTION

*----


AT LINE-SELECTION.

PERFORM generation_secondary. "GENERATES REPORT FOR SECONDARY LIST BASED ON THE DOCUMENT NUMBER AND DOCUMENT YEAR

"WHICH CONTAINS DOCUMENT NO , YEAR , ITEM NO , MOVEMENT TYPE , MOVEMENT DESCRIPTION ,

"MATERIAL NUMBER , MATERIAL DESC , UNIT OF MEASURE , QUANTITY AND AMOUNT

*----


*TOP-OF-PAGE DURING LINE-SELECTION

*----


TOP-OF-PAGE DURING LINE-SELECTION.

PERFORM header_secondary. "CREATES HEADER FOR THE SECONDARY LIST

*----


*AT USER-COMMAND

*----


AT USER-COMMAND.

PERFORM user_secondary. "SUBROUTINE FOR HANDLING USER EVENTS

&----


*& Form VALIDATION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM validation .

*VALIDATING MATERIAL DOCUMENT NUMBER

SELECT SINGLE mblnr

INTO v_mblnr

FROM mkpf

WHERE mblnr IN s_mblnr.

IF sy-subrc NE 0.

MESSAGE 'ENTER CORRECT DOCUMENT NUMBER' TYPE 'E'.

ENDIF.

*VALIDATING MATERIAL DOCUMENT YEAR

SELECT SINGLE mjahr

INTO v_mjahr

FROM mkpf

WHERE mjahr IN s_mjahr.

IF sy-subrc NE 0.

MESSAGE 'ENTER CORRECT MATERIAL DOCUMENT YEAR' TYPE 'E'.

ENDIF.

*VALIDATING MOVEMENT TYPE

SELECT SINGLE bwart

INTO v_bwart

FROM mseg

WHERE bwart IN s_bwart.

IF sy-subrc NE 0.

MESSAGE 'ENTER CORRECT MOVEMENT TYPE' TYPE 'E'.

ENDIF.

*VALIDATING MATERIAL NUMBER

SELECT SINGLE matnr

INTO v_matnr

FROM mseg

WHERE matnr IN s_matnr.

IF sy-subrc NE 0.

MESSAGE 'ENTER CORRECT MATERIAL NUMBER' TYPE 'E'.

ENDIF.

ENDFORM. " VALIDATION

&----


*& Form HEADER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header .

WRITE :/30 'MATERIAL DOCUMENTS' COLOR 1. "TITLE OF BASIC LIST

WRITE :/1(89) sy-uline.

FORMAT COLOR 1.

WRITE :/1 sy-vline ,

3 'DOCUMENT NUMBER' ,

23 sy-vline ,

25 'YEAR' ,

45 sy-vline ,

47 'POST DATE' ,

67 sy-vline ,

69 'DOCTYP' ,

89 sy-vline .

FORMAT RESET.

WRITE :/1(89) sy-uline.

ENDFORM. " HEADER

&----


*& Form FOOTER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM footer .

IF sy-lsind EQ 0. "CHECKS WHICH LIST IS IT BASIC LIST OR SECONDARY (AND NO. OF SECONDARY LIST)

WRITE :/1(89) sy-uline.

ELSEIF sy-lsind EQ 1.

WRITE :/1(192) sy-uline.

ENDIF.

ENDFORM. " FOOTER

&----


*& Form GENERATION_BASIC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM generation_basic .

SELECT mkpf~mblnr "DOCUMENT NUMBER

mkpf~mjahr "DOCUMENT YEAR

mkpf~budat "POST DATE

mkpf~blart "DOCUMENT TYPE

INTO TABLE i_tab1

FROM mkpf INNER JOIN mseg ON mkpfmjahr EQ msegmjahr AND

mkpfmblnr EQ msegmblnr

WHERE mkpf~mblnr IN s_mblnr

AND mkpf~mjahr IN s_mjahr

AND mseg~bwart IN s_bwart

AND mseg~matnr IN s_matnr.

IF sy-subrc NE 0.

WRITE 😕 'MATERIAL DATA NOT FOUND'.

ENDIF.

DELETE ADJACENT DUPLICATES FROM i_tab1 COMPARING mblnr mjahr.

ENDFORM. " GENERATION_BASIC

&----


*& Form REPORT_BASIC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM report_basic .

LOOP AT i_tab1.

v_color = sy-tabix MOD 2.

IF v_color EQ 0.

FORMAT COLOR 1 INTENSIFIED OFF.

ELSE.

FORMAT COLOR 2 INTENSIFIED OFF.

ENDIF.

WRITE :/1 sy-vline ,

3 i_tab1-mblnr ,

23 sy-vline ,

25 i_tab1-mjahr ,

45 sy-vline ,

47 i_tab1-budat ,

67 sy-vline ,

69 i_tab1-blart ,

89 sy-vline .

HIDE : i_tab1-mblnr , i_tab1-mjahr. "STORING THE VALUE OF FIELDS CLICKED IN SYSTEM AREA

ENDLOOP.

FORMAT RESET.

WRITE :/1(89) sy-uline.

ENDFORM. " REPORT_BASIC

&----


*& Form GENERATION_SECONDARY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM generation_secondary .

IF sy-lsind EQ 1.

SET PF-STATUS 'DISPLAY'.

GET CURSOR FIELD v_field VALUE v_value. "GET THE FIELD VALUE AND NAME WHERE THE CURSOR WAS CLICKED

CASE v_field.

WHEN 'I_TAB1-MBLNR'. "DISPLAYS SECONDARY LIST ONLY IF DOCUMENT NUMBER IS CLICKED

SELECT mseg~mblnr "DOCUMENT NUMBER

mseg~mjahr "DOCUMENT YEAR

mseg~zeile "ITEM NUMBER

mseg~bwart "MOVEMENT TYPE

t156t~btext "MOVEMENT DESCRIPTION

mseg~matnr "MATERIAL NUMBER

makt~maktx "MATERIAL DESCRIPTION

mseg~meins "UNIT OF MEASURE

mseg~menge "QUANTITY

mseg~dmbtr "AMOUNT

INTO TABLE i_tab2

FROM ( ( mseg INNER JOIN t156t

ON msegbwart EQ t156tbwart )

INNER JOIN makt

ON msegmatnr EQ maktmatnr )

WHERE mseg~mblnr EQ i_tab1-mblnr

AND mseg~mjahr EQ i_tab1-mjahr

AND t156t~spras EQ sy-langu

AND makt~spras EQ sy-langu.

DELETE ADJACENT DUPLICATES FROM i_tab2 COMPARING mblnr mjahr.

WHEN OTHERS.

MESSAGE 'SELECT DOCUMENT NUMBER' TYPE 'E'.

ENDCASE.

LOOP AT i_tab2.

v_color = sy-tabix MOD 2.

IF v_color EQ 0.

FORMAT COLOR 1 INTENSIFIED OFF.

ELSE.

FORMAT COLOR 2 INTENSIFIED OFF.

ENDIF.

WRITE :/1 sy-vline ,

3 i_tab2-mblnr ,

12 sy-vline ,

14 i_tab2-mjahr ,

19 sy-vline ,

21 i_tab2-zeile ,

30 sy-vline ,

32 i_tab2-bwart ,

40 sy-vline ,

42 i_tab2-btext ,

72 sy-vline ,

74 i_tab2-matnr ,

94 sy-vline ,

96 i_tab2-maktx ,

146 sy-vline ,

148 i_tab2-meins ,

153 sy-vline ,

155 i_tab2-menge ,

170 sy-vline ,

172 i_tab2-dmbtr ,

192 sy-vline .

ENDLOOP.

WRITE :/1(192) sy-uline.

FORMAT RESET.

ELSEIF sy-lsind EQ 2.

GET CURSOR FIELD v_field VALUE v_value. "GET THE FIELD VALUE AND NAME WHERE THE CURSOR WAS CLICKED

CASE v_field.

WHEN 'I_TAB2-MBLNR'. "DISPLAYS SECONDARY LIST ONLY IF DOCUMENT NUMBER IS CLICKED

SET PARAMETER ID : "SETTING PARAMETER ID FOR DOCUMENT NUMBER AND YEAR.

'MBN' FIELD i_tab2-mblnr ,

'MJA' FIELD i_tab2-mjahr.

CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN. "CALLING TRABSACTION CODE 'MBO3'.

WHEN OTHERS.

MESSAGE 'SELECT DOCUMENT NUMBER' TYPE 'E'.

ENDCASE.

ENDIF.

ENDFORM. " GENERATION_SECONDARY

&----


*& Form HEADER_SECONDARY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header_secondary .

WRITE :/50 'ITEMWISE MATERIAL DOCUMENTS' COLOR 1.

WRITE :/1(192) sy-uline.

FORMAT COLOR 1.

WRITE :/1 sy-vline ,

3 'DOCUMENT NO' ,

12 sy-vline ,

14 'YEAR' ,

19 sy-vline ,

21 'ITEM NO.' ,

30 sy-vline ,

32 'MOV TYP' ,

40 sy-vline ,

42 'MOV DESCRIPTION' ,

72 sy-vline ,

74 'MATERIAL NO' ,

94 sy-vline ,

96 'MATERIAL DESCRIPTION' ,

146 sy-vline ,

148 'UOM' ,

153 sy-vline ,

155 'QUANTITY' ,

170 sy-vline ,

172 'AMOUNT' ,

192 sy-vline .

WRITE :/1(192) sy-uline.

FORMAT RESET.

ENDFORM. " HEADER_SECONDARY

&----


*& Form USER_SECONDARY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM user_secondary .

IF sy-ucomm EQ 'DISPLAY'. "EXECUTES ONLY IF 'DISPLAY DOCUMENTS' ITEM IS CLICKED ON APPLICATION TOOL BAR.

IF sy-lsind EQ 2.

GET CURSOR FIELD v_field VALUE v_value. "GET THE FIELD VALUE AND NAME WHERE THE CURSOR WAS CLICKED

CASE v_field.

WHEN 'I_TAB2-MBLNR'. "DISPLAYS SECONDARY LIST ONLY IF DOCUMENT NUMBER IS CLICKED

SET PARAMETER ID :

'MBN' FIELD i_tab2-mblnr ,

'MJA' FIELD i_tab2-mjahr.

CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.

WHEN OTHERS.

MESSAGE 'SELECT DOCUMENT NUMBER' TYPE 'E'.

ENDCASE.

ENDIF.

LEAVE PROGRAM.

ENDIF.

ENDFORM. " USER_SECONDARY

*&----


**& Module USER_COMMAND_0100 INPUT

*&----


    • text

*----


*module USER_COMMAND_0100 input.

*

*if sy-ucomm eq 'SUBMIT'.

*

*submit zwk22671. " and return using selection-set 'MATERIAL VAR'.

*

*ENDIF.

*

*

*

*endmodule. " USER_COMMAND_0100 INPUT

reagards,

Read only

Former Member
0 Likes
840

Hi,,

Initialisation

At selection-screen

At selection-screen output

Start-of-selection

top_of_page

end_of_page

End_of_selection

The event are triggered depended on the way the output is generated .

for eg:

Initialization : triggered when the report is loaded in memory.

At selection-screen output : triggered when the selection screen is loaded in memory before being displayed.

At selection-screen / <field> : before leaving the selection screen.

start-of-selection : the first event for displaying the report.

end-of-selection : after the start-of-selection is completed.

classiscal report events.

top-of-page : every time a new page is started in the list.

end-of-page : every time the list data reaches the footer region of the page.

interactive report events.

top of page during line selection : top of page event for secondary list.

at line-selection : evey time user dbl-clicks(F2) on the list data.

at pF<key> : function key from F5 to F12 to perform interactive action on the list.

pls give reward if it helpful

thanks

Vana

Read only

Former Member
0 Likes
840

Hi

Read Carefully..

Common Events:

1. Intialization:

This is the first event will be trigerred among all the events. In this event you will assigning values to variables.

For eg: if you want to display comments on the selection -screen.

v1 = 'HAI'. and write this variable in the at selection screen then HAI will be displayed in the selection screen.

2. At Selection-screen OUTPUT.

This is triggered before displaying the selection screen. It's just like PBO in Module pool.

3. At Selection-screen.

This event is triggered when the before leaving the selection screen.

4. Start-of-selection.

this is default event trigerred for every executable program. Here you can do all the retrival logic.

5. End-of-selection:

This event is triggered after the start-of-selection. to display the contents on the report.

Classical report events:

1.Top-of-page: Every time a new page is triggered. Mainly this is used for header of the report.

2. End-of-page : every time the list data reaches the footer region of the page.

Interactive report events.

top of page during line selection : top of page event for secondary list.

1. At line-selection : evey time user dbl-clicks(F2) on the list data.

2. At pF<key> :function key from F5 to F12 to perform interactive action on the lis

3. At user-command: to assign the function code for the button on the report.

It's just like PAI of the Module pool program.

Also Check This Link..

http://www.sap-img.com/abap/events-related-to-reporting.htm

Reward All Helpfull Answers........

Read only

Former Member
0 Likes
840

Hai,

<b>Events in Dialog Program</b>

PBO - Process Before Output

PAI - Process After Input

POH - Process on Help

POV - Process on Valure Request.

<b>Events in ABAP Programming</b>

LOAD-OF-PROGRAM

INITIALIZATION

AT SELECTION-SCREEN OUTPUT

<b>Selection Screen Events</b>

INTIALIZATION.

START-OF –SELECTION.

END-OF-SELECTION.

AT USER-COMMAND.

AT LINE-SELECTION

AT PFFUNCTION KEY NUMBER

AT SELECTION-SCREEN

AT NEW FIELD

AT END OF FIELD

AT FIRST

AT LAST

AT FIELD GROUP

TOP OF PAGE

END OF PAGE

<b>Events in Interactive Report</b>

AT line Selection

AT user-command

Regards,

Padmam.

Read only

Former Member
0 Likes
840

hi,

In Module pool programming, we have 4 events-PBO,PAI,POH,POV.The screen flow logic is like an ABAP program in that it serves as a container for processing blocks. There are four event blocks, each of which is introduced with the screen keyword PROCESS:

PROCESS BEFORE OUTPUT.

PROCESS AFTER INPUT.

PROCESS ON HELP-REQUEST.

PROCESS ON VALUE-REQUEST.

<b>PROCESS BEFORE OUTPUT (PBO)</b> is automatically triggered after the PAI processing of the previous screen and before the current screen is displayed. You can program the PBO processing of the screen in this block. At the end of the PBO processing, the screen is displayed.

<b>PROCESS AFTER INPUT (PAI)</b> is triggered when the user chooses a function on the screen. You can program the PAI processing of the screen in this block. At the end of the PAI processing, the system either calls the next screen or carries on processing at the point from which the screen was called.

<b>PROCESS ON HELP-REQUEST (POH)</b> and PROCESS ON VALUE-REQUEST (POV) are triggered when the user requests field help (F1) or possible values help (F4) respectively. You can program the appropriate coding in the corresponding event blocks. At the end of processing, the system carries on processing the current screen.

Check out the link

http://help.sap.com/saphelp_nw2004s/helpdata/en/47/e07f652b9911d2954f0000e8353423/content.htm

Regards,

Richa

Read only

Former Member
0 Likes
840

Hi,

Events Related to Reporting

Well I wanted to get details about the events in reporting/interactive... and the statements which trigeer those events...

Event related to reports are not triggered based on any statements in ABAP.

The event are triggered depended on the way the output is generated .

for eg: the types of events are:

<b>Initialization</b> : triggered when the report is loaded in memory.

<b>At selection-screen output</b> : triggered when the selection screen is loaded in memory before being displayed.

<b>At selection-screen / <field></b> : before leaving the selection screen.

<b>start-of-selection :</b> the first event for displaying the report.

<b>end-of-selection :</b> after the start-of-selection is completed.

classiscal report events.

<b>top-of-page :</b> every time a new page is started in the list.

<b>end-of-page :</b> every time the list data reaches the footer region of the page.

interactive report events.

<b>top of page during line selection :</b> top of page event for secondary list.

<b>at line-selection :</b> evey time user dbl-clicks(F2) on the list data.

<b>at pF<key> :</b> function key from F5 to F12 to perform interactive action on the list.

<b>At user command</b> is also an event triggeres for every user interaction.

Load of program and initialization:

The purpose of load of program is to load the program into system memory so that it can be execute the program and also this is the first event in the program. After executing this event only other events is executed. Other events are

Initialization

start-of-selection

get

end-of-selection

etc all other events are triggered.

The purpose of Initialization:

1 . In initialization it is not only the parameters default value

which are required/accessed/controlled

in initialization event.

2. In a program there are so many variables,

the values of these variables

can be set in intiailization event.

3. Such values sometimes cannot be hardcoded.

They may be requried to fetch from database

or do some calculations,

(which is not possible while declaration

data and parameters)

4. Sometimes, some variant can also be imported

for selection screen.

5.This event is invoked directly after LOAD-OF-PROGRAM and before the selection screen processing of any existing standard selection screen.

This gives you the one-time opportunity to initialize the input fields of the selection screen, including those defined in the logical database linked with the program.

When run in background, values initialized in initialization event are considered.

For eg: if you want to initialize like this:

carrid-sign = 'I'.

carrid-option = 'EQ'.

carrid-low = 'AA'.

carrid-high = 'LH'.

APPEND carrid TO carrid.

You cannot achieve this by giving 'default' or 'value' at selection-screen.

****Reward points if useful.

All the best.