点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的专家,
我一直在搜索,但是找不到任何解决方案。 下面是更改ALV小计的报告。 更改后的值可以提取打印,打印预览,甚至下载到excel按钮。 但是,我无法从菜单工具栏"列表">"导出">"电子表格"将更改后的值导出到电子表格中。
我添加了sy-ucomm ="%PC",但它不会触发TOP_OF_LIST例程。
有人遇到过类似的问题吗?
*&--------------------------------------------- ------------------------ * *&报告ZALV_SUBTOT_CHANGE。 *& *&------------------------------------------------ --------------------- * *&程序显示了如何更改经典ALV的小计 *&检查子程序TOP_OF_PAGE *& *&------------------------------------------------ --------------------- * * 报告ZALV_SUBTOT_CHANGE。 TYPE-POOLS:slis。 类型:开始于ty_bkpf, belnr TYPE bkpf-belnr, buzei TYPE bseg-buzei, dmbtr TYPE bseg-dmbtr, 根据TYPE bseg-dmbtr, per1 TYPE char10, 模式TYPE bapi_change_mode, 结束于ty_bkpf。 * 数据:ty_bkpf的it_bkpf类型标准表, ty_bkpf的it_bkpf1类型标准表, wa_bkpf类型ty_bkpf。 * 数据:t_fieldcat类型slis_t_fieldcat_alv。 数据:wa_fieldcat类型slis_fieldcat_alv。 * 选择开始。 * SELECT BERNER BAZEI DMBTR 进入表it_bkpf 从bseg 最多20行。 * 循环到it_bkpf INTO wa_bkpf。 wa_bkpf-per = 0。 wa_bkpf-mode ='O'。 从wa_bkpf修改it_bkpf。 清除wa_bkpf。 结局。 * 执行create_field_catalog。 执行create_alv_output。 * *&------------------------------------------------ --------------------- * *&表格create_field_catalog *&------------------------------------------------ --------------------- * 表格create_field_catalog。 * 执行add_field_catalog使用: '01''BELNR''Doc''10''', '02''BUZEI''Line''3''', '03''DMBTR''金额''17''X', '04''PER''百分比''17''X', '05''PER1''百分比''17''', '06''MODE''模式''4'''。 * ENDFORM。 " create_field_catalog * *&------------------------------------------------ --------------------- * *&表单add_field_catalog *&------------------------------------------------ --------------------- * *将字段详细信息添加到字段目录中 * ------------------------------------------------- --------------------- * FORM add_field_catalog使用p_colpos p_fldname p_fldtext p_outlen p_sum .. * wa_fieldcat-row_pos ='1'。 wa_fieldcat-col_pos = p_colpos。 wa_fieldcat-fieldname = p_fldname。 wa_fieldcat-tabname ='IT_BKPF'。 wa_fieldcat-reptext_ddic = p_fldtext。 wa_fieldcat-outputlen = p_outlen。 wa_fieldcat-no_zero ='X'。 " << wa_fieldcat-do_sum = p_sum。 如果wa_fieldcat-fieldname ='MODE'。 wa_fieldcat-rollname ='BAPI_CHANGE_MODE'。 万一。 将wa_fieldcat附加到t_fieldcat。 清除:wa_fieldcat。 * ENDFORM。 " add_field_catalog *&------------------------------------------------ --------------------- * *&表格create_alv_output *&------------------------------------------------ --------------------- * *生成ALV网格输出 * ------------------------------------------------- --------------------- * FORM create_alv_output。 数据:l_repid像sy-repid, l_layout TYPE slis_layout_alv, l_print TYPE slis_print_alv。 * 数据:it_sort TYPE slis_t_sortinfo_alv, ls_sort TYPE slis_sortinfo_alv。 * 数据:it_filter类型slis_t_filter_alv, ls_filter类型slis_filter_alv。 * 数据:it_event_exit类型为slis_t_event_exit, ls_event_exit类型slis_event_exit。 * 数据:t_event类型slis_t_event, wa_event类型slis_alv_event。 * * l_repid = sy-repid。 * * l_layout-no_totalline ='X'。 l_layout-colwidth_optimize =''。 ls_sort-spos ='1'。 ls_sort-fieldname ='BUZEI'。 ls_sort-tabname ='IT_BKPF'。 ls_sort-up ='X'。 ls_sort-subtot ='X'。 APPEND ls_sort到it_sort。 ls_event_exit-ucomm ='&ILT'。 ls_event_exit-after ='X'。 APPEND ls_event_exit至it_event_exit。 清除wa_event。 wa_event-name ='USER_COMMAND'。 wa_event-form ='USER_COMMAND'。 APPEND wa_event至t_event。 清除wa_event。 wa_event-name ='TOP_OF_PAGE'。 wa_event-form ='TOP_OF_PAGE'。 APPEND wa_event至t_event。 清除wa_event。 wa_event-name ='TOP_OF_LIST'。 wa_event-form ='TOP_OF_LIST'。 APPEND wa_event至t_event。 * 通话功能'REUSE_ALV_GRID_DISPLAY' 出口 i_callback_program = l_repid i_callback_top_of_page ='TOP_OF_PAGE' is_layout = l_layout is_print = l_print it_sort = it_sort it_filter = it_filter it_fieldcat = t_fieldcat [] it_events = t_event 桌子 t_outtab = it_bkpf 例外情况 程序错误= 1 其他= 2。 如果sy-subrc <> 0。 *消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO *与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。 万一。 * ENDFORM。 " create_alv_output * *&------------------------------------------------ --------------------- * *&表格TOP_OF_PAGE *&------------------------------------------------ --------------------- * FORM top_of_page。 * 数据:lo_grid类型参考cl_gui_alv_grid。 * *获取全球参考 通话功能'GET_GLOBALS_FROM_SLVC_FULLSCR' 输入 e_grid = lo_grid。 * *获取小计 数据:it_01 TYPE REF TO数据, it_00 TYPE REF TO数据。 * 调用方法lo_grid-> get_subtotals 输入 ep_collect00 = it_00 ep_collect01 = it_01。 * *更改数据 字段符号:TYPE ANY TABLE, TYPE ANY TABLE, TYPE ANY, TYPE ANY。 分配it_01-> *至 。 分配it_00-> *至 。 * 环回 分配 。 将结构 的组件" PER"分配给 。 ='100'。 结局。 * *刷新表格显示 调用方法lo_grid-> refresh_table_display 出口 i_soft_refresh ='X'。 * ENDFORM。 " 页面顶部 * * *&------------------------------------------------ --------------------- * *&表格TOP_OF_LIST *&------------------------------------------------ --------------------- * 表格top_of_list。 * 数据:lo_grid类型参考cl_gui_alv_grid。 * * FOR打印输出: 检查sy-ucomm ='PRIN''打印 或sy-ucomm ='&RNT_PREV''打印预览 或sy-ucomm ='%PC'"下载到Excel 或sy-ucomm ='&XXL'。 导出到Excel * *获取全球参考 通话功能'GET_GLOBALS_FROM_SLVC_FULLSCR' 输入 e_grid = lo_grid。 * *获取小计 数据:it_01 TYPE REF TO数据。 * 调用方法lo_grid-> get_subtotals 输入 ep_collect01 = it_01。 * *更改数据 字段符号: TYPE ANY TABLE, TYPE ANY, TYPE ANY。 分配it_01-> *至 。 * 环回 分配 。 将结构 的组件" PER"分配给 。 ='100'。 结局。 * *设置打印/打印预览的小计 字段符号: 键入任何表。 数据:l_tab_name TYPE字符串。 * l_tab_name ='(SAPLKKBL)IT_COLLECT01 []'。 * ASSIGN(l_tab_name)至 。 如果已分配 。 * = 。 * 万一。 * ENDFORM。 " top_of_listE。
谢谢。
此致
此处列出了ALV导出的限制: 358644-ALV导出Excel:建议和已知信息 错误。
我看不到小计文本的任何限制。
这要么是ALV导出中的错误。
或者SAP应该添加 注释358644中有此限制。
您应该与SAP支持人员联系。
一周热门 更多>