Excel下载显示多张而不是一张

2020-08-26 05:41发布

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

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


我们的客户只是回答说,当使用我们的报告时,他们在多张纸上表现出色。
问题是这些表中只有一张是必需的,因此
其他表总是由客户手动删除。

使用报告时,下载并打开Excel时只有一张纸。

因此imo不应是报告或SAP问题。

每个人都遇到过这个问题吗?

感谢和亲切问候

多米尼克

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

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


我们的客户只是回答说,当使用我们的报告时,他们在多张纸上表现出色。
问题是这些表中只有一张是必需的,因此
其他表总是由客户手动删除。

使用报告时,下载并打开Excel时只有一张纸。

因此imo不应是报告或SAP问题。

每个人都遇到过这个问题吗?

感谢和亲切问候

多米尼克

付费偷看设置
发送
3条回答
SAP砖家
1楼-- · 2020-08-26 06:14

嗨,Dominic,

您的报告如何下载Excel? 通过标准程序? 旧的OLE? ABAP2XLSX?

南山jay
2楼-- · 2020-08-26 06:15

多米尼克Überall是吗? 您提到自定义报告还是SAP标准报告?

如果是自定义报告,编写下载逻辑是什么?

Haoba3210
3楼-- · 2020-08-26 06:23
是的,这是自定义报告。
在我使用的编码下面:
数据: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。

一周热门 更多>