天天看點

[abap] [sample] ALV with subtotal

ALV Grid List with sub-totals

REPORT z_demo_alv_sort.

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

* This program lists orders (VBAK) with sort and sub-total for        *

* 'sold-to-party' (KUNNR) and 'Sales organization' (VKORG)            *

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

TABLES : vbak.

TYPE-POOLS: slis.                      " ALV Global types

SELECT-OPTIONS :

  s_vkorg FOR vbak-vkorg,              " Sales organization

  s_kunnr FOR vbak-kunnr,              " Sold-to party

  s_vbeln FOR vbak-vbeln.              " Sales document

SELECTION-SCREEN :

  SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.

PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.

SELECTION-SCREEN END OF LINE.

DATA:

  BEGIN OF gt_vbak OCCURS 0,

    vkorg LIKE vbak-vkorg,             " Sales organization

    kunnr LIKE vbak-kunnr,             " Sold-to party

    vbeln LIKE vbak-vbeln,             " Sales document

    netwr LIKE vbak-netwr,             " Net Value of the Sales Order

    waerk LIKE vbak-waerk,             " Document currency

  END OF gt_vbak.

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

INITIALIZATION.

  v_1 = 'Maximum of records to read'.

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

START-OF-SELECTION.

  PERFORM f_read_data.

  PERFORM f_display_data.

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

*      Form  f_read_data

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

FORM f_read_data.

  SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_vbak

           FROM vbak

             UP TO p_max ROWS

          WHERE kunnr IN s_kunnr

            AND vbeln IN s_vbeln

            AND vkorg IN s_vkorg.

ENDFORM.                               " F_READ_DATA

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

*      Form  f_display_data

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

FORM f_display_data.

  DEFINE m_fieldcat.

    add 1 to ls_fieldcat-col_pos.

    ls_fieldcat-fieldname   = &1.

    ls_fieldcat-ref_tabname = 'VBAK'.

    ls_fieldcat-do_sum      = &2.

    ls_fieldcat-cfieldname  = &3.

    append ls_fieldcat to lt_fieldcat.

  END-OF-DEFINITION.

  DEFINE m_sort.

    add 1 to ls_sort-spos.

    ls_sort-fieldname = &1.

    ls_sort-up        = 'X'.

    ls_sort-subtot    = &2.

    append ls_sort to lt_sort.

  END-OF-DEFINITION.

  DATA:

    ls_fieldcat TYPE slis_fieldcat_alv,

    lt_fieldcat TYPE slis_t_fieldcat_alv,

    lt_sort     TYPE slis_t_sortinfo_alv,

    ls_sort     TYPE slis_sortinfo_alv,

    ls_layout   TYPE slis_layout_alv.

  m_fieldcat 'VKORG' ''  ''.

  m_fieldcat 'KUNNR' ''  ''.

  m_fieldcat 'VBELN' ''  ''.

  m_fieldcat 'NETWR' 'X' 'WAERK'.

  m_fieldcat 'WAERK' ''  ''.

  m_sort 'VKORG' 'X'.                  " Sort by vkorg and subtotal

  m_sort 'KUNNR' 'X'.                  " Sort by kunnr and subtotal

  m_sort 'VBELN' ''.                   " Sort by vbeln

  ls_layout-cell_merge = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

       EXPORTING

            is_layout   = ls_layout

            it_fieldcat = lt_fieldcat

            it_sort     = lt_sort

       TABLES

            t_outtab    = gt_vbak.

ENDFORM.                               " F_DISPLAY_DATA

***************** END OF PROGRAM Z_DEMO_ALV_SORT **********************

上一篇: ABAP中的校驗
下一篇: ABAP 中的宏

繼續閱讀