如何在CRM WEB UI中禁用/禁用END按钮

2020-09-05 17:27发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)在编辑模式下如何为特定视图禁用C...

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

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


在编辑模式下如何为特定视图禁用CRM WEB UI的Greyout END按钮

1条回答
hongfeng1314
2020-09-05 18:13 .采纳回答

Hello Ligin,

您可以这样做:

1在MIME存储库中创建新的Javascript文件

这是禁用结束按钮的js函数。 文件的路径是这样的:SAP-> BC-> BSP->(您的名称空间)-> PUBLIC

脚本:

 function disableTheEndButton(setDisabled){
                //停用结束按钮
                 var endButton = parent.frames [" HeaderFrame"]。$(" a [id $ ='End']");
                 endButton.removeClass(" th-bt-text")。addClass(" th-bt-text-dis");
                 endButton.removeProp(" onclick");
                 endButton.removeProp(" onmousedown");
                 endButton.removeAttr(" onclick");
                 endButton.removeAttr(" onmousedown");

//您需要通过变量'setDisabled'进行区分!
//您需要记住onclick和onmousedown事件处理程序的内容,以便稍后再进行设置-这里可能存在更优雅的解决方案,如果您找到一个,请告诉我
 } 

2将您的JS文件添加到自定义

SPRO-> CRM-> UI框架->定义JS文件的路径

3在视图控制器上创建一个公开的方法,如果视图处于编辑模式,该方法将返回

4创建AJAX回调类

创建一个实现IF_CRM_WEB_CALLBACK接口的新类。 在方法IF_CRM_WEB_CALLBACK〜HANDLE_REQUEST中,您将获得控制器,可以在其中调用步骤3的公共方法。

您可以这样返回'X'/''

"在响应对象中设置文本
   ir_server->响应-> set_cdata(lv_editable)。

5在您的视图中添加ABAP/Javascript

数据:
  lv_page_context类型参考cl_bsp_page_context。


 lv_page_context?= me-> _ m_page_context。

 <脚本>

 函数checkIfEditable(){
 <%
 cl_crm_web_utility => create_service_script(
                       iv_handler_class_name =''
                       iv_controller_id = lv_page_context-> m_page_id
                       iv_js_callback_function ='setEndButtonEnabled')。
 %>
 }

 函数setEndButtonEnabled(reqObj){
   var setDisabled = reqObj.request.responseText;
  
   window.parent.frames [0] .disableTheEndButton(setDisabled);
  
  //一秒钟后再次轮询
   setTimeout(checkIfEditable,1000);
 }

 checkIfEditable();
 

 如果有帮助,请奖励... 

一周热门 更多>