‎2007 Jul 12 6:51 AM
Hi,
can anybody give me a sample program related to 'on change of' statement.
Thanks,
shyja
‎2007 Jul 12 6:56 AM
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
‎2007 Jul 12 6:53 AM
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
‎2007 Jul 12 6:55 AM
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.
‎2007 Jul 12 6:56 AM
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
‎2007 Jul 12 6:59 AM
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
‎2007 Jul 12 7:00 AM
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.