Skip to Content
0
Former Member
May 18, 2005 at 02:35 PM

Dialog program with 2 tables.

40 Views

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.