当我按下按钮时,从ALV报告的输出中调用smartform。

2020-08-17 17:10发布

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

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


亲爱的

我想创建ALV报告来显示BUKRS,WAERS和BUTXT字段的T001表数据。

现在我要在按下按钮时显示Alv报告,并且必须使用PF状态创建按钮。

单击按钮显示ALV报告后,当我在Alv报告中选择单行时,单个报告必须以smartform显示。

请在下面检查我的代码。

SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S32 {color:#3399FF; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }

报告Z_ALV_USING_SMARTFORM_REPORT。

表格:T001,sscrfields。
类型库:slis。

类型:ty_T001的开头,
BUKRS类型T001-BUKRS,
> WAERS型号T001-WAERS,
BUTXT型号T001-BUTXT,
ty_T001结尾。

数据:it_T001型号T001,
wa_T001型号T001。

//我不想要。
选择屏幕行的开头。
SELECTION-SCREEN PUSHBUTTON 2(10)text-001 USER-COMMAND按。
选择屏幕行的结尾。
< br>初始化。


在选择屏幕上。
如果SY-ucomm ='PRESS'。

提交Z_ALV_USING_SMARTFORM_REPORT并返回。

endif。< br>
选择开始。

从T001选择BUKRS WAERS到表it_T001的对应字段中。

数据:it_fcat类型slis_t_fieldcat_alv和
wa_fcat类型slis_fieldcat_alv。 br>
数据:wa_layout类型slis_layout_alv。

数据:wa_grid类型lvc_s_glay。
数据:变量TYPE变量。

数据:FM_NAME类型TDSF 名称。



PERFORM字段猫。

wa_layout-colwidth_optimize ='X'。
wa_layout-zebra ='X'。 " Zebra
wa_layout-coltab_fieldname ='CELL'。

通话功能'REUSE_ALV_GRID_DISPLAY'
导出
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET ='SET_PF_STATUS'
USRCMD'
i_callback_top_of_page ='TOPOFPAGE'
i_background_id ='SKY'
i_grid_title ='T001 Table'
i_grid_settings = wa_grid
is_layout = wa_layout
it_fieldcat = it_fcat 'X'
is_variant =变体
表格
t_outtab = it_T001。

FORM set_pf_status使用rt_extab TYPE slis_t_extab。
SET PF-STATUS'Z_ALV_PF_STATUS'。" <---- 无论您的状态
*是...
ENDFORM。
*&----------------------------- ---------------------------------------- *
*&表格FIELDCAT
*&----------------------------------------------- ---------------------- *
FORM fieldcat。
清除it_fcat。
清除wa_fcat。
wa_fcat-fieldname ='BUKRS '。
wa_fcat-tabname ='IT_T001'。
wa_fcat-seltext_m ='公司代码'。
wa_fcat-no_zero ='X'。
wa_fcat-key ='X'。
将wa_fcat添加到it_fcat。
清除wa_fcat。

wa_fcat字段名称='WAERS'。
wa_fcat-tabname ='IT_T001'。
wa_fcat-seltext_l ='货币密钥'。
wa_fcat-key ='X'。
将wa_fcat附加到it_fcat。
清除wa_fcat。


wa_fcat- fieldname ='BUTXT'。
wa_fcat-tabname ='IT_T001'。
wa_fcat-seltext_m ='COMPANY NAME'。
wa_fcat-key ='X'。
将wa_fcat附加到it_fcat。
>清除wa_fcat。
ENDFORM。

*&--------------------------------- ------------------------------------ *
*&形成USRCMD
*&- -------------------------------------------------- ------------------ *
使用ucomm类型sy-ucomm
selfield类型slis_selfield来形成usrcmd。
数据:it_T001_1喜欢it_T001。
数据 :it_T001_2 T001型表,
wa_T001_2 T001型。
案例ucomm。
当'&IC1'。
读表it_T001到wa_T001 INDEX selfield-tabindex。
APPEND wa_T001 TO it_T001_1。

调用功能'SSF_FUNCTION_MODULE _NAME'
EXPORTING
表单名称='Z_DEMO_TEST4'
* VARIANT =''
* DIRECT_CALL =''
导入
FM_NAME = FM_NAME
*例外情况
* NO_FORM = 1
* NO_FUNCTION_MODULE = 2
*其他= 3

IF sy-subrc <> 0.
*消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
*带SY-MSGV1 SY-MSGV2 SY-MSGV3。
ENDIF。


呼叫功能FM_NAME
表格
it_T001 = it_T001_1。

IF sy-subrc <> 0.
*消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
*与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
ENDIF。
ENDCASE。
ENDFORM。 " USRCMD

*&---------------------------------------- ----------------------------- *
*&表格TOPOFPAGE
*&-------- -------------------------------------------------- ----------- *
表单topofpage。
数据:slis_listheader的it_header类型表,
washeader slis_listheader类型。

wa_header-typ ='H'。
wa_header-info ='ALV报告'。
附加wa_header到it_header。
清除wa_header。"



wa_header-typ ='S'。
wa_header-key ='日期:'。
并置sy-datum + 6(2)'。'
sy-datum + 4(2)'。'
sy-datum(4)INTO wa_header- 信息。
将wa_header附加到it_header。
清除wa_header。
ENDFORM。

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

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


亲爱的

我想创建ALV报告来显示BUKRS,WAERS和BUTXT字段的T001表数据。

现在我要在按下按钮时显示Alv报告,并且必须使用PF状态创建按钮。

单击按钮显示ALV报告后,当我在Alv报告中选择单行时,单个报告必须以smartform显示。

请在下面检查我的代码。

SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S32 {color:#3399FF; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }

报告Z_ALV_USING_SMARTFORM_REPORT。

表格:T001,sscrfields。
类型库:slis。

类型:ty_T001的开头,
BUKRS类型T001-BUKRS,
> WAERS型号T001-WAERS,
BUTXT型号T001-BUTXT,
ty_T001结尾。

数据:it_T001型号T001,
wa_T001型号T001。

//我不想要。
选择屏幕行的开头。
SELECTION-SCREEN PUSHBUTTON 2(10)text-001 USER-COMMAND按。
选择屏幕行的结尾。
< br>初始化。


在选择屏幕上。
如果SY-ucomm ='PRESS'。

提交Z_ALV_USING_SMARTFORM_REPORT并返回。

endif。< br>
选择开始。

从T001选择BUKRS WAERS到表it_T001的对应字段中。

数据:it_fcat类型slis_t_fieldcat_alv和
wa_fcat类型slis_fieldcat_alv。 br>
数据:wa_layout类型slis_layout_alv。

数据:wa_grid类型lvc_s_glay。
数据:变量TYPE变量。

数据:FM_NAME类型TDSF 名称。



PERFORM字段猫。

wa_layout-colwidth_optimize ='X'。
wa_layout-zebra ='X'。 " Zebra
wa_layout-coltab_fieldname ='CELL'。

通话功能'REUSE_ALV_GRID_DISPLAY'
导出
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET ='SET_PF_STATUS'
USRCMD'
i_callback_top_of_page ='TOPOFPAGE'
i_background_id ='SKY'
i_grid_title ='T001 Table'
i_grid_settings = wa_grid
is_layout = wa_layout
it_fieldcat = it_fcat 'X'
is_variant =变体
表格
t_outtab = it_T001。

FORM set_pf_status使用rt_extab TYPE slis_t_extab。
SET PF-STATUS'Z_ALV_PF_STATUS'。" <---- 无论您的状态
*是...
ENDFORM。
*&----------------------------- ---------------------------------------- *
*&表格FIELDCAT
*&----------------------------------------------- ---------------------- *
FORM fieldcat。
清除it_fcat。
清除wa_fcat。
wa_fcat-fieldname ='BUKRS '。
wa_fcat-tabname ='IT_T001'。
wa_fcat-seltext_m ='公司代码'。
wa_fcat-no_zero ='X'。
wa_fcat-key ='X'。
将wa_fcat添加到it_fcat。
清除wa_fcat。

wa_fcat字段名称='WAERS'。
wa_fcat-tabname ='IT_T001'。
wa_fcat-seltext_l ='货币密钥'。
wa_fcat-key ='X'。
将wa_fcat附加到it_fcat。
清除wa_fcat。


wa_fcat- fieldname ='BUTXT'。
wa_fcat-tabname ='IT_T001'。
wa_fcat-seltext_m ='COMPANY NAME'。
wa_fcat-key ='X'。
将wa_fcat附加到it_fcat。
>清除wa_fcat。
ENDFORM。

*&--------------------------------- ------------------------------------ *
*&形成USRCMD
*&- -------------------------------------------------- ------------------ *
使用ucomm类型sy-ucomm
selfield类型slis_selfield来形成usrcmd。
数据:it_T001_1喜欢it_T001。
数据 :it_T001_2 T001型表,
wa_T001_2 T001型。
案例ucomm。
当'&IC1'。
读表it_T001到wa_T001 INDEX selfield-tabindex。
APPEND wa_T001 TO it_T001_1。

调用功能'SSF_FUNCTION_MODULE _NAME'
EXPORTING
表单名称='Z_DEMO_TEST4'
* VARIANT =''
* DIRECT_CALL =''
导入
FM_NAME = FM_NAME
*例外情况
* NO_FORM = 1
* NO_FUNCTION_MODULE = 2
*其他= 3

IF sy-subrc <> 0.
*消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
*带SY-MSGV1 SY-MSGV2 SY-MSGV3。
ENDIF。


呼叫功能FM_NAME
表格
it_T001 = it_T001_1。

IF sy-subrc <> 0.
*消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
*与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
ENDIF。
ENDCASE。
ENDFORM。 " USRCMD

*&---------------------------------------- ----------------------------- *
*&表格TOPOFPAGE
*&-------- -------------------------------------------------- ----------- *
表单topofpage。
数据:slis_listheader的it_header类型表,
washeader slis_listheader类型。

wa_header-typ ='H'。
wa_header-info ='ALV报告'。
附加wa_header到it_header。
清除wa_header。"



wa_header-typ ='S'。
wa_header-key ='日期:'。
并置sy-datum + 6(2)'。'
sy-datum + 4(2)'。'
sy-datum(4)INTO wa_header- 信息。
将wa_header附加到it_header。
清除wa_header。
ENDFORM。

付费偷看设置
发送
1条回答
SAP砖家
1楼-- · 2020-08-17 18:03

感谢您访问SAP社区以获取问题的答案。 由于您是第一次在这里提出问题,因此建议您熟悉 https://community。 sap.com/resources/questions-and-answers (如果您还没有的话),因为它提供了准备问题的技巧,这些问题引起了我们成员的反馈。 例如,您可以概述要采取哪些步骤来找到答案(以及为什么它们没有帮助),共享您所见/做过的屏幕截图以及使用更具描述性的主题行。 您提供的详细信息越多,成员越有可能会为您提供帮助。

您希望,可以先选择"操作",然后再"编辑"来修改您的问题(尽管有人回答了您的问题, 您将失去编辑问题的能力-但是,如果发生这种情况,您可以在评论中保留更多详细信息。)

最后,如果您希望与读者保持联系,请考虑添加一个 图片到您的个人资料。 操作方法如下: https://www.youtube.com/watch?v=F5JdUbyjfMA&list=PLpQebylwrdhs5 h6RtymfDpoz3vDS 。 通过使用您的照片来个性化个人资料,可以鼓励读者做出回应。

亲切的问候

Katarina(SAP社区主持人)

一周热门 更多>