‎2007 Jun 14 7:17 AM
hi, when i am executing this report, the program control doent come out of loop at screen. how to solve this problem. here i am giving my code. please show me where i went wrong.
REPORT ZEX1 no standard page heading line-count 50(3) line-size 100.
tables : mara,marc,VBAK,VBAP.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
parameters: T1 RADIOBUTTON GROUP G1 USER-COMMAND R DEFAULT 'X',
T2 RADIOBUTTON GROUP G1 .
SELECTION-SCREEN END OF BLOCK B1.
selection-screen begin of block b2 with frame title tEXT-001.
select-options : matnr1 for mara-matnr MODIF ID M1 OBLIGATORY .
select-options : werks1 for marc-werks MODIF ID M1 .
selection-screen end of block b2.
selection-screen begin of block b3 with frame title tEXT-002.
select-options : VBELN1 for VBAK-VBELN MODIF ID M2 OBLIGATORY.
select-options : POSNR1 for VBAP-POSNR MODIF ID M2 .
selection-screen end of block b3.
types : begin of MAT1 ,
MATNR LIKE MARA-MATNR,
MATKL LIKE MARA-MATKL,
MBRSH LIKE MARA-MBRSH,
ERNAM LIKE MARA-ERNAM,
MTART LIKE MARA-MTART,
WERKS LIKE MARC-WERKS,
EKGRP LIKE MARC-EKGRP,
PERKZ LIKE MARC-PERKZ,
END OF MAT1.
TYPES : BEGIN OF SALE1,
VBELN LIKE VBAK-VBELN,
ERNAM LIKE VBAK-ERNAM,
ERDAT LIKE VBAK-ERDAT,
NETWR LIKE VBAK-NETWR,
POSNR LIKE VBAP-POSNR,
MATNR LIKE VBAP-MATNR,
MATKL LIKE VBAP-MATKL,
PRODH LIKE VBAP-PRODH,
END OF SALE1.
TYPES : BEGIN OF MAT_SEL ,
MATNR LIKE MARA-MATNR,
WERKS LIKE MARC-WERKS,
END OF MAT_SEL.
TYPES : BEGIN OF SALE_SEL,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
END OF SALE_SEL.
DATA : ITAB1 TYPE MAT_SEL OCCURS 0 WITH HEADER LINE,
ITAB2 TYPE SALE_SEL OCCURS 0 WITH HEADER LINE,
MAT TYPE TABLE OF MAT1,
SALE TYPE TABLE OF SALE1,
MAT_LINE TYPE MAT1,
SALE_LINE TYPE SALE1.
FORM INITIALIZATION1.
SELECT MIN( MATNR ) MAX( MATNR ) FROM MARA INTO (MATNR1-LOW,MATNR1-HIGH).
MATNR1-SIGN = 'I'.
MATNR1-OPTION = 'BT'.
APPEND MATNR1.
ENDFORM.
FORM INITIALIZATION2.
SELECT MIN( VBELN ) MAX( VBELN ) FROM VBAK INTO (VBELN1-LOW,VBELN1-HIGH).
VBELN1-SIGN = 'I'.
VBELN1-OPTION = 'BT'.
APPEND VBELN1.
ENDFORM.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF T1 = 'X' AND SCREEN-GROUP1 = 'M2'.
PERFORM INITIALIZATION1.
SCREEN-INPUT = 0.
SCREEN-INVISIBLE = 1.
MODIFY SCREEN.
ELSEIF T2 = 'X' AND SCREEN-GROUP1 = 'M1'.
PERFORM INITIALIZATION2.
SCREEN-INPUT = 0.
SCREEN-INVISIBLE = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
START-OF-SELECTION.
IF T1 = 'X'.
SELECT AMATNR BWERKS FROM MARA AS A INNER JOIN MARC AS B ON AMATNR = BMATNR INTO TABLE ITAB1 WHERE AMATNR IN MATNR1 AND BWERKS IN WERKS1.
ELSEIF T2 = 'X'.
SELECT AVBELN BPOSNR FROM VBAK AS A INNER JOIN VBAP AS B ON AVBELN = BVBELN INTO TABLE ITAB2 WHERE AVBELN IN VBELN1 AND BPOSNR IN POSNR1.
ENDIF.
TOP-OF-PAGE .
FORMAT COLOR 5.
WRITE : / 'LIST INDEX NUMBER IS ', SY-LSIND,'PAGE NUMBER IS',SY-PAGNO,'TODAY DATE',SY-DATUM.
IF NOT ITAB1 IS INITIAL.
LOOP AT ITAB1.
WRITE : / ITAB1-MATNR,ITAB1-WERKS.
ENDLOOP.
ELSE.
LOOP AT ITAB2.
WRITE : / ITAB2-VBELN,ITAB2-POSNR.
ENDLOOP.
ENDIF.
‎2007 Jun 14 7:38 AM
hi,
try this one:
report zex1 no standard page heading line-count 50(3) line-size 100.
tables : mara,marc,vbak,vbap.
selection-screen begin of block b1 with frame title text-000.
parameters: t1 radiobutton group g1 user-command r default 'X',
t2 radiobutton group g1 .
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-001.
select-options : matnr1 for mara-matnr modif id m1 obligatory .
select-options : werks1 for marc-werks modif id m1 .
selection-screen end of block b2.
selection-screen begin of block b3 with frame title text-002.
select-options : vbeln1 for vbak-vbeln modif id m2 obligatory.
select-options : posnr1 for vbap-posnr modif id m2 .
selection-screen end of block b3.
types : begin of mat1 ,
matnr like mara-matnr,
matkl like mara-matkl,
mbrsh like mara-mbrsh,
ernam like mara-ernam,
mtart like mara-mtart,
werks like marc-werks,
ekgrp like marc-ekgrp,
perkz like marc-perkz,
end of mat1.
types : begin of sale1,
vbeln like vbak-vbeln,
ernam like vbak-ernam,
erdat like vbak-erdat,
netwr like vbak-netwr,
posnr like vbap-posnr,
matnr like vbap-matnr,
matkl like vbap-matkl,
prodh like vbap-prodh,
end of sale1.
types : begin of mat_sel ,
matnr like mara-matnr,
werks like marc-werks,
end of mat_sel.
types : begin of sale_sel,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
end of sale_sel.
data : itab1 type mat_sel occurs 0 with header line,
itab2 type sale_sel occurs 0 with header line,
mat type table of mat1,
sale type table of sale1,
mat_line type mat1,
sale_line type sale1.
----
FORM INITIALIZATION1 *
----
........ *
----
form initialization1.
select min( matnr ) max( matnr ) from mara into (matnr1-low,matnr1-high)
.
matnr1-sign = 'I'.
matnr1-option = 'BT'.
append matnr1.
endform.
----
FORM INITIALIZATION2 *
----
........ *
----
form initialization2.
select min( vbeln ) max( vbeln ) from vbak into (vbeln1-low,vbeln1-high)
.
vbeln1-sign = 'I'.
vbeln1-option = 'BT'.
append vbeln1.
endform.
at selection-screen output.
loop at screen.
if t1 = 'X' and screen-group1 = 'M2'.
perform initialization1.
screen-input = 0.
screen-invisible = 1.
modify screen.
elseif t2 = 'X' and screen-group1 = 'M1'.
perform initialization2.
screen-input = 0.
screen-invisible = 1.
modify screen.
endif.
endloop.
start-of-selection.
if t1 = 'X'.
select amatnr bwerks from mara as a inner join marc as b on a~matnr =
bmatnr into table itab1 where amatnr in matnr1 and b~werks in werks1.
if sy-subrc = 0.
perform f_write.
endif.
elseif t2 = 'X'.
select avbeln bposnr from vbak as a inner join vbap as b on a~vbeln =
bvbeln into table itab2 where avbeln in vbeln1 and b~posnr in posnr1.
if sy-subrc = 0.
perform f_write.
endif.
endif.
----
FORM f_write *
----
........ *
----
form f_write.
format color 5.
write : / 'LIST INDEX NUMBER IS ', sy-lsind,'PAGE NUMBER IS',sy-pagno,
'TODAY DATE',sy-datum.
read itab1.
if not itab1[] is initial .
loop at itab1.
write : / itab1-matnr,itab1-werks.
endloop.
else.
loop at itab2.
write : / itab2-vbeln,itab2-posnr.
endloop.
endif.
endform.
‎2007 Jun 14 7:26 AM
hi
try this in the end of ur code.
IF NOT ITAB1 IS INITIAL.
LOOP AT ITAB1.
WRITE : / ITAB1-MATNR,ITAB1-WERKS.
ENDLOOP.
ENDIF.
IF NOT ITAB2 IS INITIAL.
LOOP AT ITAB2.
WRITE : / ITAB2-VBELN,ITAB2-POSNR.
ENDLOOP.
ENDIF.
regards
ravish
<i><b>plz dont forget to reward points if helpful</b></i>
‎2007 Jun 14 7:35 AM
hi,
try this one:
report zex1 no standard page heading line-count 50(3) line-size 100.
tables : mara,marc,vbak,vbap.
selection-screen begin of block b1 with frame title text-000.
parameters: t1 radiobutton group g1 user-command r default 'X',
t2 radiobutton group g1 .
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-001.
select-options : matnr1 for mara-matnr modif id m1 obligatory .
select-options : werks1 for marc-werks modif id m1 .
selection-screen end of block b2.
selection-screen begin of block b3 with frame title text-002.
select-options : vbeln1 for vbak-vbeln modif id m2 obligatory.
select-options : posnr1 for vbap-posnr modif id m2 .
selection-screen end of block b3.
types : begin of mat1 ,
matnr like mara-matnr,
matkl like mara-matkl,
mbrsh like mara-mbrsh,
ernam like mara-ernam,
mtart like mara-mtart,
werks like marc-werks,
ekgrp like marc-ekgrp,
perkz like marc-perkz,
end of mat1.
types : begin of sale1,
vbeln like vbak-vbeln,
ernam like vbak-ernam,
erdat like vbak-erdat,
netwr like vbak-netwr,
posnr like vbap-posnr,
matnr like vbap-matnr,
matkl like vbap-matkl,
prodh like vbap-prodh,
end of sale1.
types : begin of mat_sel ,
matnr like mara-matnr,
werks like marc-werks,
end of mat_sel.
types : begin of sale_sel,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
end of sale_sel.
data : itab1 type mat_sel occurs 0 with header line,
itab2 type sale_sel occurs 0 with header line,
mat type table of mat1,
sale type table of sale1,
mat_line type mat1,
sale_line type sale1.
----
FORM INITIALIZATION1 *
----
........ *
----
form initialization1.
select min( matnr ) max( matnr ) from mara into (matnr1-low,matnr1-high)
.
matnr1-sign = 'I'.
matnr1-option = 'BT'.
append matnr1.
endform.
----
FORM INITIALIZATION2 *
----
........ *
----
form initialization2.
select min( vbeln ) max( vbeln ) from vbak into (vbeln1-low,vbeln1-high)
.
vbeln1-sign = 'I'.
vbeln1-option = 'BT'.
append vbeln1.
endform.
at selection-screen output.
loop at screen.
if t1 = 'X' and screen-group1 = 'M2'.
perform initialization1.
screen-input = 0.
screen-invisible = 1.
modify screen.
elseif t2 = 'X' and screen-group1 = 'M1'.
perform initialization2.
screen-input = 0.
screen-invisible = 1.
modify screen.
endif.
endloop.
start-of-selection.
if t1 = 'X'.
select amatnr bwerks from mara as a inner join marc as b on a~matnr =
bmatnr into table itab1 where amatnr in matnr1 and b~werks in werks1.
if sy-subrc = 0.
perform f_write.
endif.
elseif t2 = 'X'.
select avbeln bposnr from vbak as a inner join vbap as b on a~vbeln =
bvbeln into table itab2 where avbeln in vbeln1 and b~posnr in posnr1.
if sy-subrc = 0.
perform f_write.
endif.
endif.
----
FORM f_write *
----
........ *
----
form f_write.
format color 5.
write : / 'LIST INDEX NUMBER IS ', sy-lsind,'PAGE NUMBER IS',sy-pagno,
'TODAY DATE',sy-datum.
read itab1.
if not itab1[] is initial .
loop at itab1.
write : / itab1-matnr,itab1-werks.
endloop.
else.
loop at itab2.
write : / itab2-vbeln,itab2-posnr.
endloop.
endif.
endform.
‎2007 Jun 14 7:38 AM
hi,
try this one:
report zex1 no standard page heading line-count 50(3) line-size 100.
tables : mara,marc,vbak,vbap.
selection-screen begin of block b1 with frame title text-000.
parameters: t1 radiobutton group g1 user-command r default 'X',
t2 radiobutton group g1 .
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-001.
select-options : matnr1 for mara-matnr modif id m1 obligatory .
select-options : werks1 for marc-werks modif id m1 .
selection-screen end of block b2.
selection-screen begin of block b3 with frame title text-002.
select-options : vbeln1 for vbak-vbeln modif id m2 obligatory.
select-options : posnr1 for vbap-posnr modif id m2 .
selection-screen end of block b3.
types : begin of mat1 ,
matnr like mara-matnr,
matkl like mara-matkl,
mbrsh like mara-mbrsh,
ernam like mara-ernam,
mtart like mara-mtart,
werks like marc-werks,
ekgrp like marc-ekgrp,
perkz like marc-perkz,
end of mat1.
types : begin of sale1,
vbeln like vbak-vbeln,
ernam like vbak-ernam,
erdat like vbak-erdat,
netwr like vbak-netwr,
posnr like vbap-posnr,
matnr like vbap-matnr,
matkl like vbap-matkl,
prodh like vbap-prodh,
end of sale1.
types : begin of mat_sel ,
matnr like mara-matnr,
werks like marc-werks,
end of mat_sel.
types : begin of sale_sel,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
end of sale_sel.
data : itab1 type mat_sel occurs 0 with header line,
itab2 type sale_sel occurs 0 with header line,
mat type table of mat1,
sale type table of sale1,
mat_line type mat1,
sale_line type sale1.
----
FORM INITIALIZATION1 *
----
........ *
----
form initialization1.
select min( matnr ) max( matnr ) from mara into (matnr1-low,matnr1-high)
.
matnr1-sign = 'I'.
matnr1-option = 'BT'.
append matnr1.
endform.
----
FORM INITIALIZATION2 *
----
........ *
----
form initialization2.
select min( vbeln ) max( vbeln ) from vbak into (vbeln1-low,vbeln1-high)
.
vbeln1-sign = 'I'.
vbeln1-option = 'BT'.
append vbeln1.
endform.
at selection-screen output.
loop at screen.
if t1 = 'X' and screen-group1 = 'M2'.
perform initialization1.
screen-input = 0.
screen-invisible = 1.
modify screen.
elseif t2 = 'X' and screen-group1 = 'M1'.
perform initialization2.
screen-input = 0.
screen-invisible = 1.
modify screen.
endif.
endloop.
start-of-selection.
if t1 = 'X'.
select amatnr bwerks from mara as a inner join marc as b on a~matnr =
bmatnr into table itab1 where amatnr in matnr1 and b~werks in werks1.
if sy-subrc = 0.
perform f_write.
endif.
elseif t2 = 'X'.
select avbeln bposnr from vbak as a inner join vbap as b on a~vbeln =
bvbeln into table itab2 where avbeln in vbeln1 and b~posnr in posnr1.
if sy-subrc = 0.
perform f_write.
endif.
endif.
----
FORM f_write *
----
........ *
----
form f_write.
format color 5.
write : / 'LIST INDEX NUMBER IS ', sy-lsind,'PAGE NUMBER IS',sy-pagno,
'TODAY DATE',sy-datum.
read itab1.
if not itab1[] is initial .
loop at itab1.
write : / itab1-matnr,itab1-werks.
endloop.
else.
loop at itab2.
write : / itab2-vbeln,itab2-posnr.
endloop.
endif.
endform.
‎2007 Jun 14 7:40 AM
Hi Sravan,
IF NOT ITAB1[] IS INITIAL.
LOOP AT ITAB1.
WRITE : / ITAB1-MATNR,ITAB1-WERKS.
ENDLOOP.
ELSE.
LOOP AT ITAB2.
WRITE : / ITAB2-VBELN,ITAB2-POSNR.
ENDLOOP.
ENDIF.
Try this code...
I don't there is a problem in the loop at screen. please give us correct details what you are looking for, so that we can help you.
Regards,
Ramesh Babu S
*Reward points if answer is helpful.