一、在 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相关推荐

  1. Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  2. Linux中设置服务自启动的三种方式(转)

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  3. LaTeX中设置字体颜色的三种方式

    以下的三种方式都需要导入color包,即\usepackage{color}. 实验环境:window10,TexLive2019. 1.使用系统自定义的颜色 使用语法: \textcolor{red ...

  4. linux 运行apj,Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  5. Elasticsearch 设置默认值的三种方式

    1.实战问题 在使用 Elasticsearch 过程中,不免还会有 Mysql 等关系型数据库的使用痕迹,以下两个都是实战开发问到的问题: Elasticsearch 新增字段,能在 Mapping ...

  6. xp系统怎样启动搜索服务器,XP系统使用搜索功能的三种方式

    教你怎样找到WinXP搜索?我们的电脑里放了很多文件,如果想要找到自己需要的哪个文件,找起来还真的不好找.那这时候我们就可以用搜索功能来搜索,这样找起来就方便多了.最近有使用WinXP系统的用户,想使 ...

  7. QT设置背景图片的三种方式

    QPalette的方法 基本步骤: (1). 首先设置QWidget的autoFillBackground属性为真 (2). 然后定义一个QPalette对象,设置QPalette对象的背景属性(颜色 ...

  8. linux 设置开机启动项三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务. 在解问题之前先来看看Linux的启动流程 Linux的启动流程 主要顺序就是: 1. 加载内核 2. 启动初始化进程 3. 确定运 ...

  9. #![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 ...

最新文章

  1. 2021年春季学期-信号与系统-第十三次作业参考答案-第十小题
  2. linux shell 判断字符串是否在数组中
  3. Arrays.asList(arr)使用注意事项
  4. MongoDB配置参数说明
  5. 完全平方数—leetcode279
  6. Excel日期格式在matlab中的转换
  7. python3爬虫学习笔记
  8. php mysql 性能测试工具下载_MySQL压力测试工具_MySQL
  9. js+springMVC 提交数组数据到后台
  10. 西门子S7系列中间人攻击:PLC探测和流量分析(二)
  11. Oracle分析函数之Rank函数
  12. 51单片机实现计算器程序
  13. CIKM 2020 | FANG:利用社会语境及其图表示进行假新闻检测
  14. adams2015怎么把工具栏打开_PDF旋转后保存,打开为什么还是旋转前的方向?
  15. 绘制confusion matrix的R实现
  16. 公路自行车入门级推荐java_想玩公路自行车,有没有入门推荐?
  17. 记一次npm发包失败的经历
  18. 操作系统1-6章作业
  19. 管理之旅(01)游学阿里
  20. 2021面试题——微信小程序面试题

热门文章

  1. SCI、EI、IEEE、检索网站的区别
  2. Java基础学习之函数式编程Comsumer接口(JDK8)
  3. 弗洛伊德求最小简单环
  4. 积分(Integral)
  5. 解决移动端滑动方向相反
  6. 干货 | 京东云弹性伸缩功能实践
  7. JPBC库的使用实例——BLS签名
  8. 使用LR和XGBoost跑通criteo点击率预测数据集
  9. LaTex算法代码排版-algorithm2e
  10. MacBook Pro维修过程