导语:最近开发程序的时候,用户方有需求为特定商品以月维度看每天的销售明细,然后还要在每个月最后一单下面显示出月汇总,这就属于分组汇总的意思了。标准的合计按钮只能合计一列的所有,下面说一下具体实现方式。
我一般喜欢用OOALV来做东西,下面我举例销售订单按单汇总,展示出每单有多少个数量。
关键要素:IT_SORT ,IT_FIELDCATALOG.
CALL METHOD g_grid->set_table_for_first_display
EXPORTING
is_layout = gs_layout
it_toolbar_excluding = gt_exclude
is_variant = gs_variant
i_save = 'A'
CHANGING
it_outtab = gt_out[]
it_fieldcatalog = gt_fieldcat[] "字段属性
it_sort = gt_sort[]. "汇总排序
CALL METHOD g_grid->set_ready_for_input
EXPORTING
i_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_fieldcat
ENDCASE.
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。