为什么在我的ALV报告中,subtotal_text事件不起作用?

2020-08-14 03:17发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在使用以下代码显示ALV和小...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用以下代码显示ALV和小计

数据:开始于IT_OUTPUT_ALL次发生0,
         ACCT类型FAGLFLEXT-rAcct,
         ANAM TYPE SKAT-txt20,
         项目类型ZTFI03-zfiitem
         SITEM TYPE ZTFI03-zfisuit,
         文本类型ZTFI03-ZFITEXT,
         ZFISIGN类型ZTFI03-ZFISIGN,
         HSL_ALL TYPE FAGLFLEXT-HSL01。
 数据:GT_EVENTS类型SLIS_T_EVENT,
       LS_T_EVENT的LS_EVENT类型行。
 数据:wa_sort TYPE slis_sortinfo_alv,
       i_sort TYPE slis_t_sortinfo_alv。

 FORM sub_populate_sort。
     wa_sort-spos ='01'。
     wa_sort-fieldname ='ITEM'。
     wa_sort-up ='X'。
     wa_sort-subtot ='X'。
     APPEND wa_sort到i_sort。
     清除wa_sort。
 ENDFORM。

 FORM subtotal_text更改
                p_total TYPE任意
                p_subtot_text类型slis_subtot_text。
 *物料级别小计
   IF p_subtot_text-criteria ='ITEM'。
     p_subtot_text-display_text_for_subtotal
     ='总计材料级别'。
   万一。
 ENDFORM。

 表格FRM_SET_FIELDCAT。
   数据:LV_FIELDNAME(7)C型,
         LV_LTX(20)C型。
   FILLFIEDCAT'ACCT''Acct NO''''。
   FILLFIEDCAT'ANAM''帐户名称'''''。
   FILLFIEDCAT'项目''项目否''''。
   LS_FIELDCAT-FIELDNAME ='文字'。
   LS_FIELDCAT-SELTEXT_L ='ITEM名称'。
   LS_FIELDCAT-NO_ZERO =''。
   LS_FIELDCAT-OUTPUTLEN =''。
   LS_FIELDCAT-no_out ='X'。
   将LS_FIELDCAT附加到GT_FIELDCAT。
   清除LS_FIELDCAT。
   LS_FIELDCAT-FIELDNAME ='HSL_ALL'。
   LS_FIELDCAT-SELTEXT_L ='CURRENT YEAR CUMULATIVE'。
   LS_FIELDCAT-NO_ZERO =''。
   LS_FIELDCAT-OUTPUTLEN =''。
   LS_FIELDCAT-do_sum ='X'。
   将LS_FIELDCAT附加到GT_FIELDCAT。
   清除LS_FIELDCAT。
 ENDFORM。

 表格DISPLAY_ALV。
   将" SUBTOTAL_TEXT"移动到LS_EVENT-NAME。
   将" SUBTOTAL_TEXT"移动到LS_EVENT-FORM。
   将LS_EVENT附加到GT_EVENTS。
    进行FRM_SET_FIELDCAT。
   执行sub_populate_sort。
   按项目排序IT_OUTPUT_ALL。
   调用功能" REUSE_ALV_GRID_DISPLAY"的状态列表
     出口
       I_CALLBACK_PROGRAM = SY-REPID
       I_CALLBACK_PF_STATUS_SET ='PF_STATUS_SET'
       I_CALLBACK_USER_COMMAND ='USER_COMMAND'
       IS_LAYOUT = GS_LAYOUT
       IT_FIELDCAT = GT_FIELDCAT
       IT_EVENTS = GT_EVENTS
       IT_SORT = i_sort
       I_SAVE ='A''Anzeigevarianten
     桌子
       T_OUTTAB = IT_OUTPUT_ALL
     例外情况
       PROGRAM_ERROR = 1
       其他= 2。
 ENDFORM。
 

ALV具有以下字段:ACCT,ANAME,ITEM,TEXT,HSL_ALL。 TEXT是ITEM的名称。 我想按项目显示小计,并在小计行中显示项目的文本。 所以我写了上面的代码,我仍然没有确切地做到这一点,所以我仍然没有修改subtotal_text子表单。 但是,使用上述代码调试时,它根本没有转到此subtotal_text子窗体。 我的问题是:1.为此,我是否需要使用subtotal_text事件? 2.我的代码有什么问题? 谢谢。

4条回答
zZ12138
2020-08-14 03:49

尝试以下更改:

 ls_fieldcat-fieldname ='ITEM'。
   ls_fieldcat-seltext_l ='ITEMS NO'。
   ls_fieldcat-no_zero =''。
   ls_fieldcat-outputlen =''。
   ls_fieldcat-no_out ='X'。  " <==============
   附加ls_fieldcat至gt_fieldcat。
   ls_fieldcat-fieldname ='TEXT'。
   ls_fieldcat-seltext_l ='ITEM名称'。
   ls_fieldcat-no_zero =''。
   ls_fieldcat-outputlen =''。
   LS_FIELDCAT-no_out =''。  " <============= 

一周热门 更多>