将"自定义"按钮添加到" ALV网格标准"工具栏

2020-08-16 02:49发布

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

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


你好大师,

我想在Alv标准工具栏上添加一个新按钮。 请帮助我完成该过程。

此致

digvijay

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

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


你好大师,

我想在Alv标准工具栏上添加一个新按钮。 请帮助我完成该过程。

此致

digvijay

付费偷看设置
发送
5条回答
一只江湖小虾
1楼 · 2020-08-16 03:13.采纳回答

您好Sharma,

要在alv工具栏上创建按钮,我们必须使用事件处理程序

检查以下代码:

我们定义了一个本地课程

 类别LCL_EVENT定义。

   公共部分。
     方法:工具栏为CL_GUI_ALV_GRID的活动工具栏
                      正在导入E_OBJECT,
              USER_COMMAND FOR CLENT_USER_COMMAND,活动CL_GUI_ALV_GRID
                      正在导入E_UCOMM。

 ENDCLASS。

 
 类别LCL_EVENT的实现。

   方法工具栏。
     WA_TOOL-FUNCTION ='ZFC1'。
     WA_TOOL-TEXT ='TEST'。
     WA_TOOL-ICON ='@ EA @'。
     将WA_TOOL附加到E_OBJECT-> MT_TOOLBAR。
   终结法。  "显示

   方法:USER_COMMAND。
     如果E_UCOMM ='ZFC1'。
       消息"这是测试事件"类型" I"。
     万一。
   终结法。  " USER_COMMAND

 ENDCLASS。  " LCL_EVENT实施
 
 创建对象对象。
 设置处理程序:OBJ->工具栏用于ALV。
 

此致

Kumar M

还请记住设置USER_COMMAND方法的事件处理程序,以便能够使用E_UCOMM值。

创建对象go_alv。
   SET HANDLER:go_event_handler-> TOOLBAR FOR go_alv。
   SET HANDLER:go_event_handler-> USER_COMMAND FOR go_alv。

此致

Fran K。

huskylover
3楼-- · 2020-08-16 03:25

 Hello digvijay,

要实现这一点,

第一步。

转到SE41,将程序名称命名为SAPLKKBL,状态命名为STANDARD_FULLSCREEN,然后单击应用程序工具栏中的COPY STATUS(ctrl + f6)按钮。 将显示一个弹出窗口,然后将其显示给"程序和状态"。

它将标准工具栏复制到您的程序。现在将程序名称作为程序,将状态作为程序状态,单击"更改"按钮。 在应用程序工具栏中添加新按钮。

第二步

1。定义ALV事件的内部表并构建事件表 像下面这样,并通过REUSE_ALV_GRID_DISPLAY或REUSE_ALV_LIST_DISPLAY传递该表。

wa_events-name ='PF_STATUS_SET'。

wa_events-form ='PF_STATUS_SET'。

附加wa_events到it_events。

清除wa_events。

wa_events-name ='USER_COMMAND'。

wa_events-form ='USER_COMMAND'。

将wa_events添加到it_events。

清除wa_events。

2。 以上事件的回调例程应如下所示。

&----


*&PF_STATUS_SET表格

&----


  • 文本

----


  • -> RT_EXTAB文本

----


FORM pf_status_set使用rt_extab 类型slis_t_extab。

设置PF状态" ZTEST"。

  • 1。 设置Pf状态ZTEST时,将删除标准应用程序工具。

  • 2。 转到SE41,给出程序" SAPLKKBL",状态为" STANDARD_FULLSCREEN"。

  • 3。 将状态从这些状态复制到我们程序的ZTEST。 现在,您将看到所有标准功能。

ENDFORM。 " PF_STATUS_SET

----


  • FORM USER_COMMAND *

- -


  • -> R_UCOMM *

  • -> RS_SELFIELD *

----


使用r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield来形成用户命令。

  • < p>检查功能代码

例r_ucomm。

'DISPLAY'时。"用户在其上按SAVE

LOOP,将其输出到INTO wa_output。

如果wa_output-select EQ'X'。

  • 处理已选择的记录

< p>写入wa_output。

ENDIF。

ENDLOOP。

ENDCASE。

ENDFORM。 " user_command

3。检查此程序以了解有关BCALV_TEST_LIST_EVENTS事件的更多信息。

感谢

Venkat

# p#

嗨,

如果您将ALV与Fun Mod一起使用,则可以将其添加到PF状态中,

如果您使用的是OOPS ALV,请查看我撰写的此Wiki:

https://wiki.sdn.sap.com/ wiki/pages/viewpage.action?pageId = 60654876

谢谢

克里希纳..

CJones
4楼-- · 2020-08-16 03:17

嗨,

请检查SE38中BCALV程序集下的ALV网格示例程序。

< p>请检查程序BCALV_TEST_GRID_TOOLBAR。 有关如何在工具栏中添加按钮的示例。

致谢

Ankur Parab

编辑者:Ankur Parab,2009年6月7日 下午9:53

木偶小白
5楼-- · 2020-08-16 03:24

嗨Digvijay,

为此,我们必须使用" cl_gui_alv_grid"的"工具栏"事件和对" cl_alv_event_toolbar_set"类及其属性" mt_toolbar"的参数" e_object"的引用。

请参见下面的代码...

在"定义"部分中,只需将方法声明为

方法handle_toolbar用于cl_gui_alv_grid导入e_object的事件工具栏。

在"实现"部分,将逻辑包括为

METHOD handle_toolbar。

DATA ls_toolbar TYPE stb_button。

ls_toolbar-function ='PB1'。

ls_toolbar-icon = icon_create_text。

ls_toolbar-quickinfo ='显示所选行'。

ls_toolbar-butn_type = 0。

ls_toolbar-disabled = 1。

ls_toolbar-text ='显示所选行'。

ls_toolbar-checked =''。

APPEND将ls_toolbar转到e_object-> mt_toolbar。

清除ls_toolbar。

ENDMETHOD。

/注册处理程序

SET HANDLER ob-> handb_toolbar for vbak_grid。

希望这对您有所帮助。

一周热门 更多>