自定义PF状态按钮不起作用。

2020-09-09 13:28发布

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

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


大家好

在下面的代码中USER_COMMAND表格不起作用。 单击自定义PF-STATUS按钮时,没有任何响应。 在调试中,指针不会进入f_user_cmd FORM。

我激活了PF-STATUS中的GUI按钮。

任何人都可以找出问题所在。

谢谢。

 FORM f_top_of_page。
   数据:it_top TYPE slis_t_listheader,
         wa_top喜欢it_top的线。
  
   wa_top-typ ='H'。
   wa_top-info ='材料和植物'。
   附加wa_top到it_top。

   通话功能" REUSE_ALV_COMMENTARY_WRITE"
     出口
       it_list_commentary = it_top。
   ENDFORM。  " F_TOP_OF_PAGE

 *&------------------------------------------------  --------------------- *
 *&表格F_PF_STATUS
 *&------------------------------------------------  --------------------- *
 FORM f_pf_status使用rt_extab类型slis_t_extab。
   设置PF-STATUS'NEWGUI'。
 ENDFORM。  " F_PF_STSTUS
 *&------------------------------------------------  --------------------- *
 *&表格F_USER_CMD
 *&------------------------------------------------  --------------------- *
 FORM f_user_cmd使用r_ucomm像sy-ucomm
                       rs_selfield TYPE slis_selfield。
   案例r_ucomm。
     当" PDF"。
       执行get_pdf。
     当"邮件"。
       执行send_mail。
   结束。
 ENDFORM。  " F_USER_CMD

 *&------------------------------------------------  --------------------- *
 *&表格ALV_EVENTS
 *&------------------------------------------------  --------------------- *
 格式alv_events。
   wa_event-name ='PF_STATUS_SET'。
   wa_event-form ='F_PF_STATUS'。
   附加wa_event至it_event。
   清除wa_event。

   wa_event-name ='USER_COMMAND'。
   wa_event-form ='F_USER_CMD'。
   附加wa_event至it_event。
   清除wa_event。

   wa_event-name ='TOP_OF_PAGE'。
   wa_event-form ='F_TOP_OF_PAGE'。
   附加wa_event至it_event。
 ENDFORM。  " ALV_EVENTS
 *&------------------------------------------------  --------------------- *
 *&表格display_alv
 *&------------------------------------------------  --------------------- *
 FORM display_alv。
   通话功能'REUSE_ALV_GRID_DISPLAY'
    出口
      i_callback_program ='ZALV_PDF_MAIL'
      is_layout = wa_layout
      it_fieldcat = it_fldcat
      IT_EVENTS = it_event
     桌子
       t_outtab = it_final
    例外情况
      PROGRAM_ERROR = 1
      其他= 2
           。
   如果sy-subrc <> 0。
 *在这里实施适当的错误处理
   万一。
 ENDFORM。  " DISPLAY_ALV
 

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

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


大家好

在下面的代码中USER_COMMAND表格不起作用。 单击自定义PF-STATUS按钮时,没有任何响应。 在调试中,指针不会进入f_user_cmd FORM。

我激活了PF-STATUS中的GUI按钮。

任何人都可以找出问题所在。

谢谢。

 FORM f_top_of_page。
   数据:it_top TYPE slis_t_listheader,
         wa_top喜欢it_top的线。
  
   wa_top-typ ='H'。
   wa_top-info ='材料和植物'。
   附加wa_top到it_top。

   通话功能" REUSE_ALV_COMMENTARY_WRITE"
     出口
       it_list_commentary = it_top。
   ENDFORM。  " F_TOP_OF_PAGE

 *&------------------------------------------------  --------------------- *
 *&表格F_PF_STATUS
 *&------------------------------------------------  --------------------- *
 FORM f_pf_status使用rt_extab类型slis_t_extab。
   设置PF-STATUS'NEWGUI'。
 ENDFORM。  " F_PF_STSTUS
 *&------------------------------------------------  --------------------- *
 *&表格F_USER_CMD
 *&------------------------------------------------  --------------------- *
 FORM f_user_cmd使用r_ucomm像sy-ucomm
                       rs_selfield TYPE slis_selfield。
   案例r_ucomm。
     当" PDF"。
       执行get_pdf。
     当"邮件"。
       执行send_mail。
   结束。
 ENDFORM。  " F_USER_CMD

 *&------------------------------------------------  --------------------- *
 *&表格ALV_EVENTS
 *&------------------------------------------------  --------------------- *
 格式alv_events。
   wa_event-name ='PF_STATUS_SET'。
   wa_event-form ='F_PF_STATUS'。
   附加wa_event至it_event。
   清除wa_event。

   wa_event-name ='USER_COMMAND'。
   wa_event-form ='F_USER_CMD'。
   附加wa_event至it_event。
   清除wa_event。

   wa_event-name ='TOP_OF_PAGE'。
   wa_event-form ='F_TOP_OF_PAGE'。
   附加wa_event至it_event。
 ENDFORM。  " ALV_EVENTS
 *&------------------------------------------------  --------------------- *
 *&表格display_alv
 *&------------------------------------------------  --------------------- *
 FORM display_alv。
   通话功能'REUSE_ALV_GRID_DISPLAY'
    出口
      i_callback_program ='ZALV_PDF_MAIL'
      is_layout = wa_layout
      it_fieldcat = it_fldcat
      IT_EVENTS = it_event
     桌子
       t_outtab = it_final
    例外情况
      PROGRAM_ERROR = 1
      其他= 2
           。
   如果sy-subrc <> 0。
 *在这里实施适当的错误处理
   万一。
 ENDFORM。  " DISPLAY_ALV
 
付费偷看设置
发送
5条回答
天桥码农
1楼-- · 2020-09-09 14:01

请勿使用FM。 使用CL_SALV_TABLE或CL_GUI_ALV_GRID。 然后,您不仅在使用现代方法,而且不需要PF-STATUS->您可以直接在网格中添加按钮。

代楠1984
2楼-- · 2020-09-09 13:50

激活CUA界面=所有GUI状态和 该程序的GUI标题:

您的按钮是否像" ACTIVE"一样 在下面的两个屏幕截图中?

如果未激活,则显示为红色 在用户界面"应用程序工具栏"中的项目列表中(无法附加我不知道为什么的图像-注释中最多只能包含2张图像?)。

如果一切正常 然后我看不出问题是什么,请添加更多详细信息,例如您是否从另一个(以及如何)调用程序,其他标准按钮是否触发F_PF_STATUS,是否检查了SAP注释,是否可以创建新程序 从头开始,看看错误是否仍然出现...

绿领巾童鞋
3楼-- · 2020-09-09 14:09

为什么要使用过时的FORM? 为什么在地球上它们都以f_为前缀-这会增加什么值或含义?

粗暴的香蕉
4楼-- · 2020-09-09 14:02

谢谢罗西。

我根据您的屏幕截图将"功能类型"更改为"普通应用程序功能"(以前我将它们设置为"本地GUI功能"),并写了BREAK-POINT。 现在,如果我单击按钮,它们将触发调试器。

但是要测试,我正在使用WRITE语句编写一些文本,但这没有发生。

我不能在ALV报告中使用WRITE语句。

谢谢。

Nan4612
5楼-- · 2020-09-09 13:59

谁告诉你这给了你非常糟糕的建议。 没有任何理由不首先学习OO。 您只需要了解过程,即可维护或遵循旧程序。 但是使用CL_SALV_TABLE并不是面向对象的程序-只是以正确的方式调用一堆方法。 阅读有关它的一些博客。

许多SAP都是完全用面向对象编写的,尤其是新领域。 如果您不知道,那么您将受到严重限制。 我绝不会聘用没有在ABAP对象中编程的ABAP开发人员。

一周热门 更多>