zoukankan      html  css  js  c++  java
  • ALV增加search help的方法

    https://zhidao.baidu.com/question/446436722.html

    第一种办法:对表中某字段的引用,设置ref_table、ref_field,将自动触发该字段所带的搜索帮助。
    第二种办法:就是利用自定义代码来实现ALV的搜索帮助,显然它的功能更强大、更灵活。针对在OO ALV中实现搜索帮助,
    其主要步骤有:
    1、在ALV的事件处理类中添加个Method,其DEFINITION如下:
    handle_onf4 FOR EVENT onf4 OF cl_gui_alv_grid
    IMPORTING e_fieldname es_row_no er_event_data.
    其IMPLEMENTATION中就是我们希望执行的代码,用来弹出可选择对话框。e_fieldname代表用户点击了ALV的哪个字段来触发搜索帮助,es_row_no代表了当前行信息,
    es_row_no-row_id就是ALV中内表记录的INDEX。er_event_data代表了当前用户对ALV进行了哪些编辑的信息。在Method的最后,记得加上
    er_event_data->m_event_handled = 'X'.
    通知系统搜索事件处理完毕,这样就不会调用系统标准的Search Help。
    2、那就是对需要自定义搜索帮助的字段,设置其field catalog时:
    ls_fieldcat-f4availabl = 'X'.
    3、在创建ALV对象之后,要对需要自定义搜索帮助的字段进行注册。
    DATA: lt_f4 TYPE lvc_t_f4 WITH HEADER LINE.
    CLEAR lt_f4.
    lt_f4-fieldname = 'FIELD_NAME'.
    lt_f4-register = 'X'.
    lt_f4-chngeafter = 'X'.
    APPEND lt_f4.
    CALL METHOD mygrid->register_f4_for_fields
    EXPORTING
    it_f4 = lt_f4[].
    lvc_s_f4中的字段getbefore和changeafter应该代表是否触发data_changed事件。
    4、然后我们为其指定事件处理类(假设go_evt_receiver是自定义事件处理类的一个对象):
    CREATE OBJECT go_evt_receiver.
    SET HANDLER go_evt_receiver->handle_onf4 FOR go_alv_grid.

  • 相关阅读:
    链式前向星啊
    并 查 集 ! ! !
    看似很水的题--找画笔
    tarjan
    动态内存分配
    C++ 基础中的基础 ---- 引用
    STL 补档
    错题笔记和易错点提醒
    题解 P2253 【好一个一中腰鼓!】
    PAT-A1003
  • 原文地址:https://www.cnblogs.com/Intercalaryland/p/10801689.html
Copyright © 2011-2022 走看看