点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
下面是程序和输出屏幕。
报告zvb_dummy1。 :w_dref TYPE REF TO data。
字段符号:
DATA:w_dref1 TYPE 引用数据。
字段符号:
TYPE:BEGIN OF ty_header,"至 在xlsx文件中创建字段标题。
fname(100)TYPE c,
ty_header的结尾。
数据:it_header ty_header的类型表,
wa_header TYPE ty_header的类型。
数据:inttab OCCURS 100的开始。"表读取给定表的文件
包含结构dfies。
数据:选中"类型"复选框。 "用于检查选定字段条件的附加字段
数据:inttab的结尾。
数据:wa_tab类似于inttab的行。
类型:BEGIN OF ty_int1,"用于选择字段的结构 在选择屏幕上
字段名TYPE字段名,
ty_int1的结尾。
数据:inttab1 ty_int1的类型表,"以加载给定数据库表的字段名。
wa_tab1类似于LINE OF inttab1。
参数:p_table TYPE标签名强制。
参数:p_file类似于rlgrap文件名DEFAULT'C:\ Users \ aaalve \ Desktop \ export.xls'。
参数:p_enable AS复选框默认值''用户命令uc1。
在选择屏幕输出处。
如果p_enable ='X'。
调用函数'DDIF_FIELDINFO_GET'"以获取表 字段信息
导出
选项卡名称= p_table
* FIELDNAME = FIELDNM
语言= sy-langu
表格
dfies_tab = inttab
*固定值=
例外
not_found = 1
internal_error = 2
其他=3。
PERFORM po pup_display。
ENDIF。
*&-------------------------------- ------------------------------------- *
*&表格popup_display
*& -------------------------------------------------- ------------------- *
*文字
* --------------------- ------------------------------------------------- *
FORM popup_display。
*用于弹出式选择的字段目录
清除ls_fieldcat。
ls_fieldcat-row_pos ='1'。
ls_fieldcat-col_pos ='1'。
ls_fieldcat -fieldname ='CHECK'。
ls_fieldcat-tabname ='INTTAB'。
ls_fieldcat-seltext_m ='SELECT'。
附加ls_fieldcat到lt_fieldcat。
清除ls_fieldcat。
ls_fieldcat-row_pos = '1'。
ls_fieldcat-col_pos ='2'。
ls_fieldcat-fieldname ='FIELDNAME'。
ls_fieldcat-tabname ='INTTAB'。
ls_fieldcat-seltext_m ='FIELDNAME'。
ls_fieldcat-outputlen =50。
附加ls_fieldcat至lt_fieldcat。
ls_fieldcat-row_pos ='1'。
ls_fieldcat-col_pos ='3'。
ls_fieldcat-fieldname ='FIELDTEXT' 。
ls_fieldcat- tabname ='INTTAB'。
ls_fieldcat-seltext_m ='DESCRIPTION'。
附加ls_fieldcat至lt_fieldcat。
清除ls_fieldcat。
*在POPUP中显示数据以选择字段
调用功能'REUSE_ALV_POPUP_TO_SELECT'
导出
i_zebra ='X'
it_fieldcat = lt_fieldcat
i_tabname ='INTTAB'
i_checkbox_fieldname ='CHECK'
表格
t_outtab = inttab。
清除p_enable。
ENDFORM。 " popup_display
选择开始。
PERFORM选择
PERFORM下载。
*&------------- -------------------------------------------------- ------ *
*&形式SELEC
*&------------------------------- -------------------------------------- *
*文字
*- -------------------------------------------------- ------------------ *
*-> p1文本
* <-p2文本
* --------- -------------------------------------------------- ----------- *
格式选择。
创建数据w_dref类型标准表(p_table)。"
创建数据w_dref1类型标准表(p_table)。 "
ASSIGN w_dref1-> * TO
IF sy-subrc EQ0。
LOOP AT inttab INTO wa_tab WHERE检查 ='X'。"从inttab到inttab1中选择字段名称
从(p_table)
中选择(wa_tab-fieldname)到表
MOVE wa_tab- 字段名TO wa_header。
APPEND wa_header到it_header。
清除:wa_tab,wa_header。
ENDLOOP。
在inttab1上LOOP。INTO wa_tab1。 br>进入表
CLEAR wa_tab1。
ENDLOOP。
ENDIF。
ENDFORM。
*&-----------获取记录 -------------------------------------------------- -------- *
*&表格下载
*&----------------------------- ---------------------------------------- *
*文字
* -------------------------------------------------- -------------------- *
*-> p1文本
* <-p2文本
* ------- -------------------------------------------------- ------------- *
FORM下载。
DATA:cnt TYPE字符串。"以在fi_itab
DATA:d TYPE字符串中加载1000条记录。 "创建多个excel ex export1 export2文件。...
数据:文件类型字符串。"将p_file转换为字符串
file = p_file。
cnt =0。
ASSIGN
APPEND
cnt = cnt +1。
*
IF cnt>1000。
d = d +1。
合并'C:\ Users \ vbirajda \ Desktop \ export'd'.xls'到INTO文件。
调用功能'GUI_DOWNLOAD'
导出
* BIN_FILESIZE =
文件名=文件
文件类型='DAT'
append ='X'
write_field_separator ='X'
表格
data_tab =
字段名称= it_header
。
IF sy-subrc <> 0.
ENDIF。
cnt =0。
循环AT
DELETE
ENDLOOP。
ENDIF。
ENDLOOP。
ENDFORM。
(29.7 kB)
此问题是因为您没有将选择字段串联到单个查询中,因此每次查询都以全新Select方式运行时都会出现。
在FORM SELEC中用以下代码替换代码:
创建数据w_dref类型标准表(p_table)。 "指向数据库表的结构。
指向数据库表的结构。
。的对应字段。 "根据所选字段(即wa_tab1
ASSIGN w_dref-> *至
创建数据w_dref1类型标准表(p_table)。 "
ASSIGN w_dref1-> *至
IF sy-subrc EQ0。
数据:lv_temp TYPE字符串。
LOOP AT inttab INTO wa_tab WHERE检查='X'。 "从inttab到inttab1选择字段名称
合并lv_temp wa_tab字段名INTO lv_temp按空格分隔。
将wa_tab-fieldname移动到wa_header。
将wa_header附加到it_header。
清除:wa_tab,wa_header。
ENDLOOP。
从(p_table)中选择(lv_temp)
表
的对应字段
在inttab1处循环播放INTO wa_tab1。
从(p_table)中选择(wa_tab1)
表
清除wa_tab1。
ENDLOOP。
ENDIF。
这为我提供了正确的值!
是的,我有一个问题,只有最后选择的字段记录才会加载到xl文件中。
此帖子已作为答案显示为评论,但已成为评论。
您为什么评论您的回复 作为正确答案?
当您将任何信息传递给帖子时,您只需要发表评论就不要写任何内容作为答案,除非它确实有助于成为答案。
我建议您赚钱 在下面的"登机"链接中,可以很好地了解SCN!
https://community。 sap.com/resources/missions-badges
按照我针对您的问题在解决方案下方发布的方式!
致谢!
谢谢您 Satish Kumar Balasubramanian !!!!
一周热门 更多>