abap alv simple cell sum

&---------------------------------------------------------------------
*& Report Z_ALV_TEST_004
*&
&---------------------------------------------------------------------
*&
*&
&---------------------------------------------------------------------

REPORT Z_ALV_TEST_004.
DATA:BEGIN OF it1 OCCURS 5,
matnr LIKE mara-matnr,
psmng LIKE afpo-psmng,
END OF it1 .

TYPE-POOLS: slis.
DATA: l_events TYPE slis_t_event,
gt_list_top_of_page TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv,
fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
eventcat TYPE slis_t_event WITH HEADER LINE,
it_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE,
prg LIKE sy-repid.

DATA: l_variant TYPE TABLE OF disvariant WITH HEADER LINE
.
START-OF-SELECTION.
CLEAR it1.
it1-matnr = ‘AA’.
it1-psmng = 10.
APPEND it1.
CLEAR it1.

it1-matnr = ‘AA’.
it1-psmng = 20.
APPEND it1.
CLEAR it1.

it1-matnr = ‘BB’.
it1-psmng = 30.
APPEND it1.
CLEAR it1.

it1-matnr = ‘BB’.
it1-psmng = 40.
APPEND it1.
CLEAR it1.

it1-matnr = ‘BB’.
it1-psmng = 50.
APPEND it1.
CLEAR it1.

it1-matnr = ‘CC’.
it1-psmng = 80.
APPEND it1.

END-OF-SELECTION.
PERFORM prepare_list_val.
PERFORM display_val.
&---------------------------------------------------------------------
*& Form PREPARE_LIST_VAL
&---------------------------------------------------------------------

  • text
    ----------------------------------------------------------------------
    FORM prepare_list_val.
    prg = sy-repid.
    l_variant-report = sy-repid.
    PERFORM eventtab_build CHANGING l_events.
    PERFORM comment_build CHANGING gt_list_top_of_page.
    PERFORM set_layout.
    ENDFORM. " PREPARE_LIST_VAL
    &---------------------------------------------------------------------
    *& Form EVENTTAB_BUILD
    &---------------------------------------------------------------------
  • text
    ----------------------------------------------------------------------
    FORM eventtab_build CHANGING p_events TYPE slis_t_event.

ENDFORM. " EVENTTAB_BUILD
---------------------------------------------------------------------

  • FORM COMMENT_BUILD *
    ---------------------------------------------------------------------
  • –> GT_TOP_OF_PAGE *
    ---------------------------------------------------------------------
    FORM comment_build CHANGING gt_top_of_page TYPE slis_t_listheader.

ENDFORM. " COMMENT_BUILD
&---------------------------------------------------------------------
*& Form SET_LAYOUT
&---------------------------------------------------------------------

  • text
    ----------------------------------------------------------------------
    FORM set_layout.
    gs_layout-zebra = ‘X’.
    gs_layout-f2code = ‘&ETA’.
    gs_layout-detail_popup = ‘X’.
    gs_layout-get_selinfos = ‘X’.
    ENDFORM. " SET_LAYOUT
    &---------------------------------------------------------------------
    *& Form DISPLAY_VAL
    &---------------------------------------------------------------------

  • text
    ----------------------------------------------------------------------
    FORM display_val.
    PERFORM get_fieldcat.
    PERFORM get_eventcat.
    PERFORM get_it_sort.
    PERFORM start_list_val.
    ENDFORM. " DISPLAY_VAL
    &---------------------------------------------------------------------
    *& Form GET_FIELDCAT
    &---------------------------------------------------------------------

  • text
    ----------------------------------------------------------------------
    FORM get_fieldcat.

    CALL FUNCTION ‘REUSE_ALV_FIELDCATALOG_MERGE’
    EXPORTING
    i_program_name = prg
    i_internal_tabname = ‘IT1’
    i_inclname = prg
    CHANGING
    ct_fieldcat = fieldcat[]
    EXCEPTIONS
    inconsistent_interface = 1
    program_error = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    WRITE: 'SY-SUBRC: ', sy-subrc, ‘REUSE_ALV_FIELDCATALOG_MERGE’.
    ENDIF.

    LOOP AT fieldcat.
    CASE fieldcat-fieldname.
    WHEN ‘MATNR’.
    fieldcat-tabname = ‘IT1’.
    fieldcat-key = ‘X’. " Key Column
    fieldcat-col_pos = 1. " Position on screen
    fieldcat-hotspot = ‘’. " Hotspot column
    fieldcat-seltext_s = ‘Name’.
    fieldcat-ddictxt = ‘S’.
    fieldcat-outputlen = 18.
    WHEN ‘PSMNG’.
    fieldcat-tabname = ‘IT1’.
    fieldcat-key = ’ '. " Key Column
    fieldcat-col_pos = 2. " Position on screen
    fieldcat-hotspot = ’ '. " Hotspot column
    fieldcat-seltext_s = ‘Money’.
    fieldcat-ddictxt = ‘S’.
    fieldcat-outputlen = 15.
    fieldcat-no_zero = ‘X’.
    fieldcat-do_sum = ‘X’. "SUM UPON DISPLAY
    ENDCASE.
    MODIFY fieldcat.
    ENDLOOP.
    ENDFORM. " GET_FIELDCAT
    &---------------------------------------------------------------------
    *& Form GET_EVENTCAT
    &---------------------------------------------------------------------

  • text
    ----------------------------------------------------------------------
    FORM get_eventcat.

ENDFORM. " GET_EVENTCAT
&---------------------------------------------------------------------
*& Form GET_IT_SORT
&---------------------------------------------------------------------

  • text
    ----------------------------------------------------------------------
    FORM get_it_sort.

    CLEAR it_sort.
    it_sort-fieldname = ‘MATNR’.
    it_sort-spos = 1.
    it_sort-up = ‘X’.
    it_sort-subtot = ‘X’.
    APPEND it_sort.

  • CLEAR IT_SORT.

  • IT_SORT-FIELDNAME = ‘AUFNR’.

  • IT_SORT-SPOS = 2.

  • IT_SORT-UP = ‘X’.

  • IT_SORT-SUBTOT = ‘’.

  • APPEND IT_SORT.

ENDFORM. " GET_IT_SORT
&---------------------------------------------------------------------
*& Form START_LIST_VAL
&---------------------------------------------------------------------

  • text
    ----------------------------------------------------------------------
    FORM start_list_val.
    CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
    EXPORTING
    i_callback_program = prg
    is_layout = gs_layout
    is_variant = l_variant
    it_fieldcat = fieldcat[]
    it_sort = it_sort[]
    i_save = ‘A’
    it_events = eventcat[]
    TABLES
    t_outtab = it1
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.

ENDFORM. " START_LIST_VAL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值