如何编写CRM Web UI上的编辑按钮程序?

2020-09-27 08:38发布

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

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


您好专家,
我的任务是创建自定义表格和自定义结构。

通过SM34将自定义类附加到自定义组件。

通过GENIL_MODEL_EDITOR将自定义结构附加到组件。

创建自定义UI组件并将模型分配给ui组件。

我的问题是,当用户单击"编辑"按钮时,视图页面中的数据未得到编辑。

我写了代码,但是工作不正常,请提出任何建议。

下面是我的代码:

方法if_bsp_wd_toolbar_callback〜get_buttons。

调用方法super-> if_bsp_wd_toolbar_callback〜get_buttons
RECEIVING
rt_buttons = rt_buttons。

数据:ls_button TYPE crmt_thtml 引用cl_crm_bol_entity。

lr_employee?= me-> typed_context-> zemployee-> collection_wrapper-> get_current()。

清除ls_button。


ls_button-on_click ='edit '。
ls_button-type = cl_thtmlb_util => gc_icon_edit。
ls_button-page_id = me-> component_id。

如果lr_employee已绑定并且view_group_context-> is_any_view_editable()= abap_false
AND lr -> is_change_allowed()= abap_true。
已启用ls_button = abap_true。
ELSE。
已启用ls_button = abap_false。
ENDIF。
附加ls_button至rt_buttons。

清除ls_button。

结束方法。

和eh_on编辑的另一个代码如下:

方法eh_onedit。

数据:lr_entity类型参考cl_crm_bol_entity。

lr_entity?= me-> typed_context-> zemployee-> collection_wrapper-> get_current()。

检查lr_entity是否绑定。

检查lr_entity-> is_change_allowed()= abap_true。


lr_entity-> lock()。

IF lr_entity-> is_locked()= abap_false。

我- > view_group_context-> reset()。

ELSE。
me-> view_group_context-> set_all_editable()。

ENDIF。

结束方法。

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

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


您好专家,
我的任务是创建自定义表格和自定义结构。

通过SM34将自定义类附加到自定义组件。

通过GENIL_MODEL_EDITOR将自定义结构附加到组件。

创建自定义UI组件并将模型分配给ui组件。

我的问题是,当用户单击"编辑"按钮时,视图页面中的数据未得到编辑。

我写了代码,但是工作不正常,请提出任何建议。

下面是我的代码:

方法if_bsp_wd_toolbar_callback〜get_buttons。

调用方法super-> if_bsp_wd_toolbar_callback〜get_buttons
RECEIVING
rt_buttons = rt_buttons。

数据:ls_button TYPE crmt_thtml 引用cl_crm_bol_entity。

lr_employee?= me-> typed_context-> zemployee-> collection_wrapper-> get_current()。

清除ls_button。


ls_button-on_click ='edit '。
ls_button-type = cl_thtmlb_util => gc_icon_edit。
ls_button-page_id = me-> component_id。

如果lr_employee已绑定并且view_group_context-> is_any_view_editable()= abap_false
AND lr -> is_change_allowed()= abap_true。
已启用ls_button = abap_true。
ELSE。
已启用ls_button = abap_false。
ENDIF。
附加ls_button至rt_buttons。

清除ls_button。

结束方法。

和eh_on编辑的另一个代码如下:

方法eh_onedit。

数据:lr_entity类型参考cl_crm_bol_entity。

lr_entity?= me-> typed_context-> zemployee-> collection_wrapper-> get_current()。

检查lr_entity是否绑定。

检查lr_entity-> is_change_allowed()= abap_true。


lr_entity-> lock()。

IF lr_entity-> is_locked()= abap_false。

我- > view_group_context-> reset()。

ELSE。
me-> view_group_context-> set_all_editable()。

ENDIF。

结束方法。

付费偷看设置
发送
2条回答
四川大学会员
1楼-- · 2020-09-27 09:15

嗨,

让我们以销售订单为例

在CL_BT115H_S_DETAILS_IMPL类的EH_ONEDIT方法中,它具有锁定实体的代码,例如

如果lr_ent-> is_locked()= abap_true。

我-> view_group_context-> set_view_editable(me)。

lr_vgc?= view_group_context-> get_dependant_vg_context()。

lr_vgc-> set_all_editable()。

否则。

lr_ent-> lock()。

如果lr_ent-> is_locked()等于abap_true。

view_group_context-> set_view_editable(me)。

lr_vgc?= view_group_context-> get_dependant_vg_context()。

lr_vgc-> set_all_editable()。

endif。

endif。

然后在定义按钮的方法(如IF_BSP_WD_TOOLBAR_​​CALLBACK〜GET_BUTTONS)中,它具有用于检查实体是否被锁定的代码。 如果锁定,则该按钮启用。

实施类CL_BT115H_S_SOHOVERVIEW_IMPL-> IF_BSP_WD_TOOLBAR_​​CALLBACK〜GET_BUTTONS

* SAVE按钮(新概念:对象锁定后即启用SAVE)

如果lv_archived = abap_false。

ls_button-type = cl_thtmlb_util => gc_icon_save。

ls_button-on_click ='保存'。

ls_button-page_id = me-> component_id。

lr_tx = lr_entity-> get_transaction()。

如果lr_entity已绑定。

ls_button-enabled = lr_entity-> is_locked()。

ENDIF。

如果lv_archived = abap_false。

在rt按钮的APPEND中添加ls_button。

ENDIF。

清除ls_button。

希望以上信息对您有帮助。

路亽曱_Ryan
2楼-- · 2020-09-27 09:06

Hello Harish,

我很高兴它能正常工作:-)请接受我提供的答案。

最好的问候,
Varun Agarwal

一周热门 更多>