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

Problem in report.

Former Member
0 Likes
602

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
576

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.

4 REPLIES 4
Read only

Former Member
0 Likes
576

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>

Read only

Former Member
0 Likes
576

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.

Read only

Former Member
0 Likes
577

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.

Read only

learnsap
Active Participant
0 Likes
576

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.