2020-08-26 05:41发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嘿
我们的客户只是回答说,当使用我们的报告时,他们在多张纸上表现出色。 问题是这些表中只有一张是必需的,因此其他表总是由客户手动删除。
使用报告时,下载并打开Excel时只有一张纸。
因此imo不应是报告或SAP问题。
每个人都遇到过这个问题吗?
感谢和亲切问候
多米尼克
嗨,Dominic,
您的报告如何下载Excel? 通过标准程序? 旧的OLE? ABAP2XLSX?
多米尼克Überall是吗? 您提到自定义报告还是SAP标准报告?
如果是自定义报告,编写下载逻辑是什么?
是的,这是自定义报告。在我使用的编码下面:
数据:lv_offset TYPE i。 数据:lv_count TYPE i。 数据:lv_h TYPE i。 数据:lv_new(2)TYPE c。 数据:lv_percent_sign(1)类型c值'%'。 数据:lv_currency_sign(1)类型c值'€'。 数据:lv_cellname TYPE字符串。 数据:lv_string TYPE字符串。 数据:lv_excel_path TYPE字符串。 数据:ls_standard TYPE zcl_bonus_processing => sty_final_standard。 数据:ls_advanced TYPE zcl_bonus_processing => sty_final_advanced。 数据:lo_excel类型obj_record。" ole2_object。 数据:lo_mapl类型obj_record。" ole2_object。 数据:lo_map类型obj_record。" ole2_object。 * Excel启动 创建对象lo_excel'EXCEL.APPLICATION'。 "错误处理 lo_excel的"可见"设置属性= 0。 "错误处理 * Liste der(leeren)工作簿 lo_excel"工作簿"的调用方法= lo_mapl。 "错误处理 * Neues工作簿hinzufügen lo_mapl的调用方法"添加" = lo_map。 "错误处理 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 1 iv_bold = 1 iv_val ='Personalnummer')。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 2 iv_bold = 1 iv_val ='aliq。 Zielbonus')。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 3 iv_bold = 1 iv_val ='aliq。 Zielbonus Anspruch')。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 4 iv_bold = 1 iv_val ='Arbeitszeitfaktor')。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 5 iv_bold = 1 iv_val ='Anspruch')。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 6 iv_bold = 1 iv_val ='SONDE')。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 7 iv_bold = 1 iv_val ='Kommentar')。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 8 iv_bold = 1 iv_val ='MaKreis')。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 9 iv_bold = 1 iv_val ='aliq。 Zielbonus vor 3 J.' )。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 10 iv_bold = 1 iv_val ='Zielbonus')。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = 11 iv_bold = 1 iv_val ='JAHRGRUNDGEHALT')。 lv_offset = 11。 lv_count =0。 做gv_row_count次。 向lv_offset添加1。 将1加到lv_count。 lv_new = lv_count。 清除:lv_cellname。 CONCATENATE'Jahr-'lv_new lv_percent_sign INTO lv_cellname按空格分隔。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = lv_offset iv_bold = 1 iv_val = lv_cellname)。 向lv_offset添加1。 清除:lv_cellname。 CONCATENATE'Jahr-'lv_new lv_currency_sign INTO lv_cellname用空格分隔。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = lv_offset iv_bold = 1 iv_val = lv_cellname)。 ENDDO。 lv_offset = gv_row_count * 2 +12。 fill_cell( 出口 io_excel = lo_excel iv_i = 1 iv_j = lv_offset iv_bold = 1 iv_val ='Probezeitende')。 * Standarddatenfüllen 在gt_standard INTO ls_standard处循环播放。 清除:lv_h,ls_advanced,lv_offset。 lv_h = sy-tabix + 1. lv_string = ls_standard-pernr。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 1 iv_bold = 0 iv_val = lv_string)。 lv_string = ls_standard-ziel_bonus。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 2 iv_bold = 0 iv_val = lv_string)。 lv_string = ls_standard-ziel_bonus_anspruch。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 3 iv_bold = 0 iv_val = lv_string)。 lv_string = ls_standard-bsgrd。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 4 iv_bold = 0 iv_val = lv_string)。 lv_string = ls_standard-anspruch。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 5 iv_bold = 0 iv_val = lv_string)。 lv_string = ls_standard-sonderreg。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 6 iv_bold = 0 iv_val = lv_string)。 lv_string = ls_standard-comm。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 7 iv_bold = 0 iv_val = ls_standard-comm)。 lv_string = ls_standard-persk。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 8 iv_bold = 0 iv_val = lv_string)。 lv_string = ls_standard-ziel_bonus_dreijahre。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 9 iv_bold = 0 iv_val = lv_string)。 lv_string = ls_standard-ziel_bonus_display。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 10 iv_bold = 0 iv_val = lv_string)。 lv_string = ls_standard-jahres_grundgehalt。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = 11 iv_bold = 0 iv_val = lv_string)。 * Advanced-Datenfüllen lv_offset = 11。 在gt_advanced INTO ls_advanced处循环,其中pernr = ls_standard-pernr。 向lv_offset添加1。 lv_string = ls_advanced-year_percent。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = lv_offset iv_bold = 0 iv_val = lv_string)。 向lv_offset添加1。 lv_string = ls_advanced-year_quantity。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = lv_offset iv_bold = 0 iv_val = lv_string)。 ENDLOOP。 向lv_offset添加1。 lv_string = ls_standard-probez。 fill_cell( 出口 io_excel = lo_excel iv_i = lv_h iv_j = lv_offset iv_bold = 0 iv_val = lv_string)。 ENDLOOP。 CONCATENATE iv_excel_path'.xlsx'INTO lv_excel_path。 lo_map'SAVEAS'的呼叫方法 出口 #1 = lv_excel_path。 lo_excel"退出"的调用方法。 免费对象lo_mapl。 免费对象lo_map。 免费对象lo_excel。
最多设置5个标签!
嗨,Dominic,
您的报告如何下载Excel? 通过标准程序? 旧的OLE? ABAP2XLSX?
多米尼克Überall是吗? 您提到自定义报告还是SAP标准报告?
如果是自定义报告,编写下载逻辑是什么?
一周热门 更多>