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

control break statement..

Former Member
0 Likes
687

Hi,

can anybody give me a sample program related to 'on change of' statement.

Thanks,

shyja

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
661

hi ,

1. AT FIRST

2. At New

3. At LAST

4 AT END

at new event will tigger when ever new record and it works from left column to right column

on change is also same but only diffrence is it triggers from right clumn to left clumn

Check with below program :

&----


*& Report ZTEST_IEVENTS

*&

&----


*&

*&

&----


REPORT ZTEST_IEVENTS no standard page heading

line-count 40(2).

tables : vbap.

data : begin of i_vbap occurs 0,

vbeln like vbap-vbeln,

posnr like vbap-posnr,

matnr like vbap-matnr,

kwmeng like vbap-kwmeng,

netpr like vbap-netpr,

end of i_vbap.

data wa_vbap like line of i_vbap.

data v_flag type c.

select-options s_vbeln for vbap-vbeln obligatory.

start-of-selection.

select vbeln

posnr

matnr

kwmeng

netpr from vbap

into table i_vbap

where vbeln in s_vbeln.

sort i_vbap by vbeln posnr.

end-of-selection.

loop at i_vbap.

move i_vbap to wa_vbap.

at first.

write:/2 'Order #',15 'Item #',28 'Material #',50 'Qty', 70 'Net value'.

skip 1.

endat.

at new vbeln.

write:/2 wa_vbap-vbeln,15 wa_vbap-posnr,28 wa_vbap-matnr,

47 wa_vbap-kwmeng,65 wa_vbap-netpr.

v_flag = 'X'.

endat.

if v_flag ne 'X'.

write:/15 wa_vbap-posnr,28 wa_vbap-matnr,

47 wa_vbap-kwmeng,65 wa_vbap-netpr.

endif.

at end of vbeln.

sum.

skip 1.

write:/5 'Sub totals', 47 i_vbap-kwmeng,65 i_vbap-netpr.

skip 1.

endat.

at last .

skip 1.

sum.

write:/5 'Grand Totals',47 i_vbap-kwmeng,65 i_vbap-netpr.

skip 1.

write:/ 'end of page', 'Footer'.

endat.

clear v_flag.

endloop.

reward points for the useful answers

regards

reena

5 REPLIES 5
Read only

Former Member
0 Likes
661

Hi,

Check this example..

DATA: ITAB LIKE MARA OCCURS 0 WITH HEADER LINE.

DATA: V_CHANGE(13).

ITAB-MTART = '10'. ITAB-MATKL = '1'.APPEND ITAB.

ITAB-MTART = '10'. ITAB-MATKL = '1'.APPEND ITAB.

ITAB-MTART = '20'. ITAB-MATKL = '1'.APPEND ITAB.

LOOP AT ITAB.

CONCATENATE ITAB-MTART ITAB-MATKL INTO V_CHANGE.

ON CHANGE OF V_CHANGE.

WRITE: / SY-TABIX.

ENDON.

ENDLOOP.

<b>Reward points if useful</b>

Regards

Ashu

Read only

Former Member
0 Likes
661

Example:

In a SELECT loop, a statement block should only be executed if the content of the column CARRID has changed.

DATA spfli_wa TYPE spfli.

SELECT *

FROM spfli

INTO spfli_wa

ORDER BY carrid.

...

ON CHANGE OF spfli_wa-carrid.

...

ENDON.

...

ENDSELECT.

****************************

DATA: BEGIN OF fs_spfli,

carrid TYPE spfli-carrid,

connid TYPE spfli-connid,

countryfr TYPE spfli-countryfr,

END OF fs_spfli.

DATA: t_spfli LIKE STANDARD TABLE OF fs_spfli.

SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE t_spfli.

loop at t_spfli into fs_spfli.

on change of fs_spfli-carrid.

write:

/ fs_spfli-carrid.

endon.

write fs_spfli-connid.

endloop.

Regards,

Pavan P.

Read only

Former Member
0 Likes
662

hi ,

1. AT FIRST

2. At New

3. At LAST

4 AT END

at new event will tigger when ever new record and it works from left column to right column

on change is also same but only diffrence is it triggers from right clumn to left clumn

Check with below program :

&----


*& Report ZTEST_IEVENTS

*&

&----


*&

*&

&----


REPORT ZTEST_IEVENTS no standard page heading

line-count 40(2).

tables : vbap.

data : begin of i_vbap occurs 0,

vbeln like vbap-vbeln,

posnr like vbap-posnr,

matnr like vbap-matnr,

kwmeng like vbap-kwmeng,

netpr like vbap-netpr,

end of i_vbap.

data wa_vbap like line of i_vbap.

data v_flag type c.

select-options s_vbeln for vbap-vbeln obligatory.

start-of-selection.

select vbeln

posnr

matnr

kwmeng

netpr from vbap

into table i_vbap

where vbeln in s_vbeln.

sort i_vbap by vbeln posnr.

end-of-selection.

loop at i_vbap.

move i_vbap to wa_vbap.

at first.

write:/2 'Order #',15 'Item #',28 'Material #',50 'Qty', 70 'Net value'.

skip 1.

endat.

at new vbeln.

write:/2 wa_vbap-vbeln,15 wa_vbap-posnr,28 wa_vbap-matnr,

47 wa_vbap-kwmeng,65 wa_vbap-netpr.

v_flag = 'X'.

endat.

if v_flag ne 'X'.

write:/15 wa_vbap-posnr,28 wa_vbap-matnr,

47 wa_vbap-kwmeng,65 wa_vbap-netpr.

endif.

at end of vbeln.

sum.

skip 1.

write:/5 'Sub totals', 47 i_vbap-kwmeng,65 i_vbap-netpr.

skip 1.

endat.

at last .

skip 1.

sum.

write:/5 'Grand Totals',47 i_vbap-kwmeng,65 i_vbap-netpr.

skip 1.

write:/ 'end of page', 'Footer'.

endat.

clear v_flag.

endloop.

reward points for the useful answers

regards

reena

Read only

Former Member
0 Likes
661

hi,

In order to debug a popup you have to create a small text file on your local computer.

The content of the text file is as follows:

[FUNCTION]

Command=/H

Title=Debugger

Type=SystemCommand

1)Place this little text file on your desktop or wherever you can reach it easily.

2)Start Debugging.

3)Whenever you want to debug a popup take this little file and drop it over your popup.

Rgds

Reshma

Read only

Former Member
0 Likes
661

Hi,

On change of statement is now become obsolete in higher versions.In stead of using at new and at end of we can use on change of event.I t can be used outside the loop also.

in side the loop it is used like this.

Suppose itab has the duplicate Material numbers.

To print out unique materials...

LOOP AT it_mara.

ON CHANGE OF it_mara-matnr.

WRITE itab-matnr.

ENDON.

Example

TABLES T100.

SELECT * FROM T100 WHERE SPRSL = SY-LANGU AND

MSGNR < '010'

ORDER BY PRIMARY KEY.

ON CHANGE OF T100-ARBGB.

ULINE.

WRITE: / '**', T100-ARBGB, '**'.

ENDON.

WRITE: / T100-MSGNR, T100-TEXT.

ENDSELECT.

Regards,

Priyanka.