<?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 Interactive reports in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/interactive-reports/m-p/2241710#M483381</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How to develop an interactive report to display the list of Sales Orders with their items and all other sales related information with a check box for each SO. There is a facility on the application toolbar which provides the option for displaying or changing the selected sales order by navigating to the respective transactions.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 17 May 2007 14:05:27 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-05-17T14:05:27Z</dc:date>
    <item>
      <title>Interactive reports</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/interactive-reports/m-p/2241710#M483381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How to develop an interactive report to display the list of Sales Orders with their items and all other sales related information with a check box for each SO. There is a facility on the application toolbar which provides the option for displaying or changing the selected sales order by navigating to the respective transactions.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 May 2007 14:05:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/interactive-reports/m-p/2241710#M483381</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-17T14:05:27Z</dc:date>
    </item>
    <item>
      <title>Re: Interactive reports</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/interactive-reports/m-p/2241711#M483382</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a possible solution for your problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZUS_SDN_TWO_ALV_GRIDS_4
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  zus_sdn_two_alv_grids_4.




DATA:
  gd_okcode        TYPE ui_func,
*
  go_docking       TYPE REF TO cl_gui_docking_container,
  go_splitter      TYPE REF TO cl_gui_splitter_container,
  go_cell_top      TYPE REF TO cl_gui_container,
  go_cell_bottom   TYPE REF TO cl_gui_container,
  go_grid1         TYPE REF TO cl_gui_alv_grid,
  go_grid2         TYPE REF TO cl_gui_alv_grid,
  gs_layout        TYPE lvc_s_layo.


DATA:
  gt_vbak          TYPE STANDARD TABLE OF vbak,
  gt_vbap          TYPE STANDARD TABLE OF vbap.





*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.

  PUBLIC SECTION.
    CLASS-METHODS:
      handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
        IMPORTING
          e_row
          e_column
          es_row_no
          sender,

      handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
        IMPORTING
          e_row_id
          e_column_id
          es_row_no
          sender.

ENDCLASS.                    "lcl_eventhandler DEFINITION



*---------------------------------------------------------------------*
*       CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.

  METHOD handle_double_click.
*   define local data
    DATA:
      ls_vbak      TYPE vbak.

    CHECK ( sender = go_grid1 ).

    READ TABLE gt_vbak INTO ls_vbak INDEX e_row-index.
    CHECK ( ls_vbak-vbeln IS NOT INITIAL ).

    CALL METHOD go_grid1-&amp;gt;set_current_cell_via_id
      EXPORTING
*        IS_ROW_ID    =
*        IS_COLUMN_ID =
        is_row_no    = es_row_no.


*   Triggers PAI of the dynpro with the specified ok-code
    CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code( 'DETAIL' ).



  ENDMETHOD.                    "handle_double_click



  METHOD handle_hotspot_click.
*   define local data
    DATA:
      ls_bdcdata  TYPE bdcdata,
      lt_bdcdata  TYPE bdcdata_tab,
      ls_vbak     TYPE vbak,
      ls_col_id   TYPE lvc_s_col.

    READ TABLE gt_vbak INTO ls_vbak INDEX e_row_id-index.
    CHECK ( ls_vbak-vbeln IS NOT INITIAL ).

    CASE e_column_id-fieldname.
      WHEN 'VBELN'.
        CLEAR: ls_bdcdata.
        ls_bdcdata-dynbegin = 'T'.
        ls_bdcdata-fnam     = 'VA02'.
        APPEND ls_bdcdata TO lt_bdcdata.
*
        CLEAR: ls_bdcdata.
        ls_bdcdata-program  = 'SAPMV45A'.
        ls_bdcdata-fnam     = '0102'.
        ls_bdcdata-dynbegin = 'X'.
        ls_bdcdata-fnam     = 'VBAK-VBELN'.
        ls_bdcdata-fval     = ls_vbak-vbeln.
        APPEND ls_bdcdata TO lt_bdcdata.
*
        CLEAR: ls_bdcdata.
        ls_bdcdata-fnam     = 'BDC_CURSOR'.
        ls_bdcdata-fval     = '/00'.  " ENTER
        APPEND ls_bdcdata TO lt_bdcdata.

        CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
          EXPORTING
            tcode                         = 'VA02'
*            SKIP_SCREEN                   = ' '
             MODE_VAL                      = 'A'
             UPDATE_VAL                    = 'S'
*          IMPORTING
*            SUBRC                         =
          TABLES
            using_tab                     = lt_bdcdata
*            SPAGPA_TAB                    =
*            MESS_TAB                      =
          EXCEPTIONS
            call_transaction_denied       = 1
            tcode_invalid                 = 2
            OTHERS                        = 3.
        IF sy-subrc &amp;lt;&amp;gt; 0.
*          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.


      WHEN 'ERNAM'.
*        SET PARAMETER ID 'USR' FIELD ls_knb1-ernam.
*        NOTE: no parameter id available, yet simply show the priciple

        CALL TRANSACTION 'SU01' AND SKIP FIRST SCREEN.

      WHEN OTHERS.
*       do nothing
    ENDCASE.




***   Set active cell to field BUKRS otherwise the focus is still on
***   field KUNNR which will always raise event HOTSPOT_CLICK
**    ls_col_id-fieldname = 'BUKRS'.
**    CALL METHOD go_grid1-&amp;gt;set_current_cell_via_id
**      EXPORTING
**        is_row_id    = e_row_id
**        is_column_id = ls_col_id.



  ENDMETHOD.                    "handle_hotspot_click


ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION






START-OF-SELECTION.

  SELECT        * FROM  vbak INTO TABLE gt_vbak UP TO 100 ROWS.


* Create docking container
  CREATE OBJECT go_docking
    EXPORTING
      parent                      = cl_gui_container=&amp;gt;screen0
      ratio                       = 90
    EXCEPTIONS
      OTHERS                      = 6.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Create splitter container
  CREATE OBJECT go_splitter
    EXPORTING
      parent            = go_docking
      rows              = 2
      columns           = 1
*      NO_AUTODEF_PROGID_DYNNR =
*      NAME              =
    EXCEPTIONS
      cntl_error        = 1
      cntl_system_error = 2
      OTHERS            = 3.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

* Get cell container
  CALL METHOD go_splitter-&amp;gt;get_container
    EXPORTING
      row       = 1
      column    = 1
    RECEIVING
      container = go_cell_top.
  CALL METHOD go_splitter-&amp;gt;get_container
    EXPORTING
      row       = 2
      column    = 1
    RECEIVING
      container = go_cell_bottom.

* Create ALV grids
  CREATE OBJECT go_grid1
    EXPORTING
      i_parent          = go_cell_top
    EXCEPTIONS
      OTHERS            = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Set event handler
  SET HANDLER:
    lcl_eventhandler=&amp;gt;handle_double_click  FOR go_grid1,
    lcl_eventhandler=&amp;gt;handle_hotspot_click FOR go_grid1.


  CREATE OBJECT go_grid2
    EXPORTING
      i_parent          = go_cell_bottom
    EXCEPTIONS
      OTHERS            = 5.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Display data
  gs_layout-grid_title = 'Sales Orders'.
  CALL METHOD go_grid1-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'VBAK'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = gt_vbak
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  PERFORM modify_fieldcatalog.


  gs_layout-grid_title = 'Sales Order Items'.
  CALL METHOD go_grid2-&amp;gt;set_table_for_first_display
    EXPORTING
      i_structure_name = 'VBAP'
      is_layout        = gs_layout
    CHANGING
      it_outtab        = gt_vbap  " empty !!!
    EXCEPTIONS
      OTHERS           = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* Link the docking container to the target dynpro
  CALL METHOD go_docking-&amp;gt;link
    EXPORTING
      repid                       = syst-repid
      dynnr                       = '0100'
*      CONTAINER                   =
    EXCEPTIONS
      OTHERS                      = 4.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


* NOTE: dynpro does not contain any elements
  CALL SCREEN '0100'.
* Flow logic of dynpro (does not contain any dynpro elements):
*
*PROCESS BEFORE OUTPUT.
*  MODULE STATUS_0100.
**
*PROCESS AFTER INPUT.
*  MODULE USER_COMMAND_0100.



END-OF-SELECTION.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS_0100'.  " contains push button "DETAIL"
*  SET TITLEBAR 'xxx'.


* Refresh display of detail ALV list
  CALL METHOD go_grid2-&amp;gt;refresh_table_display
*    EXPORTING
*      IS_STABLE      =
*      I_SOFT_REFRESH =
    EXCEPTIONS
      OTHERS         = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
*   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


ENDMODULE.                 " STATUS_0100  OUTPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0100  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  CASE gd_okcode.
    WHEN 'BACK' OR
         'END'  OR
         'CANC'.
      SET SCREEN 0. LEAVE SCREEN.

*   User has pushed button "Display Details"
    WHEN 'DETAIL'.
      PERFORM entry_show_details.

    WHEN OTHERS.
  ENDCASE.

  CLEAR: gd_okcode.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  ENTRY_SHOW_DETAILS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM entry_show_details .
* define local data
  DATA:
    ld_row      TYPE i,
    ls_vbak     TYPE vbak.

  CALL METHOD go_grid1-&amp;gt;get_current_cell
    IMPORTING
      e_row = ld_row.

  READ TABLE gt_vbak INTO ls_vbak INDEX ld_row.
  CHECK ( syst-subrc = 0 ).

  SELECT        * FROM  vbap INTO TABLE gt_vbap
         WHERE  vbeln = ls_vbak-vbeln.



ENDFORM.                    " ENTRY_SHOW_DETAILS
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  MODIFY_FIELDCATALOG
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM modify_fieldcatalog .
* define local data
  DATA:
    ls_fcat    TYPE lvc_s_fcat,
    lt_fcat    TYPE lvc_t_fcat.

  CALL METHOD go_grid1-&amp;gt;get_frontend_fieldcatalog
    IMPORTING
      et_fieldcatalog = lt_fcat.

  ls_fcat-hotspot = 'X'.
  MODIFY lt_fcat FROM ls_fcat
      TRANSPORTING hotspot
    WHERE ( fieldname = 'VBELN' ).

  go_grid1-&amp;gt;set_frontend_fieldcatalog( lt_fcat ).
  go_grid1-&amp;gt;refresh_table_display( ).



ENDFORM.                    " MODIFY_FIELDCATALOG&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 May 2007 03:04:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/interactive-reports/m-p/2241711#M483382</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-05-18T03:04:45Z</dc:date>
    </item>
  </channel>
</rss>

