<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic why this code is not working for alv in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001308#M76537</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;i have implemented the same program for ALV which i have used earlier in the reports. but now it is showing no output:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZTCT1_ALV2                                                  *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;                                                                     *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*

REPORT  ztct1_alv2                              .

CLASS lcl_event_receiver DEFINITION DEFERRED.
*-------------------------------------------------------------------------
* INCLUDING TABLES.
*-------------------------------------------------------------------------
TABLES: vbrk,
        vbrp,
        kna1,
        t001w,
        makt.

*-------------------------------------------------------------------------
* DECLARATION OF INTERNAL TABLES.
*-------------------------------------------------------------------------
DATA: BEGIN OF itab OCCURS 0,  "Including the fields of VBRK and VBRP
        kunag LIKE vbrk-kunag, "Customer Code
        name1 LIKE kna1-name1, "Customer Name
        vbeln LIKE vbrk-vbeln, "Invoice #
        fkdat LIKE vbrk-fkdat, "Invoice Date
        werks LIKE vbrp-werks, "Plant
        name2 LIKE t001w-name1,"Plant Description
        matnr LIKE vbrp-matnr, "Material #
        maktx LIKE makt-maktx, "Material Description
        meins LIKE vbrp-meins, "Unit of Measure
        fklmg LIKE vbrp-fklmg, "Quantity
        netwr LIKE vbrp-netwr, "Amount
      END OF itab,

      BEGIN OF itnm OCCURS 0,  "Including the fields of VBRK and KNA1
        kunag LIKE vbrk-kunag, "Customer Code
        name1 LIKE kna1-name1, "Customer Name
      END OF itnm,

      BEGIN OF itpt OCCURS 0,  "Including the fields of VBRP and T001W
        werks LIKE vbrp-werks, "Plant
        name1 LIKE t001w-name1,"Plant Description
      END OF itpt,

      BEGIN OF itmt OCCURS 0,  "Including the fields of VBRP and MAKT
        matnr LIKE vbrp-matnr, "Material #
        maktx LIKE makt-maktx, "Material description
      END OF itmt,
      BEGIN OF itsm OCCURS 0,
        kunag LIKE kna1-kunnr,
        name1 LIKE kna1-name1,
        fklmg LIKE vbrp-fklmg,
        netwr LIKE vbrp-netwr,
      END OF itsm,

      ok_code            LIKE sy-ucomm,
      save_ok            LIKE sy-ucomm,
      g_max              TYPE i VALUE 100,
      g_repid            LIKE sy-repid,
      gs_layout          TYPE lvc_s_layo,
      g_container        TYPE scrfname VALUE 'CUST_CONT',
      grid1              TYPE REF TO cl_gui_alv_grid,
      g_custom_container TYPE REF TO cl_gui_custom_container,
      grid2              TYPE REF TO cl_gui_alv_grid,
      gt_sort            TYPE lvc_t_sort,
      gt_fieldcatalog    TYPE lvc_t_fcat,
      w_tot_qty          LIKE vbrp-fklmg,
      w_tot_amt          LIKE vbrp-netwr,
* Reference to Dialogbox Container.
      dialogbox_container TYPE REF TO cl_gui_dialogbox_container,
* Reference to local class that handles events of GRID1 and
* DIALOGBOX_CONTAINER
      event_receiver TYPE REF TO lcl_event_receiver.

*-------------------------------------------------------------------------
* SELECT-OPTIONS
*-------------------------------------------------------------------------
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_werks FOR vbrp-werks, "Plant
                s_kunag FOR vbrk-kunag, "Customer
                s_matnr FOR vbrp-matnr, "Material Number
                s_fkdat FOR vbrk-fkdat. "Invoice Date
SELECTION-SCREEN END OF BLOCK input .
SELECTION-SCREEN SKIP 1.

*-------------------------------------------------------------------------
* START-OF-SELECTION
*-------------------------------------------------------------------------
START-OF-SELECTION.

  SET SCREEN 100.
*-------------------------------------------------------------------------
* CLEARING INTERNAL TABLES.
*-------------------------------------------------------------------------
  CLEAR: itab,
         itnm,
         itmt,
         itpt.

*-------------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRK AND VBRP
*-------------------------------------------------------------------------
  SELECT vbrk~kunag
         vbrk~vbeln
         vbrk~fkdat
         vbrp~werks
         vbrp~matnr
         vbrp~meins
         vbrp~fklmg
         vbrp~netwr
         INTO CORRESPONDING FIELDS OF TABLE itab
         FROM vbrk
         INNER JOIN vbrp
             ON vbrk~vbeln = vbrp~vbeln
         WHERE vbrk~kunag IN s_kunag
           AND vbrk~fkdat IN s_fkdat
           AND vbrp~matnr IN s_matnr
           AND vbrp~werks IN s_werks.

*-------------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRK AND KNA1
*-------------------------------------------------------------------------
  SELECT kna1~kunnr AS kunag
         kna1~name1
         INTO TABLE itnm
         FROM kna1
         WHERE kna1~kunnr IN s_kunag.

*-------------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRP AND T001W
*-------------------------------------------------------------------------
  SELECT t001w~werks
         t001w~name1
         INTO TABLE itpt
         FROM t001w
         WHERE t001w~werks IN s_werks.

*-------------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRP AND MAKT
*-------------------------------------------------------------------------
  SELECT makt~matnr
         makt~maktx
         INTO TABLE itmt
         FROM makt
         WHERE makt~matnr IN s_matnr.

*-------------------------------------------------------------------------
* SORTING INTERNAL TABLES.
*-------------------------------------------------------------------------
  SORT itab BY kunag.

*    LOOP AT itab.
*      CLEAR: itmt, itnm, itpt.
*      READ TABLE itnm WITH KEY kunag = itab-kunag.
*      READ TABLE itmt WITH KEY matnr = itab-matnr.
*      READ TABLE itpt WITH KEY werks = itab-werks.
*      itab-name1 = itnm-name1.
*      itab-maktx = itmt-maktx.
*      itab-name2 = itpt-name1.
*      MODIFY itab.
*    ENDLOOP.
*
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C' 'Customer Code'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C' 'Customer Name'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'VBELN' 'C' 'Invoice #'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKDAT' 'DATS' 'Invoice Date'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'WERKS' 'C' 'Plant'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME2' 'C' 'Plant Description'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MATNR' 'C' 'Material #'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MAKTX' 'C' 'Material Description'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MEINS' 'C' 'UoM'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN' 'Quantity'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR' 'Amount'.
    LOOP AT itab.
      CLEAR itsm.
      READ TABLE itnm WITH KEY kunag = itab-kunag.
      itsm-kunag = itab-kunag.
      itsm-name1 = itnm-name1.
      itsm-fklmg = itab-fklmg.
      itsm-netwr = itab-netwr.
      COLLECT itsm.
    ENDLOOP.

    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C' 'Customer Code'.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C' 'Customer Name'.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN' 'Quantity'.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR' 'Amount'.
  PERFORM sort_build USING gt_sort[].
  PERFORM layout_init USING gs_layout.

******************************************************************
*   LOCAL CLASSES: Definition
******************************************************************
CLASS lcl_event_receiver DEFINITION.

  PUBLIC SECTION.
    METHODS:

    handle_double_click
        FOR EVENT double_click OF cl_gui_alv_grid
            IMPORTING e_row e_column,
    handle_close
        FOR EVENT close OF cl_gui_dialogbox_container
            IMPORTING sender.

  PRIVATE SECTION.
    DATA: dialogbox_status TYPE c.  "'X': does exist, SPACE: does not ex.

ENDCLASS.                    "lcl_event_receiver DEFINITION

******************************************************************
*   LOCAL CLASSES: Implementation
******************************************************************
CLASS lcl_event_receiver IMPLEMENTATION.

*   §3.At doubleclick(1): The event DOUBLE_CLICK provides
*      parameters of the clicked row and column.
*      Use row parameter to select a line of the
*      corresponding internal table.
  METHOD handle_double_click.
    DATA: ls_sm LIKE LINE OF itsm,
          wa_itab LIKE ITAB.

*   read selected row from internal table gt_sflight
    READ TABLE itsm INDEX e_row-index INTO ls_sm.

*   §4.At Doubleclick(2): Select booking data
*    READ TABLE ITAB WITH KEY KUNAG = LS_SM-KUNAG.    .
    READ TABLE ITAB INTO WA_ITAB WITH KEY KUNAG = LS_SM-KUNAG.

*   §5.At doubleclick(3): Create dialogbox to show detail list
*     (if not already existent)
    IF dialogbox_status IS INITIAL.
      dialogbox_status = 'X'.
      PERFORM create_detail_list.
    ELSE.
      CALL METHOD dialogbox_container-&amp;gt;set_visible
        EXPORTING
          visible = 'X'.
      CALL METHOD grid2-&amp;gt;refresh_table_display.
    ENDIF.
  ENDMETHOD.                    "handle_double_click
*----------------------------------------------------------*
  METHOD handle_close.
*   §6.Handle the CLOSE-button of the dialogbox

*   set dialogbox invisible
*   (the dialogbox is destroyed outomatically when the user
*   switches to another dynpro).
    CALL METHOD sender-&amp;gt;set_visible
      EXPORTING
        visible = space.
*   In this example closing the dialogbox leads
*   to make it invisible. It is also conceivable to destroy it
*   and recreate it if the user doubleclicks a line again.
*   Displaying a great amount of data has a greater impact on performance.
  ENDMETHOD.                    "handle_close

ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
*
*   lcl_event_receiver (Implementation)
*=====================================================================

*---------------------------------------------------------------------*
*       FORM EXIT_PROGRAM                                             *
*---------------------------------------------------------------------*
FORM exit_program.
  CALL METHOD g_custom_container-&amp;gt;free.
  CALL METHOD cl_gui_cfw=&amp;gt;flush.
  IF sy-subrc NE 0.
* add your handling, for example
    CALL FUNCTION 'POPUP_TO_INFORM'
      EXPORTING
        titel = g_repid
        txt2  = sy-subrc
        txt1  = 'Error in FLush'(500).
  ENDIF.
  LEAVE TO SCREEN 0.
ENDFORM.                    "exit_program

*---------------------------------------------------------------------*
*  MODULE PBO_ALV OUTPUT
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
MODULE pbo_alv OUTPUT.
  SET PF-STATUS 'MAIN'.
  SET TITLEBAR 'MAIN100'.
  g_repid = sy-repid.
  IF g_custom_container IS INITIAL.
    READ TABLE itsm.
    CREATE OBJECT g_custom_container
      EXPORTING
        container_name = g_container
      EXCEPTIONS
        cntl_error = 1
        cntl_system_error = 2
        create_error = 3
        lifetime_error = 4
        lifetime_dynpro_dynpro_link = 5.

    IF sy-subrc NE 0.
      CALL FUNCTION 'POPUP_TO_INFORM'
        EXPORTING
          titel = g_repid
          txt2  = sy-subrc
          txt1  = 'The control could not be created'(510).
    ENDIF.

    CREATE OBJECT grid1
      EXPORTING
        i_parent = g_custom_container.
    gs_layout-grid_title = 'Invoice Summary'.

    CALL METHOD grid1-&amp;gt;set_table_for_first_display
      EXPORTING
        is_layout       = gs_layout
      CHANGING
        it_outtab       = itsm[]
        it_fieldcatalog = gt_fieldcatalog
        it_sort         = gt_sort.

    CREATE OBJECT event_receiver.
    SET HANDLER event_receiver-&amp;gt;handle_double_click FOR grid1.
  ENDIF.

  CALL METHOD cl_gui_control=&amp;gt;set_focus
    EXPORTING
      control = grid1.

ENDMODULE.                    "PBO_ALV OUTPUT

*---------------------------------------------------------------------*
*  MODULE PAI_ALV INPUT
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
MODULE pai_alv INPUT.
  CALL METHOD cl_gui_cfw=&amp;gt;dispatch.

  CASE sy-ucomm.
    WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.                    "PAI_ALV INPUT

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  fieldcatalog_init
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;LT_FIELDCATtext
*      --&amp;gt;VALUE(FIELDtextE)
*      --&amp;gt;VALUE(FIELDtextE)
*      --&amp;gt;VALUE(FIELDtextT)
*---------------------------------------------------------------------*
FORM fieldcatalog_init USING lt_fieldcatalog TYPE lvc_t_fcat
                       value(field_name) value(field_type) value(field_text).
  DATA: ls_fieldcatalog TYPE lvc_s_fcat.

  CLEAR ls_fieldcatalog.
  ls_fieldcatalog-fieldname = field_name.
  ls_fieldcatalog-datatype  = field_type.
  ls_fieldcatalog-reptext   = field_text.
  ls_fieldcatalog-coltext  =  field_text.
  ls_fieldcatalog-seltext  =  field_text.
  ls_fieldcatalog-tooltip  =  field_text.

  APPEND ls_fieldcatalog TO lt_fieldcatalog.
ENDFORM.                    "fieldcatalog_init

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  sort_build
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;LT_SORT    text
*---------------------------------------------------------------------*
FORM sort_build USING lt_sort TYPE lvc_t_sort.
  DATA: ls_sort TYPE lvc_s_sort.

  ls_sort-fieldname = 'KUNAG'.    "Fieldname on which to sort
  ls_sort-up        = 'X'.        "Sort Ascending
  APPEND ls_sort TO lt_sort.

  ls_sort-fieldname = 'NAME1'.    "Fieldname on which to sort
  ls_sort-up        = 'X'.        "Sort Ascending
  APPEND ls_sort TO lt_sort.

ENDFORM.                    "sort_build

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  layout_init
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;LS_LAYOUT  text
*---------------------------------------------------------------------*
FORM layout_init USING ls_layout TYPE lvc_s_layo.
  ls_layout-zebra      = 'X'.
  ls_layout-grid_title = 'Customer Details'.
  ls_layout-sel_mode   = 'A'.
  ls_layout-cwidth_opt = 'X'.
ENDFORM.                    "layout_init

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  create_detail_list
*&amp;amp;---------------------------------------------------------------------*
*         text
*------------------------------------------------------------------------*
*    --&amp;gt;  p1        text
*    &amp;lt;--  p2        text
*------------------------------------------------------------------------*
FORM create_detail_list.
*   create dialogbox container as dynpro-instance
*   When the user switches to another screen, it is
*   destroyed by lifetime mangagement of CFW
  CREATE OBJECT dialogbox_container
      EXPORTING
        top = 150
        left = 150
        lifetime = cntl_lifetime_dynpro
        caption = 'INVOICE DETAILS'(200)
        width = 800
        height = 200.
  CREATE OBJECT grid2
      EXPORTING i_parent = dialogbox_container.
*   Register ABAP OO event 'CLOSE'. It is not necessary to register this
*   event at the frontend (this is done during creation).
  SET HANDLER event_receiver-&amp;gt;handle_close FOR dialogbox_container.

*   display data
  gs_layout-grid_title = 'Invoice Details'(100).
  CALL METHOD grid2-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'itab'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = itab[]
      it_fieldcatalog  = gt_fieldcatalog
      it_sort          = gt_sort.


  CALL METHOD cl_gui_control=&amp;gt;set_focus
    EXPORTING
      control = grid2.

ENDFORM.                    " create_detail_list[code][/&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;code]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 06 Oct 2005 05:26:24 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2005-10-06T05:26:24Z</dc:date>
    <item>
      <title>why this code is not working for alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001308#M76537</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;i have implemented the same program for ALV which i have used earlier in the reports. but now it is showing no output:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZTCT1_ALV2                                                  *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;                                                                     *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*

REPORT  ztct1_alv2                              .

CLASS lcl_event_receiver DEFINITION DEFERRED.
*-------------------------------------------------------------------------
* INCLUDING TABLES.
*-------------------------------------------------------------------------
TABLES: vbrk,
        vbrp,
        kna1,
        t001w,
        makt.

*-------------------------------------------------------------------------
* DECLARATION OF INTERNAL TABLES.
*-------------------------------------------------------------------------
DATA: BEGIN OF itab OCCURS 0,  "Including the fields of VBRK and VBRP
        kunag LIKE vbrk-kunag, "Customer Code
        name1 LIKE kna1-name1, "Customer Name
        vbeln LIKE vbrk-vbeln, "Invoice #
        fkdat LIKE vbrk-fkdat, "Invoice Date
        werks LIKE vbrp-werks, "Plant
        name2 LIKE t001w-name1,"Plant Description
        matnr LIKE vbrp-matnr, "Material #
        maktx LIKE makt-maktx, "Material Description
        meins LIKE vbrp-meins, "Unit of Measure
        fklmg LIKE vbrp-fklmg, "Quantity
        netwr LIKE vbrp-netwr, "Amount
      END OF itab,

      BEGIN OF itnm OCCURS 0,  "Including the fields of VBRK and KNA1
        kunag LIKE vbrk-kunag, "Customer Code
        name1 LIKE kna1-name1, "Customer Name
      END OF itnm,

      BEGIN OF itpt OCCURS 0,  "Including the fields of VBRP and T001W
        werks LIKE vbrp-werks, "Plant
        name1 LIKE t001w-name1,"Plant Description
      END OF itpt,

      BEGIN OF itmt OCCURS 0,  "Including the fields of VBRP and MAKT
        matnr LIKE vbrp-matnr, "Material #
        maktx LIKE makt-maktx, "Material description
      END OF itmt,
      BEGIN OF itsm OCCURS 0,
        kunag LIKE kna1-kunnr,
        name1 LIKE kna1-name1,
        fklmg LIKE vbrp-fklmg,
        netwr LIKE vbrp-netwr,
      END OF itsm,

      ok_code            LIKE sy-ucomm,
      save_ok            LIKE sy-ucomm,
      g_max              TYPE i VALUE 100,
      g_repid            LIKE sy-repid,
      gs_layout          TYPE lvc_s_layo,
      g_container        TYPE scrfname VALUE 'CUST_CONT',
      grid1              TYPE REF TO cl_gui_alv_grid,
      g_custom_container TYPE REF TO cl_gui_custom_container,
      grid2              TYPE REF TO cl_gui_alv_grid,
      gt_sort            TYPE lvc_t_sort,
      gt_fieldcatalog    TYPE lvc_t_fcat,
      w_tot_qty          LIKE vbrp-fklmg,
      w_tot_amt          LIKE vbrp-netwr,
* Reference to Dialogbox Container.
      dialogbox_container TYPE REF TO cl_gui_dialogbox_container,
* Reference to local class that handles events of GRID1 and
* DIALOGBOX_CONTAINER
      event_receiver TYPE REF TO lcl_event_receiver.

*-------------------------------------------------------------------------
* SELECT-OPTIONS
*-------------------------------------------------------------------------
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_werks FOR vbrp-werks, "Plant
                s_kunag FOR vbrk-kunag, "Customer
                s_matnr FOR vbrp-matnr, "Material Number
                s_fkdat FOR vbrk-fkdat. "Invoice Date
SELECTION-SCREEN END OF BLOCK input .
SELECTION-SCREEN SKIP 1.

*-------------------------------------------------------------------------
* START-OF-SELECTION
*-------------------------------------------------------------------------
START-OF-SELECTION.

  SET SCREEN 100.
*-------------------------------------------------------------------------
* CLEARING INTERNAL TABLES.
*-------------------------------------------------------------------------
  CLEAR: itab,
         itnm,
         itmt,
         itpt.

*-------------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRK AND VBRP
*-------------------------------------------------------------------------
  SELECT vbrk~kunag
         vbrk~vbeln
         vbrk~fkdat
         vbrp~werks
         vbrp~matnr
         vbrp~meins
         vbrp~fklmg
         vbrp~netwr
         INTO CORRESPONDING FIELDS OF TABLE itab
         FROM vbrk
         INNER JOIN vbrp
             ON vbrk~vbeln = vbrp~vbeln
         WHERE vbrk~kunag IN s_kunag
           AND vbrk~fkdat IN s_fkdat
           AND vbrp~matnr IN s_matnr
           AND vbrp~werks IN s_werks.

*-------------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRK AND KNA1
*-------------------------------------------------------------------------
  SELECT kna1~kunnr AS kunag
         kna1~name1
         INTO TABLE itnm
         FROM kna1
         WHERE kna1~kunnr IN s_kunag.

*-------------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRP AND T001W
*-------------------------------------------------------------------------
  SELECT t001w~werks
         t001w~name1
         INTO TABLE itpt
         FROM t001w
         WHERE t001w~werks IN s_werks.

*-------------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRP AND MAKT
*-------------------------------------------------------------------------
  SELECT makt~matnr
         makt~maktx
         INTO TABLE itmt
         FROM makt
         WHERE makt~matnr IN s_matnr.

*-------------------------------------------------------------------------
* SORTING INTERNAL TABLES.
*-------------------------------------------------------------------------
  SORT itab BY kunag.

*    LOOP AT itab.
*      CLEAR: itmt, itnm, itpt.
*      READ TABLE itnm WITH KEY kunag = itab-kunag.
*      READ TABLE itmt WITH KEY matnr = itab-matnr.
*      READ TABLE itpt WITH KEY werks = itab-werks.
*      itab-name1 = itnm-name1.
*      itab-maktx = itmt-maktx.
*      itab-name2 = itpt-name1.
*      MODIFY itab.
*    ENDLOOP.
*
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C' 'Customer Code'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C' 'Customer Name'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'VBELN' 'C' 'Invoice #'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKDAT' 'DATS' 'Invoice Date'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'WERKS' 'C' 'Plant'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME2' 'C' 'Plant Description'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MATNR' 'C' 'Material #'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MAKTX' 'C' 'Material Description'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MEINS' 'C' 'UoM'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN' 'Quantity'.
*    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR' 'Amount'.
    LOOP AT itab.
      CLEAR itsm.
      READ TABLE itnm WITH KEY kunag = itab-kunag.
      itsm-kunag = itab-kunag.
      itsm-name1 = itnm-name1.
      itsm-fklmg = itab-fklmg.
      itsm-netwr = itab-netwr.
      COLLECT itsm.
    ENDLOOP.

    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C' 'Customer Code'.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C' 'Customer Name'.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN' 'Quantity'.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR' 'Amount'.
  PERFORM sort_build USING gt_sort[].
  PERFORM layout_init USING gs_layout.

******************************************************************
*   LOCAL CLASSES: Definition
******************************************************************
CLASS lcl_event_receiver DEFINITION.

  PUBLIC SECTION.
    METHODS:

    handle_double_click
        FOR EVENT double_click OF cl_gui_alv_grid
            IMPORTING e_row e_column,
    handle_close
        FOR EVENT close OF cl_gui_dialogbox_container
            IMPORTING sender.

  PRIVATE SECTION.
    DATA: dialogbox_status TYPE c.  "'X': does exist, SPACE: does not ex.

ENDCLASS.                    "lcl_event_receiver DEFINITION

******************************************************************
*   LOCAL CLASSES: Implementation
******************************************************************
CLASS lcl_event_receiver IMPLEMENTATION.

*   §3.At doubleclick(1): The event DOUBLE_CLICK provides
*      parameters of the clicked row and column.
*      Use row parameter to select a line of the
*      corresponding internal table.
  METHOD handle_double_click.
    DATA: ls_sm LIKE LINE OF itsm,
          wa_itab LIKE ITAB.

*   read selected row from internal table gt_sflight
    READ TABLE itsm INDEX e_row-index INTO ls_sm.

*   §4.At Doubleclick(2): Select booking data
*    READ TABLE ITAB WITH KEY KUNAG = LS_SM-KUNAG.    .
    READ TABLE ITAB INTO WA_ITAB WITH KEY KUNAG = LS_SM-KUNAG.

*   §5.At doubleclick(3): Create dialogbox to show detail list
*     (if not already existent)
    IF dialogbox_status IS INITIAL.
      dialogbox_status = 'X'.
      PERFORM create_detail_list.
    ELSE.
      CALL METHOD dialogbox_container-&amp;gt;set_visible
        EXPORTING
          visible = 'X'.
      CALL METHOD grid2-&amp;gt;refresh_table_display.
    ENDIF.
  ENDMETHOD.                    "handle_double_click
*----------------------------------------------------------*
  METHOD handle_close.
*   §6.Handle the CLOSE-button of the dialogbox

*   set dialogbox invisible
*   (the dialogbox is destroyed outomatically when the user
*   switches to another dynpro).
    CALL METHOD sender-&amp;gt;set_visible
      EXPORTING
        visible = space.
*   In this example closing the dialogbox leads
*   to make it invisible. It is also conceivable to destroy it
*   and recreate it if the user doubleclicks a line again.
*   Displaying a great amount of data has a greater impact on performance.
  ENDMETHOD.                    "handle_close

ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
*
*   lcl_event_receiver (Implementation)
*=====================================================================

*---------------------------------------------------------------------*
*       FORM EXIT_PROGRAM                                             *
*---------------------------------------------------------------------*
FORM exit_program.
  CALL METHOD g_custom_container-&amp;gt;free.
  CALL METHOD cl_gui_cfw=&amp;gt;flush.
  IF sy-subrc NE 0.
* add your handling, for example
    CALL FUNCTION 'POPUP_TO_INFORM'
      EXPORTING
        titel = g_repid
        txt2  = sy-subrc
        txt1  = 'Error in FLush'(500).
  ENDIF.
  LEAVE TO SCREEN 0.
ENDFORM.                    "exit_program

*---------------------------------------------------------------------*
*  MODULE PBO_ALV OUTPUT
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
MODULE pbo_alv OUTPUT.
  SET PF-STATUS 'MAIN'.
  SET TITLEBAR 'MAIN100'.
  g_repid = sy-repid.
  IF g_custom_container IS INITIAL.
    READ TABLE itsm.
    CREATE OBJECT g_custom_container
      EXPORTING
        container_name = g_container
      EXCEPTIONS
        cntl_error = 1
        cntl_system_error = 2
        create_error = 3
        lifetime_error = 4
        lifetime_dynpro_dynpro_link = 5.

    IF sy-subrc NE 0.
      CALL FUNCTION 'POPUP_TO_INFORM'
        EXPORTING
          titel = g_repid
          txt2  = sy-subrc
          txt1  = 'The control could not be created'(510).
    ENDIF.

    CREATE OBJECT grid1
      EXPORTING
        i_parent = g_custom_container.
    gs_layout-grid_title = 'Invoice Summary'.

    CALL METHOD grid1-&amp;gt;set_table_for_first_display
      EXPORTING
        is_layout       = gs_layout
      CHANGING
        it_outtab       = itsm[]
        it_fieldcatalog = gt_fieldcatalog
        it_sort         = gt_sort.

    CREATE OBJECT event_receiver.
    SET HANDLER event_receiver-&amp;gt;handle_double_click FOR grid1.
  ENDIF.

  CALL METHOD cl_gui_control=&amp;gt;set_focus
    EXPORTING
      control = grid1.

ENDMODULE.                    "PBO_ALV OUTPUT

*---------------------------------------------------------------------*
*  MODULE PAI_ALV INPUT
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
MODULE pai_alv INPUT.
  CALL METHOD cl_gui_cfw=&amp;gt;dispatch.

  CASE sy-ucomm.
    WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.                    "PAI_ALV INPUT

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  fieldcatalog_init
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;LT_FIELDCATtext
*      --&amp;gt;VALUE(FIELDtextE)
*      --&amp;gt;VALUE(FIELDtextE)
*      --&amp;gt;VALUE(FIELDtextT)
*---------------------------------------------------------------------*
FORM fieldcatalog_init USING lt_fieldcatalog TYPE lvc_t_fcat
                       value(field_name) value(field_type) value(field_text).
  DATA: ls_fieldcatalog TYPE lvc_s_fcat.

  CLEAR ls_fieldcatalog.
  ls_fieldcatalog-fieldname = field_name.
  ls_fieldcatalog-datatype  = field_type.
  ls_fieldcatalog-reptext   = field_text.
  ls_fieldcatalog-coltext  =  field_text.
  ls_fieldcatalog-seltext  =  field_text.
  ls_fieldcatalog-tooltip  =  field_text.

  APPEND ls_fieldcatalog TO lt_fieldcatalog.
ENDFORM.                    "fieldcatalog_init

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  sort_build
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;LT_SORT    text
*---------------------------------------------------------------------*
FORM sort_build USING lt_sort TYPE lvc_t_sort.
  DATA: ls_sort TYPE lvc_s_sort.

  ls_sort-fieldname = 'KUNAG'.    "Fieldname on which to sort
  ls_sort-up        = 'X'.        "Sort Ascending
  APPEND ls_sort TO lt_sort.

  ls_sort-fieldname = 'NAME1'.    "Fieldname on which to sort
  ls_sort-up        = 'X'.        "Sort Ascending
  APPEND ls_sort TO lt_sort.

ENDFORM.                    "sort_build

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  layout_init
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;LS_LAYOUT  text
*---------------------------------------------------------------------*
FORM layout_init USING ls_layout TYPE lvc_s_layo.
  ls_layout-zebra      = 'X'.
  ls_layout-grid_title = 'Customer Details'.
  ls_layout-sel_mode   = 'A'.
  ls_layout-cwidth_opt = 'X'.
ENDFORM.                    "layout_init

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  create_detail_list
*&amp;amp;---------------------------------------------------------------------*
*         text
*------------------------------------------------------------------------*
*    --&amp;gt;  p1        text
*    &amp;lt;--  p2        text
*------------------------------------------------------------------------*
FORM create_detail_list.
*   create dialogbox container as dynpro-instance
*   When the user switches to another screen, it is
*   destroyed by lifetime mangagement of CFW
  CREATE OBJECT dialogbox_container
      EXPORTING
        top = 150
        left = 150
        lifetime = cntl_lifetime_dynpro
        caption = 'INVOICE DETAILS'(200)
        width = 800
        height = 200.
  CREATE OBJECT grid2
      EXPORTING i_parent = dialogbox_container.
*   Register ABAP OO event 'CLOSE'. It is not necessary to register this
*   event at the frontend (this is done during creation).
  SET HANDLER event_receiver-&amp;gt;handle_close FOR dialogbox_container.

*   display data
  gs_layout-grid_title = 'Invoice Details'(100).
  CALL METHOD grid2-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'itab'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = itab[]
      it_fieldcatalog  = gt_fieldcatalog
      it_sort          = gt_sort.


  CALL METHOD cl_gui_control=&amp;gt;set_focus
    EXPORTING
      control = grid2.

ENDFORM.                    " create_detail_list[code][/&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;code]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Oct 2005 05:26:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001308#M76537</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-06T05:26:24Z</dc:date>
    </item>
    <item>
      <title>Re: why this code is not working for alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001309#M76538</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Did you checked your itab after this select statement in debugging?If itab is empty,then you won't output.Kindly reward points by clciking the star on the left of reply,if it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; SELECT vbrk~kunag&lt;/P&gt;&lt;P&gt;         vbrk~vbeln&lt;/P&gt;&lt;P&gt;         vbrk~fkdat&lt;/P&gt;&lt;P&gt;         vbrp~werks&lt;/P&gt;&lt;P&gt;         vbrp~matnr&lt;/P&gt;&lt;P&gt;         vbrp~meins&lt;/P&gt;&lt;P&gt;         vbrp~fklmg&lt;/P&gt;&lt;P&gt;         vbrp~netwr&lt;/P&gt;&lt;P&gt;         INTO CORRESPONDING FIELDS OF TABLE itab&lt;/P&gt;&lt;P&gt;         FROM vbrk&lt;/P&gt;&lt;P&gt;         INNER JOIN vbrp&lt;/P&gt;&lt;P&gt;             ON vbrk&lt;SUB&gt;vbeln = vbrp&lt;/SUB&gt;vbeln&lt;/P&gt;&lt;P&gt;         WHERE vbrk~kunag IN s_kunag&lt;/P&gt;&lt;P&gt;           AND vbrk~fkdat IN s_fkdat&lt;/P&gt;&lt;P&gt;           AND vbrp~matnr IN s_matnr&lt;/P&gt;&lt;P&gt;           AND vbrp~werks IN s_werks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Oct 2005 05:35:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001309#M76538</guid>
      <dc:creator>jayanthi_jayaraman</dc:creator>
      <dc:date>2005-10-06T05:35:36Z</dc:date>
    </item>
    <item>
      <title>Re: why this code is not working for alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001310#M76539</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i have seen the itab it is getting data properly&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Oct 2005 05:41:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001310#M76539</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-06T05:41:36Z</dc:date>
    </item>
    <item>
      <title>Re: why this code is not working for alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001311#M76540</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorted out ur problem, the problem is in module, while &amp;lt;b&amp;gt;calling screen&amp;lt;/b&amp;gt; just got to the flowlogic double &amp;lt;b&amp;gt;click on PBO and PAI module&amp;lt;/b&amp;gt; and then create dont copy paste.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That is the problem y it didnt work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried copy and pasting ur code it didnt work first, then if u go and &amp;lt;b&amp;gt;double click on the module in flowlogic it will ask whether u need to create it&amp;lt;/b&amp;gt;. So this means that u haven't created properly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;No other problem in ur logic and program its working fine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Remember to reward poinst and close the thread.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Oct 2005 05:48:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001311#M76540</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-06T05:48:13Z</dc:date>
    </item>
    <item>
      <title>Re: why this code is not working for alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001312#M76541</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i have made the PBO AND PAI by double clicking only&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Oct 2005 05:51:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001312#M76541</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-06T05:51:51Z</dc:date>
    </item>
    <item>
      <title>Re: why this code is not working for alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001313#M76542</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also copied and pasted the same code check once again by copying this code and create screens by double clicking on 100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;************************************************************************
CLASS lcl_event_receiver DEFINITION DEFERRED.
*-----------------------------------------------------------------------
* INCLUDING TABLES.
*-----------------------------------------------------------------------

TABLES: vbrk,
        vbrp,
        kna1,
        t001w,
        makt.

*-----------------------------------------------------------------------
* DECLARATION OF INTERNAL TABLES.
*-----------------------------------------------------------------------

DATA: BEGIN OF itab OCCURS 0,  "Including the fields of VBRK and VBRP
        kunag LIKE vbrk-kunag, "Customer Code
        name1 LIKE kna1-name1, "Customer Name
        vbeln LIKE vbrk-vbeln, "Invoice #
        fkdat LIKE vbrk-fkdat, "Invoice Date
        werks LIKE vbrp-werks, "Plant
        name2 LIKE t001w-name1,"Plant Description
        matnr LIKE vbrp-matnr, "Material #
        maktx LIKE makt-maktx, "Material Description
        meins LIKE vbrp-meins, "Unit of Measure
        fklmg LIKE vbrp-fklmg, "Quantity
        netwr LIKE vbrp-netwr, "Amount
      END OF itab,

      BEGIN OF itnm OCCURS 0,  "Including the fields of VBRK and KNA1
        kunag LIKE vbrk-kunag, "Customer Code
        name1 LIKE kna1-name1, "Customer Name
      END OF itnm,

      BEGIN OF itpt OCCURS 0,  "Including the fields of VBRP and T001W
        werks LIKE vbrp-werks, "Plant
        name1 LIKE t001w-name1,"Plant Description
      END OF itpt,

      BEGIN OF itmt OCCURS 0,  "Including the fields of VBRP and MAKT
        matnr LIKE vbrp-matnr, "Material #
        maktx LIKE makt-maktx, "Material description
      END OF itmt,
      BEGIN OF itsm OCCURS 0,
        kunag LIKE kna1-kunnr,
        name1 LIKE kna1-name1,
        fklmg LIKE vbrp-fklmg,
        netwr LIKE vbrp-netwr,
      END OF itsm,

      ok_code            LIKE sy-ucomm,
      save_ok            LIKE sy-ucomm,
      g_max              TYPE i VALUE 100,
      g_repid            LIKE sy-repid,
      gs_layout          TYPE lvc_s_layo,
      g_container        TYPE scrfname VALUE 'CUST_CONT',
      grid1              TYPE REF TO cl_gui_alv_grid,
      g_custom_container TYPE REF TO cl_gui_custom_container,
      grid2              TYPE REF TO cl_gui_alv_grid,
      gt_sort            TYPE lvc_t_sort,
      gt_fieldcatalog    TYPE lvc_t_fcat,
      w_tot_qty          LIKE vbrp-fklmg,
      w_tot_amt          LIKE vbrp-netwr,
* Reference to Dialogbox Container.
      dialogbox_container TYPE REF TO cl_gui_dialogbox_container,
* Reference to local class that handles events of GRID1 and
* DIALOGBOX_CONTAINER
      event_receiver TYPE REF TO lcl_event_receiver.

*-----------------------------------------------------------------------

* SELECT-OPTIONS
*-----------------------------------------------------------------------

SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_werks FOR vbrp-werks, "Plant
                s_kunag FOR vbrk-kunag, "Customer
                s_matnr FOR vbrp-matnr, "Material Number
                s_fkdat FOR vbrk-fkdat. "Invoice Date
SELECTION-SCREEN END OF BLOCK input .
SELECTION-SCREEN SKIP 1.

*-----------------------------------------------------------------------

* START-OF-SELECTION
*-----------------------------------------------------------------------

START-OF-SELECTION.
SET SCREEN 100.
*-----------------------------------------------------------------------

* CLEARING INTERNAL TABLES.
*-----------------------------------------------------------------------

  CLEAR: itab,
         itnm,
         itmt,
         itpt.

*-----------------------------------------------------------------------

* QUERY FOR JOINING TABLES VBRK AND VBRP
*-----------------------------------------------------------------------
  SELECT vbrk~kunag
         vbrk~vbeln
         vbrk~fkdat
         vbrp~werks
         vbrp~matnr
         vbrp~meins
         vbrp~fklmg
         vbrp~netwr
         INTO CORRESPONDING FIELDS OF TABLE itab
         FROM vbrk
         INNER JOIN vbrp
             ON vbrk~vbeln = vbrp~vbeln
         WHERE vbrk~kunag IN s_kunag
           AND vbrk~fkdat IN s_fkdat
           AND vbrp~matnr IN s_matnr
           AND vbrp~werks IN s_werks.

*-----------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRK AND KNA1
*-----------------------------------------------------------------------
  SELECT kna1~kunnr AS kunag
         kna1~name1
         INTO TABLE itnm
         FROM kna1
         WHERE kna1~kunnr IN s_kunag.

*-----------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRP AND T001W
*-----------------------------------------------------------------------
  SELECT t001w~werks
         t001w~name1
         INTO TABLE itpt
         FROM t001w
         WHERE t001w~werks IN s_werks.

*-----------------------------------------------------------------------
* QUERY FOR JOINING TABLES VBRP AND MAKT
*-----------------------------------------------------------------------
  SELECT makt~matnr
         makt~maktx
         INTO TABLE itmt
         FROM makt
         WHERE makt~matnr IN s_matnr.

*-----------------------------------------------------------------------
* SORTING INTERNAL TABLES.
*-----------------------------------------------------------------------
  SORT itab BY kunag.

    LOOP AT itab.
      CLEAR itsm.
      READ TABLE itnm WITH KEY kunag = itab-kunag.
      itsm-kunag = itab-kunag.
      itsm-name1 = itnm-name1.
      itsm-fklmg = itab-fklmg.
      itsm-netwr = itab-netwr.
      COLLECT itsm.
    ENDLOOP.
* END-OF-SELECTION.
*
* If not itsm[] is initial.
*    CALL SCREEN 100.
* endif.

******************************************************************
*   LOCAL CLASSES: Definition
******************************************************************
CLASS lcl_event_receiver DEFINITION.

  PUBLIC SECTION.
    METHODS:

    handle_double_click
        FOR EVENT double_click OF cl_gui_alv_grid
            IMPORTING e_row e_column,
    handle_close
        FOR EVENT close OF cl_gui_dialogbox_container
            IMPORTING sender.

  PRIVATE SECTION.
    DATA: dialogbox_status TYPE c.  "'X': does exist, SPACE: does not ex
.

ENDCLASS.                    "lcl_event_receiver DEFINITION

******************************************************************
*   LOCAL CLASSES: Implementation
******************************************************************
CLASS lcl_event_receiver IMPLEMENTATION.

*   §3.At doubleclick(1): The event DOUBLE_CLICK provides
*      parameters of the clicked row and column.
*      Use row parameter to select a line of the
*      corresponding internal table.
  METHOD handle_double_click.
    DATA: ls_sm LIKE LINE OF itsm,
          wa_itab LIKE ITAB.

*   read selected row from internal table gt_sflight
    READ TABLE itsm INDEX e_row-index INTO ls_sm.

*   §4.At Doubleclick(2): Select booking data
*    READ TABLE ITAB WITH KEY KUNAG = LS_SM-KUNAG.    .
    READ TABLE ITAB INTO WA_ITAB WITH KEY KUNAG = LS_SM-KUNAG.

*   §5.At doubleclick(3): Create dialogbox to show detail list
*     (if not already existent)
    IF dialogbox_status IS INITIAL.
      dialogbox_status = 'X'.
      PERFORM create_detail_list.
    ELSE.
      CALL METHOD dialogbox_container-&amp;gt;set_visible
        EXPORTING
          visible = 'X'.
      CALL METHOD grid2-&amp;gt;refresh_table_display.
    ENDIF.
  ENDMETHOD.                    "handle_double_click
*----------------------------------------------------------*
  METHOD handle_close.
*   §6.Handle the CLOSE-button of the dialogbox

*   set dialogbox invisible
*   (the dialogbox is destroyed outomatically when the user
*   switches to another dynpro).
    CALL METHOD sender-&amp;gt;set_visible
      EXPORTING
        visible = space.
*   In this example closing the dialogbox leads
*   to make it invisible. It is also conceivable to destroy it
*   and recreate it if the user doubleclicks a line again.
*   Displaying a great amount of data has a greater impact on
*performance.
  ENDMETHOD.                    "handle_close

ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
*
*   lcl_event_receiver (Implementation)
*=====================================================================

*---------------------------------------------------------------------*
*       FORM EXIT_PROGRAM                                             *
*---------------------------------------------------------------------*
FORM exit_program.
  CALL METHOD g_custom_container-&amp;gt;free.
  CALL METHOD cl_gui_cfw=&amp;gt;flush.
  IF sy-subrc NE 0.
* add your handling, for example
    CALL FUNCTION 'POPUP_TO_INFORM'
      EXPORTING
        titel = g_repid
        txt2  = sy-subrc
        txt1  = 'Error in FLush'(500).
  ENDIF.
  LEAVE TO SCREEN 0.
ENDFORM.                    "exit_program

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module STATUS_0100 output.
  SET PF-STATUS 'MAIN'.
  SET TITLEBAR 'MAIN100'.
  g_repid = sy-repid.
  IF g_custom_container IS INITIAL.
    READ TABLE itsm.
    CREATE OBJECT g_custom_container
      EXPORTING
        container_name = g_container
      EXCEPTIONS
        cntl_error = 1
        cntl_system_error = 2
        create_error = 3
        lifetime_error = 4
        lifetime_dynpro_dynpro_link = 5.

    IF sy-subrc NE 0.
      CALL FUNCTION 'POPUP_TO_INFORM'
        EXPORTING
          titel = g_repid
          txt2  = sy-subrc
          txt1  = 'The control could not be created'(510).
    ENDIF.

    CREATE OBJECT grid1
      EXPORTING
        i_parent = g_custom_container.
    gs_layout-grid_title = 'Invoice Summary'.

 PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C'
'Customer Code'.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C'
'Customer Name'.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN'
'Quantity'.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR'
'Amount'.
  PERFORM sort_build USING gt_sort[].
  PERFORM layout_init USING gs_layout.

    CALL METHOD grid1-&amp;gt;set_table_for_first_display
      EXPORTING
        is_layout       = gs_layout
      CHANGING
        it_outtab       = itsm[]
        it_fieldcatalog = gt_fieldcatalog
        it_sort         = gt_sort.

    CREATE OBJECT event_receiver.
    SET HANDLER event_receiver-&amp;gt;handle_double_click FOR grid1.
  ENDIF.

  CALL METHOD cl_gui_control=&amp;gt;set_focus
    EXPORTING
      control = grid1.

endmodule.                 " STATUS_0100  OUTPUT

*---------------------------------------------------------------------*
*  MODULE PAI_ALV INPUT
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
 MODULE USER_COMMAND_0100.
 CALL METHOD cl_gui_cfw=&amp;gt;dispatch.

  CASE sy-ucomm.
    WHEN 'BACK' OR 'EXIT' OR 'CANC'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.                    "PAI_ALV INPUT

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  fieldcatalog_init
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;LT_FIELDCATtext
*      --&amp;gt;VALUE(FIELDtextE)
*      --&amp;gt;VALUE(FIELDtextE)
*      --&amp;gt;VALUE(FIELDtextT)
*---------------------------------------------------------------------*
FORM fieldcatalog_init USING lt_fieldcatalog TYPE lvc_t_fcat
                       value(field_name) value(field_type)
value(field_text).
  DATA: ls_fieldcatalog TYPE lvc_s_fcat.

  CLEAR ls_fieldcatalog.
  ls_fieldcatalog-fieldname = field_name.
  ls_fieldcatalog-datatype  = field_type.
  ls_fieldcatalog-reptext   = field_text.
  ls_fieldcatalog-coltext  =  field_text.
  ls_fieldcatalog-seltext  =  field_text.
  ls_fieldcatalog-tooltip  =  field_text.

  APPEND ls_fieldcatalog TO lt_fieldcatalog.
ENDFORM.                    "fieldcatalog_init

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  sort_build
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;LT_SORT    text
*---------------------------------------------------------------------*
FORM sort_build USING lt_sort TYPE lvc_t_sort.
  DATA: ls_sort TYPE lvc_s_sort.

  ls_sort-fieldname = 'KUNAG'.    "Fieldname on which to sort
  ls_sort-up        = 'X'.        "Sort Ascending
  APPEND ls_sort TO lt_sort.

  ls_sort-fieldname = 'NAME1'.    "Fieldname on which to sort
  ls_sort-up        = 'X'.        "Sort Ascending
  APPEND ls_sort TO lt_sort.

ENDFORM.                    "sort_build

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  layout_init
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;LS_LAYOUT  text
*---------------------------------------------------------------------*
FORM layout_init USING ls_layout TYPE lvc_s_layo.
  ls_layout-zebra      = 'X'.
  ls_layout-grid_title = 'Customer Details'.
  ls_layout-sel_mode   = 'A'.
  ls_layout-cwidth_opt = 'X'.
ENDFORM.                    "layout_init

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  create_detail_list
*&amp;amp;---------------------------------------------------------------------*
*         text
*-----------------------------------------------------------------------
*    --&amp;gt;  p1        text
*    &amp;lt;--  p2        text
*-----------------------------------------------------------------------
FORM create_detail_list.
*   create dialogbox container as dynpro-instance
*   When the user switches to another screen, it is
*   destroyed by lifetime mangagement of CFW
  CREATE OBJECT dialogbox_container
      EXPORTING
        top = 150
        left = 150
        lifetime = cntl_lifetime_dynpro
        caption = 'INVOICE DETAILS'(200)
        width = 800
        height = 200.
  CREATE OBJECT grid2
      EXPORTING i_parent = dialogbox_container.
*   Register ABAP OO event 'CLOSE'. It is not necessary to register this
*   event at the frontend (this is done during creation).
  SET HANDLER event_receiver-&amp;gt;handle_close FOR dialogbox_container.

*   display data
  gs_layout-grid_title = 'Invoice Details'(100).
  CALL METHOD grid2-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'itab'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = itab[]
      it_fieldcatalog  = gt_fieldcatalog
      it_sort          = gt_sort.


  CALL METHOD cl_gui_control=&amp;gt;set_focus
    EXPORTING
      control = grid2.

ENDFORM.                    " create_detail_list&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nothing wrong in the code i am able to see the output with five records and the pop-up screen on double clicking a value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kindly close the thread or revert back&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Oct 2005 05:57:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001313#M76542</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-06T05:57:04Z</dc:date>
    </item>
    <item>
      <title>Re: why this code is not working for alv</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001314#M76543</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Siddarth,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Will u please close this thread rewarding points we r spending time in solving ur problem, but u r not giving any response?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Oct 2005 05:20:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/why-this-code-is-not-working-for-alv/m-p/1001314#M76543</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-10-11T05:20:29Z</dc:date>
    </item>
  </channel>
</rss>

