abap ALV字段怎么设置搜索帮助?
1个回答
2022-12-11 · 百度认证:北京惠企网络技术有限公司官方账号
关注
展开全部
第一种办法:对表中某字段的引用,设置ref_table、ref_field,将自动触发该字段所带的搜索帮助。\x0d\x0a第二种办法:就是利用自定义代码来实现ALV的搜索帮助,显然它的功能更强大、更灵活。针对在OO ALV中实现搜索帮助,\x0d\x0a其主要步骤有:\x0d\x0a1、在ALV的事件处理类中添加个Method,其DEFINITION如下:\x0d\x0a handle_onf4 FOR EVENT onf4 OF cl_gui_alv_grid\x0d\x0a IMPORTING e_fieldname es_row_no er_event_data.\x0d\x0a其IMPLEMENTATION中就是我们希望执行的代码,用来弹出可选择对话框。e_fieldname代表用户点击了ALV的哪个字段来触发搜索帮助,es_row_no代表了当前行信息,\x0d\x0aes_row_no-row_id就是ALV中内表记录的INDEX。er_event_data代表了当前用户对ALV进行了哪些编辑的信息。在Method的最后,记得加上\x0d\x0a er_event_data->m_event_handled = 'X'.\x0d\x0a通知系统搜索事件处理完毕,这样就不会调用系统标准的Search Help。\x0d\x0a2、那就是对需要自定义搜索帮助的字段,设置其field catalog时:\x0d\x0a ls_fieldcat-f4availabl = 'X'.\x0d\x0a3、在创建ALV对象之后,要对需要自定义搜索帮助的字段进行注册。\x0d\x0a DATA: lt_f4 TYPE lvc_t_f4 WITH HEADER LINE.\x0d\x0a CLEAR lt_f4.\x0d\x0a lt_f4-fieldname = 'FIELD_NAME'.\x0d\x0a lt_f4-register = 'X'.\x0d\x0a lt_f4-chngeafter = 'X'.\x0d\x0a APPEND lt_f4.\x0d\x0a CALL METHOD mygrid->register_f4_for_fields\x0d\x0a EXPORTING\x0d\x0a it_f4 = lt_f4[].\x0d\x0alvc_s_f4中的字段getbefore和changeafter应该代表是否触发data_changed事件。\x0d\x0a4、然后我们为其指定事件处理类(假设go_evt_receiver是自定义事件处理类的一个对象):\x0d\x0a CREATE OBJECT go_evt_receiver.\x0d\x0a SET HANDLER go_evt_receiver->handle_onf4 FOR go_alv_grid.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询