‎2008 Apr 22 8:58 AM
Hi Experts.
I'm working on Dynpro program.
I'd like to show an Table control in Subscreen which is a part of
TABSTRIP.
I've done it just like when I showed the Table control in Main screen.
but an Error DYNPRO_ITAB_ERROR occured.
Is there anything that I should set or change when showing table control in Subscreen?
‎2008 Apr 22 9:35 AM
hi,
see the following code which contains tablecontrol within a tabstrips.
TABLES:kna1, vbak,vbap.
DATA:kunnr LIKE kna1-kunnr.
TYPES:BEGIN OF it_vbak,
kunnr type kna1-kunnr,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
ernam LIKE vbak-ernam,
netwr LIKE vbak-netwr,
END OF it_vbak.
TYPES:BEGIN OF it_vbap,
vbeln type vbap-vbeln,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
END OF it_vbap.
*data: scr type sy-dynnr value '200'.
DATA: itab TYPE TABLE OF it_vbak WITH HEADER LINE,
itab1 TYPE TABLE OF it_vbap WITH HEADER LINE.
wtab type it_vbak,
wtab1 type it_vbap.
CONTROLS:tabstrip TYPE TABSTRIP,
tabcontrol TYPE TABLEVIEW USING SCREEN '200',
tabcontrol1 TYPE TABLEVIEW USING SCREEN '300'.
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'DISP'.
SELECT kunnr vbeln erdat ernam netwr FROM vbak INTO TABLE itab
WHERE kunnr = kna1-kunnr.
if not itab is initial.
SELECT vbeln posnr matnr FROM vbap
INTO TABLE itab1
for all entries in itab[] where vbeln = itab-vbeln.
endif.
WHEN 'BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module assign OUTPUT
&----
text
----
MODULE assign OUTPUT.
MOVE-CORRESPONDING itab TO vbak.
ENDMODULE. " assign OUTPUT
&----
*& Module populate OUTPUT
&----
text
----
MODULE populate OUTPUT.
MOVE-CORRESPONDING itab1 TO vbap.
ENDMODULE. " populate OUTPUT
*******screen 100*************
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
call subscreen sub1 including sy-repid '200'.
call subscreen sub2 including sy-repid '300'.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
*********screen 200************
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
loop at itab with control tabcontrol.
module assign.
endloop.
PROCESS AFTER INPUT.
loop at itab.
endloop.
MODULE USER_COMMAND_0200.
*************screen 300**********
PROCESS BEFORE OUTPUT.
loop at itab1 with control tabcontrol1.
module populate.
endloop.
MODULE STATUS_0300.
PROCESS AFTER INPUT.
loop at itab1.
endloop.
MODULE USER_COMMAND_0300.
thankx,
raji
reward if helpful
‎2008 Apr 22 9:35 AM
hi,
see the following code which contains tablecontrol within a tabstrips.
TABLES:kna1, vbak,vbap.
DATA:kunnr LIKE kna1-kunnr.
TYPES:BEGIN OF it_vbak,
kunnr type kna1-kunnr,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
ernam LIKE vbak-ernam,
netwr LIKE vbak-netwr,
END OF it_vbak.
TYPES:BEGIN OF it_vbap,
vbeln type vbap-vbeln,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
END OF it_vbap.
*data: scr type sy-dynnr value '200'.
DATA: itab TYPE TABLE OF it_vbak WITH HEADER LINE,
itab1 TYPE TABLE OF it_vbap WITH HEADER LINE.
wtab type it_vbak,
wtab1 type it_vbap.
CONTROLS:tabstrip TYPE TABSTRIP,
tabcontrol TYPE TABLEVIEW USING SCREEN '200',
tabcontrol1 TYPE TABLEVIEW USING SCREEN '300'.
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'DISP'.
SELECT kunnr vbeln erdat ernam netwr FROM vbak INTO TABLE itab
WHERE kunnr = kna1-kunnr.
if not itab is initial.
SELECT vbeln posnr matnr FROM vbap
INTO TABLE itab1
for all entries in itab[] where vbeln = itab-vbeln.
endif.
WHEN 'BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module assign OUTPUT
&----
text
----
MODULE assign OUTPUT.
MOVE-CORRESPONDING itab TO vbak.
ENDMODULE. " assign OUTPUT
&----
*& Module populate OUTPUT
&----
text
----
MODULE populate OUTPUT.
MOVE-CORRESPONDING itab1 TO vbap.
ENDMODULE. " populate OUTPUT
*******screen 100*************
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
call subscreen sub1 including sy-repid '200'.
call subscreen sub2 including sy-repid '300'.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
*********screen 200************
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
loop at itab with control tabcontrol.
module assign.
endloop.
PROCESS AFTER INPUT.
loop at itab.
endloop.
MODULE USER_COMMAND_0200.
*************screen 300**********
PROCESS BEFORE OUTPUT.
loop at itab1 with control tabcontrol1.
module populate.
endloop.
MODULE STATUS_0300.
PROCESS AFTER INPUT.
loop at itab1.
endloop.
MODULE USER_COMMAND_0300.
thankx,
raji
reward if helpful
‎2008 Apr 22 9:36 AM
Nothing special except usual subscreen programming. Just try to debug it to find the eeror.
Make sure that both tabstrip and table controls declared in top include using 'CONTROLS' statement.
‎2008 Apr 22 9:40 AM
What a stupid I am!!
I forgot to declare TABLES part.
As soon as I read your code I realised what the problem was.