ALV分类汇总

REPORT ztest1.
TABLES:mara,mbew.
TYPE
-POOLS:slis.
TYPES:BEGIN OF t_itab,
matnr LIKE mara
-matnr,
ersda LIKE mara
-ersda,
matkl LIKE mara
-matkl,
lbkum LIKE mbew
-lbkum,
salk3 LIKE mbew
-salk3,
END OF t_itab.
DATA:itab TYPE TABLE OF t_itab WITH HEADER LINE.

SELECTION
-SCREEN BEGIN OF BLOCK blok WITH FRAME TITLE txt1.
SELECT
-OPTIONS:matnr FOR mara-matnr.
SELECTION
-SCREEN END OF BLOCK blok.


INITIALIZATION.
txt1
= '请输入选择条件'.

START
-OF-SELECTION.

END
-OF-SELECTION.
PERFORM getdata.
PERFORM disalv.
*&---------------------------------------------------------------------*
*& Form getdata
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM getdata .
SELECT
mara
~matnr
mara
~ersda
mara
~matkl
mbew
~lbkum
mbew
~salk3
INTO TABLE itab
FROM mara
JOIN mbew ON ( mara
~matnr = mbew~matnr AND mbew~bwkey = '1000' )
WHERE mara
~matnr IN matnr
ORDER BY mara
~matnr
.
ENDFORM.
" getdata
*&---------------------------------------------------------------------*
*& Form disalv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM disalv .
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
is_variant LIKE disvariant,
it_events TYPE slis_t_event,
is_layout TYPE slis_layout_alv,
"ALV的格式
i_list_comments TYPE slis_t_listheader,
i_callback_program TYPE sy
-repid,
title TYPE lvc_title,
it_sort TYPE slis_t_sortinfo_alv
.
PERFORM fieldcat_init USING it_fieldcat.
"输出列表控件表头
* PERFORM layout_init USING is_layout.
* PERFORM eventtab_build USING it_events.
PERFORM e02_layout_sort_build CHANGING it_sort.
i_callback_program
= sy-repid.
title
= '测试'.

CALL FUNCTION
'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program
= i_callback_program
i_grid_title
= title
is_layout
= is_layout
it_fieldcat
= it_fieldcat
it_events
= it_events
it_sort
= it_sort[]
TABLES
t_outtab
= itab
EXCEPTIONS
program_error
= 1
OTHERS
= 2.
IF sy
-subrc <> 0.
ENDIF.

ENDFORM.
" disalv
*&---------------------------------------------------------------------*
*& Form fieldcat_init
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_FIELDCAT text
*----------------------------------------------------------------------*
FORM fieldcat_init USING it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.

ls_fieldcat
-fieldname = 'MATNR'.
ls_fieldcat
-reptext_ddic = '物料号'.
ls_fieldcat
-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.

ls_fieldcat
-fieldname = 'ERSDA'.
ls_fieldcat
-reptext_ddic = '创建日期'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.

ls_fieldcat
-fieldname = 'MATKL'.
ls_fieldcat
-reptext_ddic = '物料组'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.

ls_fieldcat
-fieldname = 'LBKUM'.
ls_fieldcat
-reptext_ddic = '总评估的库存'.
ls_fieldcat
-do_sum = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.

ls_fieldcat
-fieldname = 'SALK3'.
ls_fieldcat
-reptext_ddic = '估价的总库存价值'.
ls_fieldcat
-do_sum = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ENDFORM.
" fieldcat_init
*&---------------------------------------------------------------------*
*& Form e02_layout_sort_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_IT_SORT text
*----------------------------------------------------------------------*
FORM e02_layout_sort_build CHANGING lt_sort TYPE slis_t_sortinfo_alv.
DATA ls_sort TYPE slis_sortinfo_alv.
*
CLEAR ls_sort.
ls_sort
-fieldname = 'ERSDA'. "#EC *
ls_sort-spos = 1.
ls_sort
-up = 'X'.
ls_sort
-subtot = 'X'.
APPEND ls_sort TO lt_sort.

CLEAR ls_sort.
ls_sort
-fieldname = 'MATKL'. "#EC *
ls_sort-spos = 1.
ls_sort
-up = 'X'.
ls_sort
-subtot = 'X'.
APPEND ls_sort TO lt_sort.
ENDFORM.
" e02_layout_sort_build[@more@]
请使用浏览器的分享功能分享到微信等