ALV中不同单位统计的问题

ALV 中不同 统计 问题。[@more@]

*&---------------------------------------------------------------------*

*& Report ZALV_SUM_DIFFERENT_UNIT

*&

*&---------------------------------------------------------------------*

REPORT ZALV_SUM_DIFFERENT_UNIT.

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

* TYPE-POOLS

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

TYPE-POOLS: SLIS.

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

* TYPES

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

TYPES: BEGIN OF TYP_DATA,

KEY(10),

NUM TYPE I,

UNIT TYPE LVC_QUAN,

END OF TYP_DATA.

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

* DATA

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

DATA GT_OUTTAB TYPE TABLE OF TYP_DATA WITH HEADER LINE.

DATA:

* field catalog

GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

* information for sort and subtotals

GT_SORT TYPE SLIS_T_SORTINFO_ALV,

* variant

GH_VARIANT TYPE DISVARIANT.

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

* INITIALIZATION

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

INITIALIZATION.

* For Display Variant

GH_VARIANT-REPORT = SY-REPID.

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

* START-OF-SELECTION

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

START-OF-SELECTION.

PERFORM FILL_OUTTAB.

PERFORM LAYOUT_SORT_BUILD.

PERFORM SET_FCAT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = GH_VARIANT-REPORT

IT_FIELDCAT = GT_FIELDCAT[]

IT_SORT = GT_SORT[]

IS_VARIANT = GH_VARIANT

TABLES

T_OUTTAB = GT_OUTTAB[]

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

*&---------------------------------------------------------------------*

*& Form SET_FCAT

*&---------------------------------------------------------------------*

* text

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

FORM SET_FCAT.

DATA LH_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

* Key

CLEAR LH_FIELDCAT.

LH_FIELDCAT-FIELDNAME = 'KEY'.

LH_FIELDCAT-TABNAME = 'GT_OUTTAB'.

LH_FIELDCAT-REPTEXT_DDIC = 'Key'.

LH_FIELDCAT-OUTPUTLEN = 10.

LH_FIELDCAT-NO_SUM = 'X'.

LH_FIELDCAT-KEY = 'X'.

APPEND LH_FIELDCAT TO GT_FIELDCAT.

* Num

CLEAR LH_FIELDCAT.

LH_FIELDCAT-FIELDNAME = 'NUM'.

LH_FIELDCAT-TABNAME = 'GT_OUTTAB'.

LH_FIELDCAT-REPTEXT_DDIC = 'Field Num'.

* QFIELDNAME - unit measure field

LH_FIELDCAT-QFIELDNAME = 'UNIT'.

LH_FIELDCAT-OUTPUTLEN = 10.

LH_FIELDCAT-DO_SUM = 'X'.

APPEND LH_FIELDCAT TO GT_FIELDCAT.

* UNIT

CLEAR LH_FIELDCAT.

LH_FIELDCAT-FIELDNAME = 'UNIT'.

LH_FIELDCAT-TABNAME = 'GT_OUTTAB'.

LH_FIELDCAT-REPTEXT_DDIC = 'Field Unit'.

LH_FIELDCAT-OUTPUTLEN = 10.

LH_FIELDCAT-DO_SUM = 'X'.

APPEND LH_FIELDCAT TO GT_FIELDCAT.

ENDFORM. "SET_FCAT

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

* FORM LAYOUT_SORT_BUILD

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

* Sorting

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

FORM LAYOUT_SORT_BUILD.

DATA LH_SORT TYPE SLIS_SORTINFO_ALV.

* Key

LH_SORT-FIELDNAME = 'KEY'.

LH_SORT-SPOS = 1.

LH_SORT-UP = 'X'.

LH_SORT-SUBTOT = 'X'.

APPEND LH_SORT TO GT_SORT.

ENDFORM. " LAYOUT_SORT_BUILD

*&---------------------------------------------------------------------*

*& Form FILL_OUTTAB

*&---------------------------------------------------------------------*

* get data of output table

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

FORM FILL_OUTTAB.

* group 1

GT_OUTTAB-KEY = 'Group 1'.

GT_OUTTAB-NUM = 10.

GT_OUTTAB-UNIT = 'PCS'.

APPEND GT_OUTTAB.

GT_OUTTAB-KEY = 'Group 1'.

GT_OUTTAB-NUM = 10.

GT_OUTTAB-UNIT = 'TON'.

APPEND GT_OUTTAB.

GT_OUTTAB-KEY = 'Group 1'.

GT_OUTTAB-NUM = 20.

GT_OUTTAB-UNIT = 'PCS'.

APPEND GT_OUTTAB.

* group 2

GT_OUTTAB-KEY = 'Group 2'.

GT_OUTTAB-NUM = 20.

GT_OUTTAB-UNIT = 'TON'.

APPEND GT_OUTTAB.

GT_OUTTAB-KEY = 'Group 2'.

GT_OUTTAB-NUM = 40.

GT_OUTTAB-UNIT = 'PCS'.

APPEND GT_OUTTAB.

GT_OUTTAB-KEY = 'Group 2'.

GT_OUTTAB-NUM = 10.

GT_OUTTAB-UNIT = 'TON'.

APPEND GT_OUTTAB.

ENDFORM. " FILL_OUTTAB

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8214011/viewspace-924525/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8214011/viewspace-924525/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值