导语:最近开发程序的时候,用户方有需求为特定商品以月维度看每天的销售明细,然后还要在每个月最后一单下面显示出月汇总,这就属于分组汇总的意思了。标准的合计按钮只能合计一列的所有,下面说一下具体实现方式。
我一般喜欢用OOALV来做东西,下面我举例销售订单按单汇总,展示出每单有多少个数量。
关键要素:IT_SORT ,IT_FIELDCATALOG.
CALL METHOD g_grid->set_table_for_first_displayEXPORTINGis_layout = gs_layoutit_toolbar_excluding = gt_excludeis_variant = gs_varianti_save = 'A'CHANGINGit_outtab = gt_out[]it_fieldcatalog = gt_fieldcat[] "字段属性it_sort = gt_sort[]. "汇总排序CALL METHOD g_grid->set_ready_for_inputEXPORTINGi_ready_for_input = 1.
汇总排序,这里可以添加多个维度,由大到小按需添加就好了,我这里只以单号为分组维度
CLEAR gs_sort.gs_sort-fieldname = 'EBELN'.gs_sort-spos = '1'.gs_sort-up = 'X'.gs_sort-subtot = 'X'.APPEND gs_sort TO gt_sort.
字段属性中设置DO_SUM
DEFINE add_fieldcat.CLEAR gs_fieldcat.gs_fieldcat-fieldname = &1.gs_fieldcat-reptext = &2.gs_fieldcat-edit = &3.gs_fieldcat-col_pos = &4.gs_fieldcat-just = &5.gs_fieldcat-outputlen = &6.gs_fieldcat-fix_column = &7.CASE gs_fieldcat-fieldname .WHEN 'MENGE'.gs_fieldcat-no_zero = 'X'. "为零不显示gs_fieldcat-do_sum = 'X'. "对该字段进行汇总
* gs_fieldcatENDCASE.APPEND gs_fieldcat TO gt_fieldcat.END-OF-DEFINITION.CLEAR gt_fieldcat.REFRESH gt_fieldcat.add_fieldcat 'EBELN' '单号' '' '' '' '' ''.add_fieldcat 'EBELP' '行号' '' '' '' '' ''.add_fieldcat 'MATNR' '物料编码' '' '' '' '' ''.add_fieldcat 'MENGE' '数量' '' '' '' '' ''.
效果展示
多维度汇总效果展示:
如果不希望用户再进行汇总操作,或者不需要最后一个大的合计,可以在layout中设置合计属性
"不要合计gs_layout-no_totline = 'X'.
作者:小飞猪猪猪猪猪猪猪–CSDN