Hello everyone,
I am new to dialog programming. I am using 2 tables( vbak, vbap) and 3 internal tables ITAB1, ITAB2 & ITAB. I am putting the required data in from vbak & vbap in2 itab1 & itab2 and putting the data in itab.
iam using 2 screens 100 and 200. In 100 iam inputting a value (vbak-vbeln) and when push a button get details trying to display the data in table of screen 200.
The code below is working if i only use single itab but throwing an error if using in above said fashion.
Can anyone help with me as to where iam going wrong.
Thnaks in advance.
<u>Code</u>
PROGRAM zdia_table
tables : vbak. vbap.
Data: BEGIN OF ITAB1 OCCURS 0.
VBELN LIKE VBAK-VBELN,
AUDAT LIKE VBAK-AUDAT,
KUNNR LIKE VBAK-KUNNR,
DATA: END OF ITAB1.
Data: BEGIN OF ITAB2 OCCURS 0.
VBELN LIKE VBAP-VBELN,
ZMENG LIKE VBAP-ZMENG,
NETWR LIKE VBAP-NETWR,
DATA: END OF ITAB2.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
AUDAT LIKE VBAK-AUDAT,
KUNNR LIKE VBAK-KUNNR,
ZMENG LIKE VBAP-ZMENG,
NETWR LIKE VBAP-NETWR,
DATA: END OF ITAB.
&----
*& MODULE STATUS_0100 OUTPUT
&----
TEXT
&----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'XXXXXXX'.
*SET TITLEBAR 'XXX'.
ENDMODULE. "STATUS_0100 OUTPUT
&----
*& MODULE STATUS_0100 INPUT
&----
TEXT
&----
MODULE STATUS_0100 INPUT.
IF SY-UCOMM = 'GET'.
SELECT VBELN AUDAT KUNNR
FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE ITAB1
WHERE VBELN = VBAK-VBELN.
SELECT VBELN ZMENG NETWR
FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE ITAB2
FOR ALL ENTERIES IN ITAB1
WHERE VBELN = ITAB1-VBELN.
LOOP AT ITAB1.
LOOP AT ITAB2 WHERE VBELN = ITAB1-VBELN.
MOVE ITAB1-VBELN TO ITAB-VBELN.
MOVE ITAB1-AUDAT TO ITAB-AUDAT.
MOVE ITAB1-KUNNR TO ITAB-KUNNR.
MOVE ITAB2-NETWR TO ITAB-NETWR.
MOVE ITAB2-ZMENG TO ITAB-ZMENG.
APPEND ITAB.
CLEAR ITAB.
ENDLOOP.
ENDLOOP.
IF SY-SYBRC = 0.
CALL SCREEN 200.
ENDIF.
ENDIF.
&----
*& MODULE STATUS_0200 OUTPUT
&----
TEXT
&----
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'XXXXXXX'.
*SET TITLEBAR 'XXX'.
ENDMODULE. "STATUS_0200 OUTPUT
&----
*& MODULE DISPLAY_DATA OUTPUT
&----
TEXT
&----
MOVE ITAB-VBELN TO VBAK-VBELN.
MOVE ITAB-AUDAT TO VBAK-AUDAT.
MOVE ITAB-KUNNR TO VBAK-KUNNR.
MOVE ITAB-NETWR TO VBAK-NETWR.
MOVE ITAB-ZMENG TO VBAK-ZMENG.
ENDMODULE. "DISPLAY_DATA OUTPUT
*----
SCREEN1 LOGIC
*----
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
*----
SCREEN2 LOGIC
*----
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
LOOP AT ITAB WITH CONTROL TAB_CNTL
CURSOR TAB_CNTL-CURRENT_LINE.
MODULE DISPLAY_DATA.
ENDLOOP.
PROCESS AFTER INPUT.
*MODULE USER_COMMAND_0200.
LOOP AT ITAB.
ENDLOOP.