Application Development 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: 

creation of ALV with dropdown list

Former Member
0 Kudos

Hi All,

    I have requirement to create ALV with dropdown list. please guide me...

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Thank you vishal.

There are 2 drawback one that you told me and another is structure is not created.

6 REPLIES 6

Hvshal4u
Active Participant
0 Kudos

Hi Snehal,

Try Below code :

------------------------------------------------------

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

*& Report  ZTEST_ALV_DROP

*&

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

*&

*&

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

REPORT ZPRG_ALV_DROP.

TYPE-POOLS : slis.

DATA: g_grid  TYPE REF TO cl_gui_alv_grid,

       g_custom_container TYPE REF TO cl_gui_custom_container,

       gt_fieldcat TYPE lvc_t_fcat,

       gs_layout TYPE lvc_s_layo.

DATA: gt_vbak TYPE STANDARD TABLE OF vbak,

       wa_vbak TYPE vbak.

START-OF-SELECTION.

   CALL SCREEN 9000.

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

*       MODULE PBO OUTPUT                                             *

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

MODULE DISPLAY_9000 OUTPUT.

   PERFORM alv_output.

ENDMODULE.                    "pbo OUTPUT

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

*&      Form  BUILD_FIELDCAT

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

FORM build_fieldcat.

   DATA ls_fcat TYPE lvc_s_fcat.

*Build the field catalogue

   CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

     EXPORTING

       i_structure_name = 'VBAK'

     CHANGING

       ct_fieldcat      = gt_fieldcat.

* To assign dropdown in the fieldcataogue

   LOOP AT gt_fieldcat INTO ls_fcat.

     CASE ls_fcat-fieldname.

       WHEN 'ERNAM'.

*drdn-hndl = '1' is the first list box

         ls_fcat-drdn_hndl = '1'.

         ls_fcat-outputlen = 25.

         MODIFY gt_fieldcat FROM ls_fcat.

     ENDCASE.

   ENDLOOP.

ENDFORM.                    "build_fieldcat

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

*&      Form  ALV_OUTPUT

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

FORM alv_output .

*Create object for container

   CREATE OBJECT g_custom_container

          EXPORTING container_name = 'CONTAINER'.

*create object for grid

   CREATE OBJECT g_grid

          EXPORTING i_parent = g_custom_container.

* Build fieldcat and set column

*Assign a handle for the dropdown listbox.

   PERFORM build_fieldcat.

*Build layout

   PERFORM build_layout.

* Define a drop down table.

   PERFORM dropdown_table.

*fetch values from the T517A table

   SELECT * FROM VBAK INTO TABLE gt_vbak.

*Display ALV output

   CALL METHOD g_grid->set_table_for_first_display

     EXPORTING

       is_layout       = gs_layout

     CHANGING

       it_fieldcatalog = gt_fieldcat

       it_outtab       = gt_vbak.

ENDFORM.                               "ALV_OUTPUT

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

*&      Form  dropdown_table

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM dropdown_table.

*Declarations for drop down lists in ALV.

   DATA: lt_dropdown TYPE lvc_t_drop,

         ls_dropdown TYPE lvc_s_drop.

* First SLART listbox (handle '1').

   ls_dropdown-handle = '1'.

   ls_dropdown-value = 'VISHAL'.

   APPEND ls_dropdown TO lt_dropdown.

   ls_dropdown-handle = '1'.

   ls_dropdown-value = 'JOHN'.

   APPEND ls_dropdown TO lt_dropdown.

   ls_dropdown-handle = '1'.

   ls_dropdown-value = 'Ashish'.

   APPEND ls_dropdown TO lt_dropdown.

*method to display the dropdown in ALV

   CALL METHOD g_grid->set_drop_down_table

     EXPORTING

       it_drop_down = lt_dropdown.

ENDFORM.                               " dropdown_table

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

*&      Form  build_layout

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

*       text

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

*layout for ALV output

FORM build_layout .

   gs_layout-cwidth_opt = 'X'.

   gs_layout-grid_title = 'Sales Document'.

   gs_layout-edit = 'X'.

ENDFORM.                    " build_layout



Reagrds,

Vishal

former_member184158
Active Contributor
0 Kudos

Hi

just try this example, SE38  

BCALV_EDIT_06

BCALV_EDIT_07

Regards

Ebrahim

Former Member
0 Kudos

HI,

i was refer your code. I will construct this code but it gives me an error ' fieldcatalog not found'

TYPES:SLIS.

**

DATA: OK_CODE LIKE SY-UCOMM,

       SAVE_OK LIKE SY-UCOMM,

       G_CONTAINER TYPE SCRFNAME VALUE 'BCALV_GRID_DEMO_0100_CONT1',

       G_GRID  TYPE REF TO CL_GUI_ALV_GRID,

       G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

       GT_FIELDCAT TYPE LVC_T_FCAT,

       GS_LAYOUT TYPE LVC_S_LAYO,

       G_MAX TYPE I VALUE 100.

*§1.DEFINE AN EXTRA FIELD IN YOUR OUTPUT TABLE

*   FOR EACH COLUMN WHERE YOU WANT TO USE DROP DOWN LISTBOXES.

*   (ONE ADDITIONAL FIELD REFERS TO CELLS OF ONE COLUMN).

TYPES : BEGIN OF TY_BSEG,

       BUKRS TYPE BSEG-BUKRS,

       BELNR TYPE BSEG-BELNR,

       GJAHR TYPE BSEG-GJAHR,

       KTOSL TYPE BSEG-KTOSL,

       LIFNR TYPE BSEG-LIFNR,

       BUPLA TYPE BSEG-BUPLA,

       SECCO TYPE BSEG-SECCO,

       END OF TY_BSEG,

       BEGIN OF TY_BKPF,

       BELNR TYPE BKPF-BELNR,

       BUDAT TYPE BKPF-BUDAT,

       XBLNR TYPE BKPF-XBLNR,

       BKTXT TYPE BKPF-BKTXT,

       END OF TY_BKPF,

       BEGIN OF TY_WITH_ITEM,

       BUKRS      TYPE WITH_ITEM-BUKRS,      "COMPANY CODE

       BELNR      TYPE WITH_ITEM-BELNR,      " DOCUMENT NUMBER

       GJAHR      TYPE WITH_ITEM-GJAHR, "      FISCAL YEAR

*      WITHT      TYPE WITH_ITEM-WITHT,      "  WITHHLD TAX TYPE

       WT_QSSHH   TYPE WITH_ITEM-WT_QSSHH, "       BASE AMT FOR TDS

       QSATZ      TYPE WITH_ITEM-QSATZ      ,"

       WT_QBSHH    TYPE WITH_ITEM-WT_QBSHH   ,"

        WT_ACCO    TYPE WITH_ITEM-WT_ACCO,

       J_1IINTCHLN TYPE WITH_ITEM-J_1IINTCHLN, "

       QSREC       TYPE WITH_ITEM-QSREC      , "

       J_1IINTCHDT TYPE WITH_ITEM-J_1IINTCHDT, "

       J_1ICERTDT  TYPE WITH_ITEM-J_1ICERTDT , "

       J_1IREBZG   TYPE WITH_ITEM-J_1IREBZG, "

        J_1ISURAMT TYPE WITH_ITEM-J_1ISURAMT ,"

       END OF TY_WITH_ITEM,

       BEGIN OF TY_LFA1,

       LIFNR TYPE LFA1-LIFNR,

       NAME1 TYPE LFA1-NAME1,

       ORT01 TYPE LFA1-ORT01,

       PSTLZ TYPE LFA1-PSTLZ,

       REGIO TYPE LFA1-REGIO,

       STRAS TYPE LFA1-STRAS,

       ADRNR TYPE LFA1-ADRNR,

       SPRAS TYPE LFA1-SPRAS,

       STCD2 TYPE LFA1-STCD2,

       END OF TY_LFA1,

*      BEGIN OF TY_BSIK,

*      LIFNR TYPE BSIK-LIFNR,

*      BELNR TYPE BSIK-BELNR,

*      SECCO TYPE BSIK-SECCO,

*      END OF TY_BSIK,

      BEGIN OF TY_PAYR,

      CHECT TYPE PAYR-CHECT,

      VBLNR TYPE PAYR-VBLNR,

      GJAHR TYPE PAYR-GJAHR,

      END OF TY_PAYR,

       BEGIN OF TY_J_1IMOVEND,

       J_1IPANNO TYPE J_1IMOVEND-J_1IPANNO,

       LIFNR     TYPE J_1IMOVEND-LIFNR,

       END OF TY_J_1IMOVEND,

       BEGIN OF TY_J_1IEWT_CERTIF,

       BUPLA TYPE J_1IEWT_CERTIF-BUPLA,

       J_1ICERTDT TYPE J_1IEWT_CERTIF-J_1ICERTDT,     "CERTIFICATE DATE

*      J_1ISECTYP TYPE J_1IEWT_CERTIF-J_1ISECTYP,

       END OF TY_J_1IEWT_CERTIF,

       BEGIN OF TY_T005U,

       SPRAS TYPE T005U-SPRAS,

       LAND1 TYPE T005U-LAND1,

       BLAND TYPE T005U-BLAND,

       BEZEI TYPE T005U-BEZEI,

       END OF TY_T005U,

       BEGIN OF TY_J_1IEWTCHLN,

         BUKRS TYPE J_1IEWTCHLN-BUKRS,

         BELNR TYPE J_1IEWTCHLN-BELNR,

         GJAHR TYPE J_1IEWTCHLN-GJAHR,

         J_1IINTCHLN1 TYPE J_1IEWTCHLN-J_1IINTCHLN,

         J_1IINTCHDT1 TYPE J_1IEWTCHLN-J_1IINTCHDT,

       END OF TY_J_1IEWTCHLN,

       BEGIN OF TY_TOTAL,

       BUKRS TYPE BSEG-BUKRS,

       GJAHR TYPE BSEG-GJAHR,

       KTOSL TYPE BSEG-KTOSL,

       BUPLA TYPE BSEG-BUPLA,

       SECCO TYPE BSEG-SECCO,

        BELNR TYPE BKPF-BELNR,

       BUDAT TYPE BKPF-BUDAT,

       XBLNR TYPE BKPF-XBLNR,

       BKTXT TYPE BKPF-BKTXT,

       WT_QSSHH   TYPE WITH_ITEM-WT_QSSHH, "       BASE AMT FOR TDS

       QSATZ      TYPE WITH_ITEM-QSATZ      ,"

       WT_QBSHH    TYPE WITH_ITEM-WT_QBSHH   ,"

       WT_ACCO    TYPE WITH_ITEM-WT_ACCO,

       J_1IINTCHLN TYPE WITH_ITEM-J_1IINTCHLN, "

       QSREC       TYPE WITH_ITEM-QSREC      , "

       J_1IINTCHDT TYPE WITH_ITEM-J_1IINTCHDT, "

       J_1IREBZG   TYPE WITH_ITEM-J_1IREBZG, "

       J_1ISURAMT TYPE WITH_ITEM-J_1ISURAMT ,"

       LIFNR TYPE LFA1-LIFNR,

       CHECT TYPE PAYR-CHECT,

      VBLNR TYPE PAYR-VBLNR,

       NAME1 TYPE LFA1-NAME1,

       ORT01 TYPE LFA1-ORT01,

       PSTLZ TYPE LFA1-PSTLZ,

       REGIO TYPE LFA1-REGIO,

       STRAS TYPE LFA1-STRAS,

       ADRNR TYPE LFA1-ADRNR,

      SPRAS TYPE LFA1-SPRAS,

       STCD2 TYPE LFA1-STCD2,

       J_1ICERTDT TYPE J_1IEWT_CERTIF-J_1ICERTDT,     "CERTIFICATE DATE

       J_1IPANNO TYPE J_1IMOVEND-J_1IPANNO,

       LAND1 TYPE T005U-LAND1,

       BLAND TYPE T005U-BLAND,

       BEZEI TYPE T005U-BEZEI,

       J_1IINTCHLN1 TYPE J_1IEWTCHLN-J_1IINTCHLN,

       J_1IINTCHDT1 TYPE J_1IEWTCHLN-J_1IINTCHDT,

       EDUCESS TYPE NETWR,

       HEDUCESS TYPE NETWR,

       INTEREST TYPE NETWR,

       OTHER TYPE NETWR,

       FAMT TYPE NETWR,

       BSCODE TYPE C,

       BENTRY TYPE C,

       CERTI TYPE C,

       DFTDC TYPE C,

       RNDLD TYPE C,

       MERGE TYPE CHAR100,

       MERGE1 TYPE CHAR50,

       WTDS TYPE CHAR12,

       MHEAD TYPE CHAR10,

       END OF TY_TOTAL.

  DATA : LV_TDS TYPE NETWR.

  DATA:

    IT_BSEG TYPE STANDARD TABLE OF TY_BSEG,

    WA_BSEG TYPE TY_BSEG,

    IT_BKPF TYPE STANDARD TABLE OF TY_BKPF,

    WA_BKPF TYPE TY_BKPF,

    IT_WITH_ITEM TYPE STANDARD TABLE OF TY_WITH_ITEM,

    WA_WITH_ITEM TYPE TY_WITH_ITEM,

    IT_LFA1 TYPE STANDARD TABLE OF TY_LFA1,

    WA_LFA1 TYPE TY_LFA1,

    IT_PAYR TYPE STANDARD TABLE OF TY_PAYR,

    WA_PAYR TYPE TY_PAYR,

*   IT_BSIK TYPE STANDARD TABLE OF TY_BSIK,

*   WA_BSIK TYPE TY_BSIK,

    IT_J_1IMOVEND TYPE STANDARD TABLE OF TY_J_1IMOVEND,

    WA_J_1IMOVEND TYPE TY_J_1IMOVEND,

    IT_J_1IEWT_CERTIF TYPE STANDARD TABLE OF TY_J_1IEWT_CERTIF,

    WA_J_1IEWT_CERTIF TYPE TY_J_1IEWT_CERTIF,

    IT_T005U TYPE STANDARD TABLE OF  TY_T005U,

    WA_T005U TYPE TY_T005U,

    IT_J_1IEWTCHLN TYPE STANDARD TABLE OF TY_J_1IEWTCHLN,

    WA_J_1IEWTCHLN TYPE TY_J_1IEWTCHLN,

    IT_TOTAL TYPE STANDARD TABLE OF TY_TOTAL,

    WA_TOTAL TYPE TY_TOTAL.

DATA: GT_OUTTAB TYPE TABLE OF Ty_TOTAL.

SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001..

   SELECT-OPTIONS :

                P_BUKRS FOR WA_BSEG-BUKRS,

                P_BUPLA FOR WA_BSEG-BUPLA,

                P_SECCO FOR WA_BSEG-SECCO,

                P_BUDAT FOR WA_BKPF-BUDAT,

                P_GJAHR FOR WA_BSEG-GJAHR.

   SELECTION-SCREEN : END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK C1 WITH FRAME TITLE TEXT-002.

PARAMETERS: ANNEXURE RADIOBUTTON GROUP G1 USER-COMMAND TEST DEFAULT 'X',

             CHALLAN RADIOBUTTON GROUP G1.

SELECTION-SCREEN END OF BLOCK C1.

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

*       MAIN                                                          *

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

END-OF-SELECTION.

   CALL SCREEN 100.

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

*       MODULE PBO OUTPUT                                             *

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

MODULE PBO OUTPUT.

   SET PF-STATUS 'MAIN100'.

   SET TITLEBAR 'MAIN100'.

   IF G_CUSTOM_CONTAINER IS INITIAL.

     PERFORM CREATE_AND_INIT_ALV CHANGING GT_OUTTAB[]

                                          GT_FIELDCAT.

   ENDIF.

ENDMODULE.

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

*       MODULE PAI INPUT                                              *

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

MODULE PAI INPUT.

   SAVE_OK = OK_CODE.

   CLEAR OK_CODE.

   CASE SAVE_OK.

     WHEN 'EXIT'.

       PERFORM EXIT_PROGRAM.

     WHEN OTHERS.

*     DO NOTHING

   ENDCASE.

ENDMODULE.

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

*       FORM EXIT_PROGRAM                                             *

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

FORM EXIT_PROGRAM.

   LEAVE PROGRAM.

ENDFORM.

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

*&      FORM  BUILD_FIELDCAT

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

*       TEXT

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

*      <--P_GT_FIELDCAT  TEXT

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

FORM BUILD_FIELDCAT CHANGING PT_FIELDCAT TYPE LVC_T_FCAT.

   DATA LS_FCAT TYPE LVC_S_FCAT.

   CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

        EXPORTING

             I_STRUCTURE_NAME = 'TY_TOTAL'

        CHANGING

             CT_FIELDCAT      = gt_FIELDCAT.

   LOOP AT PT_FIELDCAT INTO LS_FCAT.

* EXCHANGE SMOKER FIELD WITH INVOICE FIELD - JUST TO

* MAKE THE DEPENDANCE BETWEEN SMOKER AND CLASS MORE TRANSPARENT

* (SMOKING IS ONLY ALLOWED IN THE FIRST CLASS).

     IF LS_FCAT-FIELDNAME EQ 'MHEAD'.

*§3.SET YOUR DROPDOWN FIELD EDITABLE AND ASSIGN THE FIELDNAME OF THE

*   CORRESPONDING ADDITIONAL FIELD TO DRDN_FIELD OF THE FIELDCATALOG.

       LS_FCAT-EDIT = 'X'.

       LS_FCAT-DRDN_HNDL = '1'.

       LS_FCAT-OUTPUTLEN = 7.

* FIELD 'CHECKTABLE' IS SET TO AVOID SHORTDUMPS THAT ARE CAUSED

* BY INCONSISTEND DATA IN CHECK TABLES. YOU MAY COMMENT THIS OUT

* WHEN THE TEST DATA OF THE FLIGHT MODEL IS CONSISTENT IN YOUR SYSTEM.

       LS_FCAT-CHECKTABLE = '!'.        "DO NOT CHECK FOREIGN KEYS

       MODIFY PT_FIELDCAT FROM LS_FCAT.

     ENDIF.

   ENDLOOP.

ENDFORM.

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

*&      FORM  CREATE_AND_INIT_ALV

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

*       TEXT

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

*      <--P_GT_OUTTAB  TEXT

*      <--P_GT_FIELDCAT  TEXT

*      <--P_GS_LAYOUT  TEXT

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

FORM CREATE_AND_INIT_ALV CHANGING PT_OUTTAB TYPE STANDARD TABLE

                                   PT_FIELDCAT TYPE LVC_T_FCAT.

   DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.

   CREATE OBJECT G_CUSTOM_CONTAINER

          EXPORTING CONTAINER_NAME = G_CONTAINER.

   CREATE OBJECT G_GRID

          EXPORTING I_PARENT = G_CUSTOM_CONTAINER.

   PERFORM BUILD_FIELDCAT CHANGING PT_FIELDCAT.

* OPTIONALLY RESTRICT GENERIC FUNCTIONS TO 'CHANGE ONLY'.

*   (THE USER SHALL NOT BE ABLE TO ADD NEW LINES).

   PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.

   PERFORM SET_DRDN_TABLE.

   PERFORM BUILD_DATA CHANGING PT_OUTTAB.

   CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY

        EXPORTING IT_TOOLBAR_EXCLUDING  = LT_EXCLUDE

        CHANGING  IT_FIELDCATALOG       = PT_FIELDCAT

                  IT_OUTTAB             = PT_OUTTAB[].

* SET EDITABLE CELLS TO READY FOR INPUT INITIALLY

   CALL METHOD G_GRID->SET_READY_FOR_INPUT

    EXPORTING

     I_READY_FOR_INPUT = 1.

ENDFORM.                               "CREATE_AND_INIT_ALV

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

*&      FORM  EXCLUDE_TB_FUNCTIONS

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

*       TEXT

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

*      <--P_LT_EXCLUDE  TEXT

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

FORM EXCLUDE_TB_FUNCTIONS CHANGING PT_EXCLUDE TYPE UI_FUNCTIONS.

* ONLY ALLOW TO CHANGE DATA NOT TO CREATE NEW ENTRIES (EXCLUDE

* GENERIC FUNCTIONS).

   DATA LS_EXCLUDE TYPE UI_FUNC.

   LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW.

   APPEND LS_EXCLUDE TO PT_EXCLUDE.

   LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW.

   APPEND LS_EXCLUDE TO PT_EXCLUDE.

   LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW.

   APPEND LS_EXCLUDE TO PT_EXCLUDE.

   LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW.

   APPEND LS_EXCLUDE TO PT_EXCLUDE.

   LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW.

   APPEND LS_EXCLUDE TO PT_EXCLUDE.

ENDFORM.                               " EXCLUDE_TB_FUNCTIONS

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

*&      FORM  SET_DRDN_TABLE

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

*       TEXT

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

*  -->  P1        TEXT

*  <--  P2        TEXT

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

FORM SET_DRDN_TABLE.

*§2.DEFINE A DROPDOWN TABLE AND PASS IT TO ALV.

*   ONE LISTBOX IS REFERENCED BY A HANDLE, E.G., '1'.

*   FOR EACH ENTRY THAT SHALL APPEAR IN THIS LISTBOX

*   YOU HAVE TO APPEND A LINE TO THE DROPDOWN TABLE

*   WITH HANDLE '1'.

*   THIS HANDLE CAN BE ASSIGNED TO SEVERAL COLUMNS

*   OF THE OUTPUT TABLE USING THE FIELD CATALOG.

   DATA: LT_DROPDOWN TYPE LVC_T_DROP,

         LS_DROPDOWN TYPE LVC_S_DROP.

   LS_DROPDOWN-HANDLE = '1'.

   LS_DROPDOWN-VALUE = '200'.

   APPEND LS_DROPDOWN TO LT_DROPDOWN.

   LS_DROPDOWN-HANDLE = '1'.

   LS_DROPDOWN-VALUE = '400'.

   APPEND LS_DROPDOWN TO LT_DROPDOWN.

   CALL METHOD G_GRID->SET_DROP_DOWN_TABLE

               EXPORTING IT_DROP_DOWN = LT_DROPDOWN.

ENDFORM.                               " SET_DRDN_TABLE

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

*&      FORM  BUILD_DATA

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

*       TEXT

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

*  -->  P1        TEXT

*  <--  P2        TEXT

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

FORM BUILD_DATA CHANGING PT_OUTTAB TYPE STANDARD TABLE.

   DATA: L_INDEX TYPE I,

         LS_OUTTAB LIKE LINE OF GT_OUTTAB.

SELECT BUKRS

        BELNR

        GJAHR

        KTOSL

        LIFNR

        BUPLA

        SECCO INTO TABLE IT_BSEG FROM BSEG WHERE BUKRS IN P_BUKRS

                                           AND   BUPLA IN P_BUPLA

                                           AND   SECCO IN P_SECCO

                                           AND   GJAHR IN P_GJAHR.

*                                          AND   KTOSL = 'WIT'.

   SELECT BELNR

          BUDAT

          XBLNR

          BKTXT INTO TABLE IT_BKPF FROM BKPF FOR ALL ENTRIES IN IT_BSEG

                WHERE BELNR = IT_BSEG-BELNR AND BUDAT IN P_BUDAT.

   SELECT BUKRS BELNR  GJAHR WT_QSSHH QSATZ WT_QBSHH WT_ACCO

          J_1IINTCHLN QSREC  J_1IINTCHDT J_1ICERTDT J_1IREBZG J_1ISURAMT

          INTO TABLE IT_WITH_ITEM FROM WITH_ITEM FOR ALL ENTRIES IN IT_BSEG

      WHERE BUKRS = IT_BSEG-BUKRS AND BELNR = IT_BSEG-BELNR AND GJAHR = IT_BSEG-GJAHR.

  SELECT  BUKRS

          BELNR

          GJAHR

          J_1IINTCHLN

          J_1IINTCHDT INTO TABLE IT_J_1IEWTCHLN FROM J_1IEWTCHLN FOR ALL ENTRIES IN  IT_WITH_ITEM

          WHERE BUKRS = IT_WITH_ITEM-BUKRS AND BELNR = IT_WITH_ITEM-BELNR AND GJAHR = IT_WITH_ITEM-GJAHR.

   SELECT LIFNR

          NAME1

          ORT01

          PSTLZ

          REGIO

          STRAS

          ADRNR

          SPRAS STCD2 INTO TABLE IT_LFA1 FROM LFA1 FOR ALL ENTRIES IN IT_WITH_ITEM

          WHERE LIFNR = IT_WITH_ITEM-WT_ACCO AND SPRAS = 'EN'.

* IF IT_LFA1 IS NOT INITIAL.

   SELECT SPRAS

          LAND1

          BLAND

          BEZEI INTO TABLE IT_T005U FROM T005U FOR ALL ENTRIES IN IT_LFA1

          WHERE BLAND = IT_LFA1-REGIO AND SPRAS = IT_LFA1-SPRAS AND LAND1 = 'IN'.

* ENDIF.

   SELECT CHECT VBLNR GJAHR INTO TABLE IT_PAYR FROM PAYR FOR ALL ENTRIES IN IT_BSEG

         WHERE VBLNR = IT_BSEG-BELNR AND GJAHR = IT_BSEG-GJAHR.

   SELECT  J_1IPANNO LIFNR INTO TABLE IT_J_1IMOVEND FROM  J_1IMOVEND

   FOR ALL ENTRIES IN IT_WITH_ITEM WHERE LIFNR = IT_WITH_ITEM-WT_ACCO.

   SELECT BUPLA J_1ICERTDT INTO TABLE IT_J_1IEWT_CERTIF FROM J_1IEWT_CERTIF

   FOR ALL ENTRIES IN IT_BSEG WHERE BUPLA = IT_BSEG-BUPLA.

   LOOP AT IT_BSEG INTO WA_BSEG.

     LOOP AT IT_WITH_ITEM INTO WA_WITH_ITEM WHERE BUKRS = WA_BSEG-BUKRS

     AND BELNR = WA_BSEG-BELNR AND GJAHR = WA_BSEG-GJAHR .

   READ TABLE IT_J_1IEWTCHLN INTO WA_J_1IEWTCHLN WITH KEY BELNR = WA_WITH_ITEM-BELNR BINARY SEARCH.

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

*  READ TABLE IT_WITH_ITEM INTO WA_WITH_ITEM WITH KEY

*  BUKRS = WA_BSEG-BUKRS  BELNR = WA_BSEG-BELNR GJAHR = WA_BSEG-GJAHR BINARY SEARCH.

   READ TABLE IT_LFA1 INTO WA_LFA1 WITH KEY LIFNR = WA_WITH_ITEM-WT_ACCO BINARY SEARCH.

*LOOP AT IT_LFA1 INTO WA_LFA1 WHERE LIFNR = WA_WITH_ITEM-WT_ACCO.

   READ TABLE IT_T005U INTO WA_T005U WITH KEY BLAND = WA_LFA1-REGIO SPRAS = WA_LFA1-SPRAS  BINARY SEARCH.

*  ENDLOOP.

   READ TABLE IT_PAYR INTO WA_PAYR WITH KEY VBLNR = WA_BSEG-BELNR

                            GJAHR = WA_BSEG-GJAHR  BINARY SEARCH.

   READ TABLE IT_J_1IMOVEND INTO WA_J_1IMOVEND WITH KEY LIFNR = WA_WITH_ITEM-WT_ACCO BINARY SEARCH.

   READ TABLE IT_J_1IEWT_CERTIF INTO WA_J_1IEWT_CERTIF

   WITH KEY BUPLA = WA_BSEG-BUPLA.

   MOVE : WA_BSEG-BELNR TO WA_TOTAL-BELNR,

          WA_WITH_ITEM-QSREC TO WA_TOTAL-QSREC,

          WA_LFA1-LIFNR TO WA_TOTAL-LIFNR,

          WA_LFA1-NAME1 TO WA_TOTAL-NAME1,

          WA_LFA1-REGIO TO WA_TOTAL-REGIO,

          WA_LFA1-ORT01 TO WA_TOTAL-ORT01,

          WA_LFA1-PSTLZ TO WA_TOTAL-PSTLZ,

          WA_LFA1-STRAS TO WA_TOTAL-STRAS,

           WA_LFA1-STCD2 TO WA_TOTAL-STCD2,

           WA_LFA1-ADRNR TO WA_TOTAL-ADRNR.

           IF  WA_LFA1-REGIO IS NOT INITIAL.

        MOVE WA_T005U-BEZEI TO WA_TOTAL-BEZEI.

           ENDIF.

         MOVE : WA_PAYR-CHECT TO WA_TOTAL-CHECT,

*         WA_WITH_ITEM-WT_QSSHH TO WA_TOTAL-WT_QSSHH,

           WA_WITH_ITEM-J_1IINTCHDT TO WA_TOTAL-J_1IINTCHDT,

          WA_WITH_ITEM-QSATZ TO WA_TOTAL-QSATZ,

          WA_WITH_ITEM-WT_QBSHH TO WA_TOTAL-WT_QBSHH,

           WA_WITH_ITEM-J_1ISURAMT TO WA_TOTAL-J_1ISURAMT,

          WA_WITH_ITEM-J_1IREBZG  TO WA_TOTAL-J_1IREBZG,

          WA_BKPF-BUDAT TO WA_TOTAL-BUDAT,

          WA_BKPF-BKTXT TO WA_TOTAL-BKTXT,

          WA_WITH_ITEM-J_1IINTCHLN TO WA_TOTAL-J_1IINTCHLN,

          WA_WITH_ITEM-J_1ICERTDT TO  WA_TOTAL-J_1ICERTDT,

          WA_J_1IMOVEND-J_1IPANNO TO WA_TOTAL-J_1IPANNO,

          WA_J_1IEWTCHLN-J_1IINTCHLN1 TO WA_TOTAL-J_1IINTCHLN1,

          WA_J_1IEWTCHLN-J_1IINTCHDT1 TO WA_TOTAL-J_1IINTCHDT1,

          WA_TOTAL-EDUCESS TO WA_TOTAL-EDUCESS.

          LV_TDS = LV_TDS +  WA_WITH_ITEM-WT_QSSHH.

        CONCATENATE WA_TOTAL-BKTXT ',' WA_TOTAL-J_1IINTCHDT1 ','  WA_TOTAL-J_1IINTCHLN1 INTO WA_TOTAL-MERGE.

          MOVE : WA_TOTAL-MERGE TO WA_TOTAL-MERGE.

          WA_TOTAL-WT_QSSHH = LV_TDS.

          APPEND WA_TOTAL TO IT_TOTAL.

          CLEAR : LV_TDS.

*         CLEAR : WA_LFA1-REGIO.

           CLEAR WA_TOTAL.

   ENDLOOP.

*   CONCATENATE WA_TOTAL-LIFNR '-' WA_TOTAL-NAME1 INTO WA_TOTAL-MERGE.

   ENDLOOP.

DELETE ADJACENT DUPLICATES FROM IT_TOTAL COMPARING BELNR ."J_

*§4.SET THE HANDLE OF YOUR ADDITIONAL FIELD OF YOUR OUTPUT

*   TABLE ACCORDING TO THE LISTBOX THAT SHALL BE DISPLAYED.

   LOOP AT IT_TOTAL INTO WA_TOTAL.

     L_INDEX = SY-TABIX.

     MOVE-CORRESPONDING WA_TOTAL TO LS_OUTTAB.

*    CLEAR LS_OUTTAB-CLASS.

* ALTERNATE BETWEEN SMOKER AND NON SMOKER TO MAKE

* IT MORE OBVIOUS WHAT THIS EXAMPLE IS ABOUT

     APPEND LS_OUTTAB TO PT_OUTTAB.

   ENDLOOP.

ENDFORM.                  



0 Kudos

Please try  using PT_FIELDCAT instead of GT_FIELDCAT.

Fieldcatalog might be empty. Please check method set_table_for_first_display().

Regards,

Vishal

Former Member
0 Kudos

Thank you vishal.

There are 2 drawback one that you told me and another is structure is not created.

0 Kudos

Hi Sneha,

Please mark the correct answer and close the thread.

Regards,

Vishal