2020-08-16 02:49发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好大师,
我想在Alv标准工具栏上添加一个新按钮。 请帮助我完成该过程。
此致
digvijay
您好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。
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表格 p> &----
要实现这一点,
第一步。
转到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。
2。 以上事件的回调例程应如下所示。
&----
*&PF_STATUS_SET表格 p>
文本
----
-> 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来形成用户命令。
例r_ucomm。
'DISPLAY'时。"用户在其上按SAVE
LOOP,将其输出到INTO wa_output。
如果wa_output-select EQ'X'。
处理已选择的记录
ENDIF。
ENDLOOP。
ENDCASE。
ENDFORM。 " user_command
3。检查此程序以了解有关BCALV_TEST_LIST_EVENTS事件的更多信息。
感谢
Venkat
嗨,
如果您将ALV与Fun Mod一起使用,则可以将其添加到PF状态中,
如果您使用的是OOPS ALV,请查看我撰写的此Wiki:
https://wiki.sdn.sap.com/ wiki/pages/viewpage.action?pageId = 60654876
谢谢
克里希纳..
请检查SE38中BCALV程序集下的ALV网格示例程序。
致谢
Ankur Parab
编辑者:Ankur Parab,2009年6月7日 下午9:53
嗨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。
希望这对您有所帮助。
最多设置5个标签!
您好Sharma,
要在alv工具栏上创建按钮,我们必须使用事件处理程序
检查以下代码:
我们定义了一个本地课程
此致
Kumar M
还请记住设置USER_COMMAND方法的事件处理程序,以便能够使用E_UCOMM值。
此致
Fran K。
文本
----
-> 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来形成用户命令。
例r_ucomm。
'DISPLAY'时。"用户在其上按SAVE
LOOP,将其输出到INTO wa_output。
如果wa_output-select EQ'X'。
处理已选择的记录
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
谢谢
克里希纳..
嗨,
请检查SE38中BCALV程序集下的ALV网格示例程序。
< p>请检查程序BCALV_TEST_GRID_TOOLBAR。 有关如何在工具栏中添加按钮的示例。致谢
Ankur Parab
编辑者:Ankur Parab,2009年6月7日 下午9:53
嗨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。
希望这对您有所帮助。
一周热门 更多>