OO ALV 设置搜索帮助的三种方式 ONF4 EVENT
一、在 FIELDCAT 中设置参照
二、CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST '
三、CALL FUNCTION ' HELP_VALUES_GET_WITH_TABLE '
在对OO ALV 设置搜索帮助的流程
1.注册fieldcat 需要 实现搜索帮助的字段
LS_FIELSCAT-F4AVAILABL = 'X'.
2.注册 ONF4事件
CLASS LCL_EVENT DEFINITION .PUBLIC SECTION.METHODS: HANDLE_ONF4 FOR EVENT ONF4 OF CL_GUI_ALV_GRIDIMPORTING E_FIELDNAMEES_ROW_NOER_EVENT_DATASENDER .
ENDCLASS .
CLASS LCL_EVENT IMPLEMENTATION .METHODS HANDLE_ONF4 .PERFORM FM_HANDLE_ONF4 USING E_FIELDNAMEES_ROW_NOER_EVENT_DATASENDER .ENDMETHOD.ENDCLASS .PERFORM FM_HANDLE_ONF4 USING E_FIELDNAME TYPE LVC_FNAMEES_ROW_NO TYPE LVC_S_ROIDER_EVENT_DATA TYPE REF TO CL_ALV_EVENT_DATASENDER TYPE REF TO CL_GUI_ALV_GRID.CASE ...ENDFORM.SET HANDLER PO_EVENT->HANDLE_ONF4 FOR CL_GUI_ALV_GRID .
3.注册 ALV中的字段( PBO)
PERFORM REGISTER_F4 CHANGING GS_ALV TYPE REF TO CL_ALV_GRID.DATA IT_F4 TYPE LVC_T_F4 .DATA IS_F4 TYPE LVC_S_F4 .CLEAR IS_F4 .IS_F4-FIELDNAME = 'MATNR'.IS_F4-REGISTER = 'X' .IS_F4-GETBEFORE = 'X'.IS_F4-CHANGEAFTER = 'X'.INSERT IS_F4 INTO TABLE IT_F4 .CLEAR IS_F4 ......CALL METHOD GS_ALV->REGISTER_F4_FOR_FIELDSEXPORTINGIT_F4 = IT_F4[] .
ENDFORM.
4.具体实现
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST '
FORM HELP_F4 TABLES PT_TABUSING PE_FIELDNAME TYPE LVC_FNAMEPS_ROW_NO TYPE LVC_S_ROIDPR_EVENT_DATA TYPE REF TO CL_ALV_EVENT_DATA .DATA: LT_RETURN TYPE TABLE OF DDSHRETVAL WITH HEADER LINE ,LS_MODI TYPE LVC_S_MODI .FIELD-SYMBOLS: <LV_ITAB> TYPE LVC_T_MODI ."获取搜索帮助数据 存入表LT_VALUE_TAB CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTING
* DDIC_STRUCTURE = ' 'RETFIELD = 'FIELDNAME
* PVALKEY = ' '
* DYNPPROG = ' '
* DYNPNR = ' '
* DYNPROFIELD = ' '
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ' 'VALUE_ORG = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =TABLESVALUE_TAB = LT_VALUE_TAB
* FIELD_TAB =RETURN_TAB = LT_RETURN
* DYNPFLD_MAPPING =EXCEPTIONSPARAMETER_ERROR = 1NO_VALUES_FOUND = 2OTHERS = 3.IF SY-SUBRC <> 0.
* Implement suitable error handling hereENDIF.PR_EVENT_DATA->M_EVENT_HANDLED = GC_X.ASSIGN PR_EVENT_DATA->M_DATA->* TO <LV_ITAB> .READ TABLE LT_RETURN INDEX 1.IF SY-SUBRC EQ 0 .LS_MODI-ROW_ID = PS_ROW_NO-ROW_ID .LS_MODI-FIELDNAME = PV_FIELDNAME .LS_MODI-VALUE = LT_RETURN-FIELDVAL.APPEND LS_MODI TO <LV_ITAB> .ENDIF.
ENDFORM.
CALL FUNCTION ' HELP_VALUES_GET_WITH_TABLE '
DATA: LT_FIELDS LIKE help_value OCCURS 0 WITH HEADER LINE. DATA: BEGIN OF LT_VALUETAB OCCURS 0, string(100), END OF LT_VALUETAB. DATA: BEGIN OF lt_MATNR OCCURS 0, MATNR LIKE MARA-MATNR, MAKTX LIKE MAKT-MAKTX, END OF lt_MATNR.SELECT MARA~MATNR MAKT~MAKTX INTO CORRESPONDING FIELDS OF TABLE lt_MATNR FROM MARA INNER JOIN MAKT ON MAKT~MAKTX = MARA~MATNR . LT_FIELDS-tabname = 'MARA'. LT_FIELDS-fieldname = 'MATNR'. LT_FIELDS-selectflag = 'X'. APPEND LT_FIELDS.CLEAR LT_FIELDS. LT_FIELDS-tabname = 'MAKT'. LT_FIELDS-fieldname = 'MAKTX'. APPEND LT_FIELDS.CLEAR LT_FIELDS. LOOP AT lt_MATNR. LT_VALUETAB-string = lt_MATNR-MATNR. APPEND LT_VALUETAB.CLEAR LT_VALUETAB. LT_VALUETAB-string = lt_MATNR-MAKTX. APPEND LT_VALUETAB.CLEAR LT_VALUETAB. ENDLOOP. CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE' EXPORTING title_in_values_list = '' titel = '请选择' IMPORTING select_value = PS_MATNR TABLES fields = LT_FIELDS valuetab = LT_VALUETAB. IF sy-subrc NE 0. MESSAGE 'No value selected!' TYPE 'S'. ENDIF.
OO ALV 设置搜索帮助的三种方式 ONF4 EVENT相关推荐
- Linux中设置服务自启动的三种方式
有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s 在/etc/rc.d/rc*.d目录中建立/e ...
- Linux中设置服务自启动的三种方式(转)
有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s 在/etc/rc.d/rc*.d目录中建立/e ...
- LaTeX中设置字体颜色的三种方式
以下的三种方式都需要导入color包,即\usepackage{color}. 实验环境:window10,TexLive2019. 1.使用系统自定义的颜色 使用语法: \textcolor{red ...
- linux 运行apj,Linux中设置服务自启动的三种方式
有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s 在/etc/rc.d/rc*.d目录中建立/e ...
- Elasticsearch 设置默认值的三种方式
1.实战问题 在使用 Elasticsearch 过程中,不免还会有 Mysql 等关系型数据库的使用痕迹,以下两个都是实战开发问到的问题: Elasticsearch 新增字段,能在 Mapping ...
- xp系统怎样启动搜索服务器,XP系统使用搜索功能的三种方式
教你怎样找到WinXP搜索?我们的电脑里放了很多文件,如果想要找到自己需要的哪个文件,找起来还真的不好找.那这时候我们就可以用搜索功能来搜索,这样找起来就方便多了.最近有使用WinXP系统的用户,想使 ...
- QT设置背景图片的三种方式
QPalette的方法 基本步骤: (1). 首先设置QWidget的autoFillBackground属性为真 (2). 然后定义一个QPalette对象,设置QPalette对象的背景属性(颜色 ...
- linux 设置开机启动项三种方式
有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务. 在解问题之前先来看看Linux的启动流程 Linux的启动流程 主要顺序就是: 1. 加载内核 2. 启动初始化进程 3. 确定运 ...
- #![feature]` may not be used on the stable release channel 问题解决及设置Rust Channel的三种方式
今天在编译一个Rust开源项目时报了下面的错误: Compiling base_proc_macro v0.1.0 (/data/code/rust/tensorbase/crates/base/pr ...
最新文章
- 2021年春季学期-信号与系统-第十三次作业参考答案-第十小题
- linux shell 判断字符串是否在数组中
- Arrays.asList(arr)使用注意事项
- MongoDB配置参数说明
- 完全平方数—leetcode279
- Excel日期格式在matlab中的转换
- python3爬虫学习笔记
- php mysql 性能测试工具下载_MySQL压力测试工具_MySQL
- js+springMVC 提交数组数据到后台
- 西门子S7系列中间人攻击:PLC探测和流量分析(二)
- Oracle分析函数之Rank函数
- 51单片机实现计算器程序
- CIKM 2020 | FANG:利用社会语境及其图表示进行假新闻检测
- adams2015怎么把工具栏打开_PDF旋转后保存,打开为什么还是旋转前的方向?
- 绘制confusion matrix的R实现
- 公路自行车入门级推荐java_想玩公路自行车,有没有入门推荐?
- 记一次npm发包失败的经历
- 操作系统1-6章作业
- 管理之旅(01)游学阿里
- 2021面试题——微信小程序面试题