点击此处---> 群内免费提供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。
结束方法。
嗨,
让我们以销售订单为例
在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。
希望以上信息对您有帮助。
Hello Harish,
我很高兴它能正常工作:-)请接受我提供的答案。
最好的问候,
Varun Agarwal
一周热门 更多>