博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CRM WEB UI 04明细界面添加按钮
阅读量:4353 次
发布时间:2019-06-07

本文共 2348 字,大约阅读时间需要 7 分钟。

好了,这个是个人测试玩的,略风骚。。。请自行鉴阅

1.明细的组件控制器中增加全局控制属性字段:

2.概览页中工具栏相关方法,重定义GET_BUTTONS

METHOD IF_BSP_WD_TOOLBAR_CALLBACK~GET_BUTTONS.    DATA:LV_LOCK   TYPE ABAP_BOOL VALUE ABAP_TRUE,         LV_ENABLE TYPE ABAP_BOOL VALUE ABAP_FALSE.    DATA:LR_COM   TYPE REF TO ZL_ZLYTEST0_BSPWDCOMPONE3_IMPL.    DATA:RW_BUTTON TYPE CRMT_THTMLB_BUTTON_EXT.    CALL METHOD SUPER->IF_BSP_WD_TOOLBAR_CALLBACK~GET_BUTTONS      RECEIVING        RT_BUTTONS = RT_BUTTONS.    LR_COM ?= ME->COMP_CONTROLLER.    CHECK LR_COM IS BOUND.    IF LR_COM->DISPLAY = ABAP_TRUE.      LV_ENABLE = ABAP_FALSE.    ELSE.      LV_ENABLE = ABAP_TRUE.    ENDIF.    RW_BUTTON-TYPE = CL_THTMLB_UTIL=>GC_ICON_SAVE.    RW_BUTTON-ON_CLICK = 'SAVE'.    RW_BUTTON-PAGE_ID = ME->COMPONENT_ID.    RW_BUTTON-ENABLED = LV_ENABLE.    APPEND RW_BUTTON TO RT_BUTTONS.    RW_BUTTON-TYPE = CL_THTMLB_UTIL=>GC_ICON_CANCEL.    RW_BUTTON-ON_CLICK = 'CANCEL'.    RW_BUTTON-PAGE_ID = ME->COMPONENT_ID.    RW_BUTTON-ENABLED = LV_ENABLE.    APPEND RW_BUTTON TO RT_BUTTONS.  ENDMETHOD.

3.概览页中工具栏相关方法,重定义GET_NUMBER_OF_VISIBLE_BUTTONS

METHOD IF_BSP_WD_TOOLBAR_CALLBACK~GET_NUMBER_OF_VISIBLE_BUTTONS.    RV_RESULT = 9.  ENDMETHOD.

4.DETAIL视图的实现类中定义属性:

 

5.DETAIL视图中,重定义DO_PREPARE_OUTPUT

DATA:LS_BUTTON TYPE CRMT_THTMLB_BUTTON.    CALL METHOD SUPER->DO_PREPARE_OUTPUT.    REFRESH GT_BUTTON.    CLEAR:LS_BUTTON.    LS_BUTTON-TYPE = CL_THTMLB_UTIL=>GC_ICON_EDIT.    LS_BUTTON-TEXT = CL_WD_UTILITIES=>GET_OTR_TEXT_BY_ALIAS( 'CRM_UIU_BU/EDIT' ).    LS_BUTTON-ENABLED = ABAP_TRUE."此处可酌情控制    LS_BUTTON-ON_CLICK = 'EDIT'.    APPEND LS_BUTTON TO GT_BUTTON.  ENDMETHOD.

6.修改DETAIL的htm页面:用本地的变量控制配置页

<%@page language="abap" %><%@extension name="thtmlb" prefix="thtmlb" %><%@extension name="chtmlb" prefix="chtmlb" %><%@extension name="bsp" prefix="bsp" %><%data:LV_XML type STRING,     LV_DISPLAYMODE type STRING.     LV_DISPLAYMODE = CONTROLLER->VIEW_GROUP_CONTEXT->IS_VIEW_IN_DISPLAY_MODE( CONTROLLER ).     %>     

 7.创建DETAIL的事件处理器EDIT

METHOD EH_ONEDIT.    DATA:LR_COM   TYPE REF TO ZL_ZLYTEST0_BSPWDCOMPONE3_IMPL.    LR_COM ?= ME->COMP_CONTROLLER.    CHECK LR_COM IS BOUND.    IF LR_COM->DISPLAY = ABAP_TRUE.      LR_COM->DISPLAY = ABAP_FALSE.      VIEW_DISPLAY = ABAP_FALSE.    ELSE.      LR_COM->DISPLAY = ABAP_TRUE.      VIEW_DISPLAY = ABAP_TRUE.    ENDIF.  ENDMETHOD.

 

OK了

 

转载于:https://www.cnblogs.com/sapSB/p/6340916.html

你可能感兴趣的文章
Lowest Bit(虽然很简单)
查看>>
Git详细教程(2)---多人协作开发
查看>>
SQA
查看>>
【系统安全性】三、加密算法
查看>>
rabbitMQ学习(三)
查看>>
连接Oracle11g数据库时遇到无监听,网络适配器无法建立等问题的一些解决办法...
查看>>
form input限制
查看>>
SVN Berkeley DB Cannot allocate memory解决方案
查看>>
springboot 日志框架
查看>>
菜单栏按钮用控件的Name值在后台操作时出现异常解决
查看>>
Java集合
查看>>
vue中的组件传值
查看>>
Loader 和URLLoader的区别.
查看>>
世界级的安卓测试开发流!
查看>>
战略性情绪分析的5大数据来源
查看>>
Python-匿名函数
查看>>
关于foreach中对集合执行Add或者Remove操作引发枚举值被修改异常
查看>>
java学习笔记(1)
查看>>
event事件坐标
查看>>
C++ 常见面试题目
查看>>