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

multiple table control in single screen

arpitr
Participant
0 Likes
3,152

Hello Expert,

I am developing my first Module Pool programming and I have requirement to run 2 table controls in single window with same input.

I have developed the screen and program but not getting the data.

I checked with debugger and data is coming correct for first Table control but not for second table control and in the both  cases output is not coming.

Please help me to resolve this.

***********ZF_CFORM1_TOP******************

PROGRAM ZF_CFORM1.

DATA : OK_CODE TYPE SY-UCOMM.

DATA : GV_FLAG TYPE CHAR1.

CONTROLS : TABLC TYPE TABLEVIEW USING SCREEN 0100.

DATA : GV_FLAG1 TYPE CHAR1.

CONTROLS : TABLC1 TYPE TABLEVIEW USING SCREEN 0100.

TYPES : BEGIN OF TY_BKPF,

       BUKRS TYPE BKPF-BUKRS,

       BELNR TYPE BKPF-BELNR,

       BLART TYPE BKPF-BLART,

       BUDAT TYPE BKPF-BUDAT,

       END OF TY_BKPF,

       BEGIN OF TY_BSEG,

       BELNR TYPE BSEG-BELNR,

       KOART TYPE BSEG-KOART,

       SHKZG TYPE BSEG-SHKZG,

       WRBTR TYPE BSEG-WRBTR,

       KUNNR TYPE BSEG-KUNNR,

       END OF TY_BSEG,

       BEGIN OF TY_ZFCFORM,

        BELNR TYPE BKPF-BELNR,

       KUNNR TYPE BSEG-KUNNR,

       BUDAT TYPE BKPF-BUDAT,

       WRBTR TYPE BSEG-WRBTR,

       ZBELNR1 TYPE BELNR_D,

       ZWRBTR1 TYPE BELNR_D,

       END OF TY_ZFCFORM,

       BEGIN OF TY_TOTAL,

       BELNR TYPE BKPF-BELNR,

       KUNNR TYPE BSEG-KUNNR,

       BUDAT TYPE BKPF-BUDAT,

       WRBTR TYPE BSEG-WRBTR,

       CHECK TYPE C,

       END OF TY_TOTAL,

        BEGIN OF TY_TOTAL1,

       BELNR TYPE BKPF-BELNR,

       KUNNR TYPE BSEG-KUNNR,

       BUDAT TYPE BKPF-BUDAT,

       WRBTR TYPE BSEG-WRBTR,

*      ZBELNR1 TYPE BELNR_D,

*      ZWRBTR1 TYPE BELNR_D,

       CHECK TYPE C,

       END OF TY_TOTAL1.

DATA :

       IT_BKPF TYPE STANDARD TABLE OF TY_BKPF,

       WA_BKPF TYPE TY_BKPF,

       IT_BSEG TYPE STANDARD TABLE OF TY_BSEG,

       WA_BSEG TYPE TY_BSEG,

       IT_TOTAL TYPE TABLE OF TY_TOTAL,

       WA_TOTAL TYPE TY_TOTAL,

       IT_TOTAL1 TYPE TABLE OF TY_TOTAL1,

       WA_TOTAL1 TYPE TY_TOTAL1.

SELECTION-SCREEN: BEGIN OF SCREEN 101 AS SUBSCREEN.

SELECT-OPTIONS : S_BUDAT FOR WA_BKPF-BUDAT,

                  S_KUNNR FOR WA_BSEG-KUNNR.

SELECTION-SCREEN: END OF SCREEN 101.

MODULE GET_DATA OUTPUT.

   IF IT_BKPF IS INITIAL AND GV_FLAG EQ 'X'.

  SELECT

        BUKRS

        BELNR

        BLART

        BUDAT

        INTO TABLE IT_BKPF FROM BKPF WHERE BLART = 'RV' AND BUDAT IN S_BUDAT.

*      FROM BKPF INTO TABLE IT_BKPF WHERE BUDAT IN S_BUDAT.

SELECT

        BELNR

        KOART

        SHKZG

        WRBTR

        KUNNR

         INTO TABLE IT_BSEG FROM BSEG FOR ALL ENTRIES IN IT_BKPF

        WHERE BELNR = IT_BKPF-BELNR   AND KOART EQ 'D' AND SHKZG = 'S' AND KUNNR IN S_KUNNR.

                 " GET_DATA  OUTPUT

LOOP AT IT_BSEG INTO WA_BSEG.

* LOOP AT IT_BKPF INTO WA_BKPF.

*  READ TABLE IT_ZFCFORM TRANSPORTING NO FIELDS WITH KEY BELNR = WA_BSEG-BELNR KUNNR = WA_BSEG-KUNNR.

   READ TABLE IT_BKPF INTO WA_BKPF WITH KEY BELNR = WA_BSEG-BELNR.

*  IF SY-SUBRC NE 0.

   WA_TOTAL-BELNR = WA_BKPF-BELNR.

   WA_TOTAL-KUNNR WA_BSEG-KUNNR.

   WA_TOTAL-BUDAT = WA_BKPF-BUDAT.

   WA_TOTAL-WRBTR = WA_BSEG-WRBTR.

*  MOVE-CORRESPONDING wa_bseg to wa_total.

   APPEND WA_TOTAL TO IT_TOTAL.

*  ENDIF.

   CLEAR WA_TOTAL.

   DELETE ADJACENT DUPLICATES FROM IT_TOTAL COMPARING BUDAT WRBTR.

*ENDLOOP.

ENDLOOP.

ENDIF.

*ENDMODULE.


*************************************************ZF_CFORM1_GET_DATA_O01**************************************

*&---------------------------------------------------------------------*

*&      Module  CURR_LINE  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*MODULE CURR_LINE OUTPUT.

*  DATA : V_LINES TYPE I.

*   DESCRIBE TABLE IT_TOTAL lines V_LINES.

*   DESCRIBE TABLE IT_TOTAL1 lines V_LINES.

*TABLC-CURRENT_LINE = SY-LOOPC.

*TABLC-LINES = SY-DBCNT.

*TABLC-LINES = V_LINES.

*ENDMODULE.                 " CURR_LINE  OUTPUT

*MODULE GET_DATA1 OUTPUT.

*  IF IT_BKPF IS INITIAL AND GV_FLAG1 EQ 'X'.

  SELECT

        BUKRS

        BELNR

        BLART

        BUDAT

        INTO TABLE IT_BKPF FROM BKPF WHERE BUDAT IN S_BUDAT.

*      FROM BKPF INTO TABLE IT_BKPF WHERE BUDAT IN S_BUDAT.

SELECT

        BELNR

        KOART

        SHKZG

        WRBTR

        KUNNR

         INTO TABLE IT_BSEG FROM BSEG FOR ALL ENTRIES IN IT_BKPF

        WHERE BELNR = IT_BKPF-BELNR   AND KOART EQ 'D' AND SHKZG = 'H' AND KUNNR IN S_KUNNR.

                 " GET_DATA  OUTPUT

LOOP AT IT_BSEG INTO WA_BSEG.

* LOOP AT IT_BKPF INTO WA_BKPF.

*  READ TABLE IT_ZFCFORM TRANSPORTING NO FIELDS WITH KEY BELNR = WA_BSEG-BELNR KUNNR = WA_BSEG-KUNNR.

   READ TABLE IT_BKPF INTO WA_BKPF WITH KEY BELNR = WA_BSEG-BELNR.

*  IF SY-SUBRC NE 0.

   WA_TOTAL1-BELNR = WA_BKPF-BELNR.

   WA_TOTAL1-KUNNR WA_BSEG-KUNNR.

   WA_TOTAL1-BUDAT = WA_BKPF-BUDAT.

   WA_TOTAL1-WRBTR = WA_BSEG-WRBTR.

*  MOVE-CORRESPONDING wa_bseg to wa_total.

   APPEND WA_TOTAL1 TO IT_TOTAL1.

*  ENDIF.

   CLEAR WA_TOTAL1.

   DELETE ADJACENT DUPLICATES FROM IT_TOTAL1 COMPARING BUDAT WRBTR.

*ENDLOOP.

ENDLOOP.

*ENDIF.

ENDMODULE.

*&---------------------------------------------------------------------*

*&      Module  CURR_LINE  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE CURR_LINE OUTPUT.

   DATA : V_LINES TYPE I.

    DESCRIBE TABLE IT_TOTAL lines V_LINES.

*   DESCRIBE TABLE IT_TOTAL1 lines V_LINES1.

TABLC-CURRENT_LINE = SY-LOOPC.

TABLC-LINES = SY-DBCNT.

TABLC-LINES = V_LINES.

  DATA : V_LINES1 TYPE I.

*   DESCRIBE TABLE IT_TOTAL lines V_LINES.

   DESCRIBE TABLE IT_TOTAL1 lines V_LINES1.

TABLC1-CURRENT_LINE = SY-LOOPC.

TABLC1-LINES = SY-DBCNT.

TABLC1-LINES = V_LINES1.

ENDMODULE.



********************************************************************ZF_CFORM1_MODIFY_I01************************

MODULE MODIFY INPUT.

MODIFY IT_TOTAL FROM WA_TOTAL

INDEX TABLC-CURRENT_LINE.

MODIFY IT_TOTAL1 FROM WA_TOTAL1

INDEX TABLC1-CURRENT_LINE.

ENDMODULE.                 " MODIFY  INPUT

*&---------------------------------------------------------------------*

*&      Module  USER_COMMAND_0100  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE USER_COMMAND_0100 INPUT.

OK_CODE = SY-UCOMM.

CLEAR SY-UCOMM.

CASE OK_CODE.

   WHEN 'DISP'.

     GV_FLAG = 'X'.

*     GV_FLAG1 = 'X'.

     WHEN 'CLER'.

       CLEAR GV_FLAG.

*      CLEAR GV_FLAG1.

       WHEN 'BACK'.

         LEAVE PROGRAM.

         ENDCASE.

ENDMODULE.  


**************************************************************SCREEN 100*********************************

PROCESS BEFORE OUTPUT.

* MODULE STATUS_0100.

*

MODULE GET_DATA.

LOOP AT IT_TOTAL INTO WA_TOTAL WITH CONTROL TABLC.

   MODULE CURR_LINE.

   ENDLOOP.

MODULE GET_DATA1.

LOOP AT IT_TOTAL1 INTO WA_TOTAL1 WITH CONTROL TABLC1.

   MODULE CURR_LINE.

   ENDLOOP.

CALL SUBSCREEN SUB1

INCLUDING SY-REPID '101'.

PROCESS AFTER INPUT.

CALL SUBSCREEN SUB1.

LOOP AT IT_TOTAL ."into   WA_TOTAL.

   FIELD : WA_TOTAL-BELNR,

           WA_TOTAL-KUNNR,

           WA_TOTAL-BUDAT,

           WA_TOTAL-WRBTR.

   MODULE MODIFY.

   ENDLOOP.

   LOOP AT IT_TOTAL1.

      FIELD : WA_TOTAL1-BELNR,

           WA_TOTAL1-KUNNR,

           WA_TOTAL1-BUDAT,

           WA_TOTAL1-WRBTR.

   MODULE MODIFY.

   ENDLOOP.



    MODULE USER_COMMAND_0100.


3 REPLIES 3
Read only

0 Likes
1,560

Hi,

     Did you loop your table in flow logic of the screen

    

Read only

Read only

Former Member