SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

ALV Demo of FM REUSE_ALV_HIERSEQ_LIST_DISPLAY



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ALV Grid / ALV Tree / ALV List
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1639

PostPosted: Sat Jan 26, 2008 5:13 pm    Post subject: ALV Demo of FM REUSE_ALV_HIERSEQ_LIST_DISPLAY Reply with quote

Code:
REPORT z_alv_hierseq_list.
*---------------------------------------------------------------------*
* Program with FM REUSE_ALV_HIERSEQ_LIST_DISPLAY                      *
*---------------------------------------------------------------------*
* Author : Michel PIOUD - Updated 21 Dec 2007                         *
* HomePage : http://www.geocities.com/mpioud                          *
*---------------------------------------------------------------------*
TYPE-POOLS: slis.                    " ALV Global types
*---------------------------------------------------------------------*
CONSTANTS :
  c_x VALUE 'X',
  c_gt_vbap TYPE slis_tabname VALUE 'GT_VBAP',
  c_gt_vbak TYPE slis_tabname VALUE 'GT_VBAK'.
*---------------------------------------------------------------------*
SELECTION-SCREEN :
  SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.    "#EC NEEDED
PARAMETERS p_max(02) TYPE n DEFAULT '10' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN :
  SKIP, BEGIN OF LINE,COMMENT 5(27) v_2 FOR FIELD p_expand. "#EC NEEDED
PARAMETERS p_expand AS CHECKBOX DEFAULT c_x.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------------------*
TYPES :
* 1st Table
  BEGIN OF ty_vbak,
    vbeln TYPE vbak-vbeln,             " Sales document
    kunnr TYPE vbak-kunnr,             " Sold-to party
    netwr TYPE vbak-netwr,             " Net Value of the Sales Order
    erdat TYPE vbak-erdat,             " Creation date
    waerk TYPE vbak-waerk,             " SD document currency
    expand TYPE xfeld,
  END OF ty_vbak,

* 2nd Table
  BEGIN OF ty_vbap,
    vbeln TYPE vbap-vbeln,             " Sales document
    posnr TYPE vbap-posnr,             " Sales document
    matnr TYPE vbap-matnr,             " Material number
    arktx TYPE vbap-arktx,             " Material description
    netwr TYPE vbap-netwr,             " Net Value of the Sales Order
    waerk TYPE vbap-waerk,             " SD document currency
  END OF ty_vbap.

*---------------------------------------------------------------------*
DATA :
* 1st Table
  gt_vbak TYPE TABLE OF ty_vbak,
* 2nd Table
  gt_vbap TYPE TABLE OF ty_vbap.

*---------------------------------------------------------------------*
INITIALIZATION.

  v_1 = 'Maximum of records to read'.
  v_2 = 'With ''EXPAND'' field'.

*---------------------------------------------------------------------*
START-OF-SELECTION.

* Read Sales Document: Header Data
  SELECT vbeln kunnr netwr waerk erdat
    FROM vbak
      UP TO p_max ROWS
    INTO CORRESPONDING FIELDS OF TABLE gt_vbak.

  IF gt_vbak[] IS NOT INITIAL.
*   Read Sales Document: Item Data
    SELECT vbeln posnr matnr arktx netwr waerk
      FROM vbap
      INTO CORRESPONDING FIELDS OF TABLE gt_vbap
       FOR ALL ENTRIES IN gt_vbak
     WHERE vbeln = gt_vbak-vbeln.
  ENDIF.

*---------------------------------------------------------------------*
END-OF-SELECTION.

  PERFORM f_display.

*---------------------------------------------------------------------*
*       Form  F_DISPLAY
*---------------------------------------------------------------------*
FORM f_display.

* Macro definition
  DEFINE m_fieldcat.
    ls_fieldcat-tabname = &1.
    ls_fieldcat-fieldname = &2.
    ls_fieldcat-ref_tabname = &3.
    ls_fieldcat-cfieldname = &4.       " Field with currency unit
    append ls_fieldcat to lt_fieldcat.
  END-OF-DEFINITION.

  DEFINE m_sort.
    ls_sort-tabname = &1.
    ls_sort-fieldname = &2.
    ls_sort-up        = c_x.
    append ls_sort to lt_sort.
  END-OF-DEFINITION.

  DATA:
    ls_layout   TYPE slis_layout_alv,
    ls_keyinfo  TYPE slis_keyinfo_alv,
    ls_sort     TYPE slis_sortinfo_alv,
    lt_sort     TYPE slis_t_sortinfo_alv," Sort table
    ls_fieldcat TYPE slis_fieldcat_alv,
    lt_fieldcat TYPE slis_t_fieldcat_alv." Field catalog

  ls_layout-group_change_edit = c_x.
  ls_layout-colwidth_optimize = c_x.
  ls_layout-zebra             = c_x.
  ls_layout-detail_popup      = c_x.
  ls_layout-get_selinfos      = c_x.
  IF p_expand = c_x.
    ls_layout-expand_fieldname  = 'EXPAND'.
  ENDIF.

* Build field catalog and sort table
  m_fieldcat c_gt_vbak 'VBELN' 'VBAK' ''.
  m_fieldcat c_gt_vbak 'KUNNR' 'VBAK' ''.
  m_fieldcat c_gt_vbak 'NETWR' 'VBAK' 'WAERK'.
  m_fieldcat c_gt_vbak 'WAERK' 'VBAK' ''.
  m_fieldcat c_gt_vbak 'ERDAT' 'VBAK' ''.

  m_fieldcat c_gt_vbap 'POSNR' 'VBAP' ''.
  m_fieldcat c_gt_vbap 'MATNR' 'VBAP' ''.
  m_fieldcat c_gt_vbap 'ARKTX' 'VBAP' ''.
  m_fieldcat c_gt_vbap 'NETWR' 'VBAP' 'WAERK'.
  m_fieldcat c_gt_vbap 'WAERK' 'VBAP' ''.

  m_sort c_gt_vbak 'KUNNR'.
  m_sort c_gt_vbap 'NETWR'.

  ls_keyinfo-header01 = 'VBELN'.
  ls_keyinfo-item01 = 'VBELN'.
  ls_keyinfo-item02 = 'POSNR'.

* Dipslay Hierarchical list
  CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
      i_callback_program      = sy-cprog
      i_callback_user_command = 'USER_COMMAND'
      is_layout               = ls_layout
      it_fieldcat             = lt_fieldcat
      it_sort                 = lt_sort
      i_tabname_header        = c_gt_vbak
      i_tabname_item          = c_gt_vbap
      is_keyinfo              = ls_keyinfo
      i_save                  = 'A'
    TABLES
      t_outtab_header         = gt_vbak
      t_outtab_item           = gt_vbap
    EXCEPTIONS
      program_error           = 1
      OTHERS                  = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                               " F_LIST_DISPLAY
*---------------------------------------------------------------------*
*       Form USER_COMMAND                                             *
*---------------------------------------------------------------------*
FORM user_command USING i_ucomm     TYPE sy-ucomm
                        is_selfield TYPE slis_selfield.     "#EC CALLED

  DATA ls_vbak TYPE ty_vbak.

  CASE i_ucomm.
    WHEN '&IC1'.                       " Pick
      CASE is_selfield-tabname.
        WHEN c_gt_vbap.
        WHEN c_gt_vbak.
          READ TABLE gt_vbak INDEX is_selfield-tabindex INTO ls_vbak.
          IF sy-subrc EQ 0.
*           Sales order number
            SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.
*           Display Sales Order
            CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
          ENDIF.
      ENDCASE.
  ENDCASE.

ENDFORM.                               " USER_COMMAND
****************** END OF PROGRAM Z_ALV_HIERSEQ_LIST ******************
 
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ALV Grid / ALV Tree / ALV List All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.