ALV报告的输出未导出到EXCEL文件中

2020-08-23 11:48发布

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

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


亲爱的ABAP大师,

下面是一个报告的代码。 报告工作正常,但运行后我选择列表->导出->电子表格

仅fieldcatlog导出到excel。 没有数据正在导出。请帮助我。

*&--------------------------------------------- ------------------------ *
*&报告ZSAPN_BAPI_MATERIAL
*&------------- -------------------------------------------------- ------ *
*&
*&--------------------------------- ------------------------------------ *
报告ZSAPN_BAPI_MATERIAL。
TYPE-POOLS: slis。
类型:ty_final的开始,
werks类型werks_d,
ty_final的结束。

类型:po_data1的开始,
ebeln EKKO-EBELN类型,
aedat EKKO-AEDAT类型,
werks EKPO-WERKS类型,
po_data的结尾1.
类型:po_data的开头,
ebeln EKKO-EBELN类型,
aedat EKKO-AEDAT类型,
> werks EKPO-WERKS型,
line1(100)c型,
line2(100)c型,
line3(100)c型,
line4(100)c型,
po_data的结尾。

类型:fy_po_data的开始,
ebeln EKKO-EBELN类型,
line1(100)c类型,
line2(100)c类型,
line3( 100)类型c,
line4(100)类型c,
fy_po_data的结尾。

数据:FIELDCATALOG类型slis_t_fieldcat_alv,
WA_F IELDCATLOG类型slis_fieldcat_alv,
gs_final类型ty_final,
IT_TTXIT带标题行的TTXIT类型表,
V_TDIT(1)类型c,
lt_text类型标准线表,
lt_podata类型表 PO_DATA1,
ty_podata带标题行的PO_DATA TYPE表,
wa_podata TYPE PO_DATA,
lv_tdname TYPE thead-tdname,
podata_ebeln类似于THEAD-TDNAME,
TY_PO_DATA TYPE STANDARD表,Fy br> wa_po_data类型fy_po_data,
ls_layout类型slis_layout_alv,
FS_TEXT LIKE TLINE。

表格:TTXIT,EKKO,EKPO。


选择屏幕:带有帧的b1块开始 标题文本001。
选择选项:s_plant用于gs_final-werks强制,
s_ebeln用于EKKO-EBELN,"强制性,
s_podate用于sy-datum强制,
P_TDID用于IT_TTXIT-ID 'F21'。
选择屏幕:b1块的结尾。

在s_ebeln的选择屏幕上。
如果s_ebeln-low> s_ebeln-high。
消息'请检查采购单号 'TYPE'E'。
ENDIF。

在选择屏幕上 如果s_podate-low> s_podate-high。
消息'请检查日期'TYPE'E'。
ENDIF。

在P_TDID上的选择屏幕上。
V_TDIT = P_TDID-low + 0(1)。
IF V_TDIT <>'F'。
消息'请选择正确的文本类型'TYPE'E'。
ENDIF。

开始 -OF-SELECTION。

lv_tdname = s_ebeln。

从ekko中选择a〜ebeln a〜aedat b〜werks作为JOIN ekpo AS b在a〜ebeln上= b〜ebeln
插入表lt_podata
中,将b_werks = s_plant-low
和a〜aedat在s_podate-low和s_podate-high之间。

从lt_podata中删除相邻的重复项,将ebeln aedat werks比较。
< br>将lt_podata循环到wa_podata。
podata_ebeln = wa_podata-EBELN。
通话功能'READ_TEXT'
导出
客户端= sy-mandt
id = P_TDID-LOW
语言= sy-langu
名称= podata_ebeln
对象='EKKO'
表格
行= lt_text"长文本将在以下内部表中返回
例外
ID = 1 < br>语言= 2
名称= 3
NOT_FOU ND = 4
对象= 5
其他=8。

读表lt_text INTO fs_text索引1。
如果sy-subrc EQ0。
ty_podata-ebeln = wa_podata-ebeln
ty_podata-aedat = wa_podata-aedat。
ty_podata-werks = wa_podata-werks。
ty_podata-line1 = fs_text-tdline。
ENDIF。

读表lt_text INTO fs_text 索引2。
IF sy-subrc EQ 0.
ty_podata-line2 = fs_text-tdline。

ENDIF。

读表lt_text INTO fs_text索引3.
IF sy-subrc EQ0。
ty_podata-line3 = fs_text-tdline。
ENDIF。

读取表lt_text INTO fs_text索引4。
如果sy-subrc EQ 0。 -line4 = fs_text-tdline。
ENDIF。

APPEND ty_podata。
CLEAR podata_ebeln。
CLEAR lt_text。
ENDLOOP。


从ty_podata中删除相邻的重复项
删除ty_podata在哪里ebeln初始化。

将ty_podata循环到wa_podata。
将wa_podata移动到wa_po_data。
附加wa_po_data到TY_PO_DATA。 br >通过ebeln排序ty_po_data。
从ty_po_data比较中删除相邻的副本ebeln第1行第2行第3行第4行。

WA_FIELDCATLOG-FIELDNAME ='ebeln'。
WA_FIELDCATLOG-SELTEXT_L ='PO Num'。 WA_FIELDCATLOG-COL_POS =1。
" WA_FIELDCATLOG-outputlen =10。
将WA_FIELDCATLOG追加到FIELDCATALOG。
清除WA_FIELDCATLOG。

WA_FIELDCATLOG-FIELDNAME ='line1'。
WA_FIELDCATLOG-LOG ='Line-1'。
WA_FIELDCATLOG-COL_POS = 1.
将WA_FIELDCATLOG附加到FIELDCATALOG。
CLEAR WA_FIELDCATLOG。

WA_FIELDCATLOG-FIELDNAME ='line2'。
WA_FIELDCATLOG-SELTEXT_M ='Line-2'。
WA_FIELDCATLOG-COL_POS =2。
将WA_FIELDCATLOG附加到FIELDCATALOG。
CLEAR WA_FIELDCATLOG。

WA_FIELDCATLOG-FIELDNAME ='line3'。
WA_FIELDCATLOG-SELTEXT_M ='Line-3'。
WA_FIELDCATLOG-COL_POS =3。
将WA_FIELDCATLOG附加到FIELDCATALOG。
CLEAR WA_FIELDCATLOG。

WA_FIELDCATLOG-FIELDNAME ='line4'。
WA_FIELDCATLOG-SELTEXT_M ='Line-4'。
WA_FIELDCA TLOG-COL_POS =4。
将WA_FIELDCATLOG追加到FIELDCATALOG。
清除WA_FIELDCATLOG。


ls_layout-colwidth_optimize ='X'。


通话功能'REUSE_ALV_GRID_DISPLAY'
>导出
I_CALLBACK_PROGRAM ='ZSAPN_BAPI_MATERIAL'
IT_FIELDCAT = FIELDCATALOG
" i_save ='A'
" is_layout = ls_layout
数据表
T_OUTTAB = ty_po_dataS <错误> PROCEPTION = 1
其他=2。

如果SY-SUBRC <>0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
带SY-MSGV1 SY-MSGV2 SY -MSGV3 SY-MSGV4。
ENDIF。

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

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


亲爱的ABAP大师,

下面是一个报告的代码。 报告工作正常,但运行后我选择列表->导出->电子表格

仅fieldcatlog导出到excel。 没有数据正在导出。请帮助我。

*&--------------------------------------------- ------------------------ *
*&报告ZSAPN_BAPI_MATERIAL
*&------------- -------------------------------------------------- ------ *
*&
*&--------------------------------- ------------------------------------ *
报告ZSAPN_BAPI_MATERIAL。
TYPE-POOLS: slis。
类型:ty_final的开始,
werks类型werks_d,
ty_final的结束。

类型:po_data1的开始,
ebeln EKKO-EBELN类型,
aedat EKKO-AEDAT类型,
werks EKPO-WERKS类型,
po_data的结尾1.
类型:po_data的开头,
ebeln EKKO-EBELN类型,
aedat EKKO-AEDAT类型,
> werks EKPO-WERKS型,
line1(100)c型,
line2(100)c型,
line3(100)c型,
line4(100)c型,
po_data的结尾。

类型:fy_po_data的开始,
ebeln EKKO-EBELN类型,
line1(100)c类型,
line2(100)c类型,
line3( 100)类型c,
line4(100)类型c,
fy_po_data的结尾。

数据:FIELDCATALOG类型slis_t_fieldcat_alv,
WA_F IELDCATLOG类型slis_fieldcat_alv,
gs_final类型ty_final,
IT_TTXIT带标题行的TTXIT类型表,
V_TDIT(1)类型c,
lt_text类型标准线表,
lt_podata类型表 PO_DATA1,
ty_podata带标题行的PO_DATA TYPE表,
wa_podata TYPE PO_DATA,
lv_tdname TYPE thead-tdname,
podata_ebeln类似于THEAD-TDNAME,
TY_PO_DATA TYPE STANDARD表,Fy br> wa_po_data类型fy_po_data,
ls_layout类型slis_layout_alv,
FS_TEXT LIKE TLINE。

表格:TTXIT,EKKO,EKPO。


选择屏幕:带有帧的b1块开始 标题文本001。
选择选项:s_plant用于gs_final-werks强制,
s_ebeln用于EKKO-EBELN,"强制性,
s_podate用于sy-datum强制,
P_TDID用于IT_TTXIT-ID 'F21'。
选择屏幕:b1块的结尾。

在s_ebeln的选择屏幕上。
如果s_ebeln-low> s_ebeln-high。
消息'请检查采购单号 'TYPE'E'。
ENDIF。

在选择屏幕上 如果s_podate-low> s_podate-high。
消息'请检查日期'TYPE'E'。
ENDIF。

在P_TDID上的选择屏幕上。
V_TDIT = P_TDID-low + 0(1)。
IF V_TDIT <>'F'。
消息'请选择正确的文本类型'TYPE'E'。
ENDIF。

开始 -OF-SELECTION。

lv_tdname = s_ebeln。

从ekko中选择a〜ebeln a〜aedat b〜werks作为JOIN ekpo AS b在a〜ebeln上= b〜ebeln
插入表lt_podata
中,将b_werks = s_plant-low
和a〜aedat在s_podate-low和s_podate-high之间。

从lt_podata中删除相邻的重复项,将ebeln aedat werks比较。
< br>将lt_podata循环到wa_podata。
podata_ebeln = wa_podata-EBELN。
通话功能'READ_TEXT'
导出
客户端= sy-mandt
id = P_TDID-LOW
语言= sy-langu
名称= podata_ebeln
对象='EKKO'
表格
行= lt_text"长文本将在以下内部表中返回
例外
ID = 1 < br>语言= 2
名称= 3
NOT_FOU ND = 4
对象= 5
其他=8。

读表lt_text INTO fs_text索引1。
如果sy-subrc EQ0。
ty_podata-ebeln = wa_podata-ebeln
ty_podata-aedat = wa_podata-aedat。
ty_podata-werks = wa_podata-werks。
ty_podata-line1 = fs_text-tdline。
ENDIF。

读表lt_text INTO fs_text 索引2。
IF sy-subrc EQ 0.
ty_podata-line2 = fs_text-tdline。

ENDIF。

读表lt_text INTO fs_text索引3.
IF sy-subrc EQ0。
ty_podata-line3 = fs_text-tdline。
ENDIF。

读取表lt_text INTO fs_text索引4。
如果sy-subrc EQ 0。 -line4 = fs_text-tdline。
ENDIF。

APPEND ty_podata。
CLEAR podata_ebeln。
CLEAR lt_text。
ENDLOOP。


从ty_podata中删除相邻的重复项
删除ty_podata在哪里ebeln初始化。

将ty_podata循环到wa_podata。
将wa_podata移动到wa_po_data。
附加wa_po_data到TY_PO_DATA。 br >通过ebeln排序ty_po_data。
从ty_po_data比较中删除相邻的副本ebeln第1行第2行第3行第4行。

WA_FIELDCATLOG-FIELDNAME ='ebeln'。
WA_FIELDCATLOG-SELTEXT_L ='PO Num'。 WA_FIELDCATLOG-COL_POS =1。
" WA_FIELDCATLOG-outputlen =10。
将WA_FIELDCATLOG追加到FIELDCATALOG。
清除WA_FIELDCATLOG。

WA_FIELDCATLOG-FIELDNAME ='line1'。
WA_FIELDCATLOG-LOG ='Line-1'。
WA_FIELDCATLOG-COL_POS = 1.
将WA_FIELDCATLOG附加到FIELDCATALOG。
CLEAR WA_FIELDCATLOG。

WA_FIELDCATLOG-FIELDNAME ='line2'。
WA_FIELDCATLOG-SELTEXT_M ='Line-2'。
WA_FIELDCATLOG-COL_POS =2。
将WA_FIELDCATLOG附加到FIELDCATALOG。
CLEAR WA_FIELDCATLOG。

WA_FIELDCATLOG-FIELDNAME ='line3'。
WA_FIELDCATLOG-SELTEXT_M ='Line-3'。
WA_FIELDCATLOG-COL_POS =3。
将WA_FIELDCATLOG附加到FIELDCATALOG。
CLEAR WA_FIELDCATLOG。

WA_FIELDCATLOG-FIELDNAME ='line4'。
WA_FIELDCATLOG-SELTEXT_M ='Line-4'。
WA_FIELDCA TLOG-COL_POS =4。
将WA_FIELDCATLOG追加到FIELDCATALOG。
清除WA_FIELDCATLOG。


ls_layout-colwidth_optimize ='X'。


通话功能'REUSE_ALV_GRID_DISPLAY'
>导出
I_CALLBACK_PROGRAM ='ZSAPN_BAPI_MATERIAL'
IT_FIELDCAT = FIELDCATALOG
" i_save ='A'
" is_layout = ls_layout
数据表
T_OUTTAB = ty_po_dataS <错误> PROCEPTION = 1
其他=2。

如果SY-SUBRC <>0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
带SY-MSGV1 SY-MSGV2 SY -MSGV3 SY-MSGV4。
ENDIF。

付费偷看设置
发送
2条回答
浮生未央
1楼-- · 2020-08-23 12:22

您好 Kuldeep Dangi

moderatIon警报显示与以下内容无关:EPM Excel加载项

能否请您进行相应的更改?

我们将[随后再次发布问题。

关于

Dedi

哎,真难
2楼-- · 2020-08-23 12:31

在我看来必须是 ABAP开发

>


一周热门 更多>