从全局状态栏传递FCODE在容器中执行cl_salv_table

2020-08-21 13:22发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

是否可以将功能代码(在本例中为Ctrl + F和Ctrl + G,以进行下一步搜索/查找)从全局状态栏传递到对接容器中的cl_salv_table? 我无法在cl_salv_table(set_screen_status)中将状态栏注册为工具栏。

如果不是,是否有人知道从ABAP端触发cl_salv_table的"查找"和"查找下一个" fcode的方法? 就像 set_fcode 方法一样。

谢谢。

Karsten

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

是否可以将功能代码(在本例中为Ctrl + F和Ctrl + G,以进行下一步搜索/查找)从全局状态栏传递到对接容器中的cl_salv_table? 我无法在cl_salv_table(set_screen_status)中将状态栏注册为工具栏。

如果不是,是否有人知道从ABAP端触发cl_salv_table的"查找"和"查找下一个" fcode的方法? 就像 set_fcode 方法一样。

谢谢。

Karsten

付费偷看设置
发送
5条回答

你好桑德拉,

我不能使用标准工具栏,因为容器中可能还有其他控件(在本例中为cl_salv_table,但可能是cl_gui_column_tree)。 我有一个层次结构简单树,可在左侧的停靠容器中进行导航,而主网格位于屏幕0100的cl_gui_container => default_screen中。用户可以在导航树或主网格中进行搜索,方法是单击"查找/查找下一个" 控件工具栏中的图标,但缺少全局快捷键Ctrl + F和Ctrl + G

我不想将所有内容重新设计为CL_GUI_ALV_GRID。

cl_gui_cfw => set_new_ok_code()在这种情况下将无济于事。 我只想触发cl_salv_table的查找和查找下一个功能。

SKY徐
2楼-- · 2020-08-21 13:33

嗨,桑德拉,

很抱歉,您的评论错误。 我试图参考您的帖子进行回答,但没有成功。 以后我会做得更好。

我知道Naimeshs博客和他的"肮脏SALV骇客",但希望找到一个"更干净"的版本。

尽管如此,感谢您的帮助。 也许我会尝试一下。

关于Karsten,

绿领巾童鞋
3楼-- · 2020-08-21 13:46

一条小消息告诉您我最后提到的解决方案对我有效(使用SET_FUNCTION_CODE +肮脏的技巧来获取ALV网格控件的实例)

NB:正确的调用是:

 DATA(fcode)= CONV syucomm('%SC')。
   alvgrid-> SET_FUNCTION_CODE(更改c_ucomm = fcode)。
My梦
4楼-- · 2020-08-21 13:41

有效。 我正在使用本地帮助程序类来获取CL_GUI_ALV_GRID并调用该函数:

 跨度 {
 字体家族:" Courier New";
 字体大小:10pt;
 颜色:#000000;
 背景:#FFFFFF;
 }
 .L0S52 {
 颜色:#0000FF;
 }
 .L0S55 {
 颜色:#800080;
 }

 lcl_salv_hack类的定义是从cl_salv_model_list继承的。
   公共部分。
     方法构造函数
       输入
         ir_model类型参考cl_salv_model。
     方法set_function_code
       输入
         iv_fcode TYPE ANY。
   专用部分。
     数据salv_model类型参考cl_salv_model。
 ENDCLASS。



 跨度 {
 字体家族:" Courier New";
 字体大小:10pt;
 颜色:#000000;
 背景:#FFFFFF;
 }
 .L0S33 {
 颜色:#4DA619;
 }
 .L0S52 {
 颜色:#0000FF;
 }
 .L0S55 {
 颜色:#800080;
 }
 .L0S70 {
 颜色:#808080;
 }

 类别lcl_salv_hack实施。

   METHOD构造函数。
     super-> constructor()。
     我-> salv_model = ir_model。
   终结法。

   方法set_function_code。
     数据lr_adapter类型参考cl_salv_grid_adapter。
     数据lr_grid类型参考cl_gui_alv_grid。
     数据lv_ucomm TYPE syucomm。

     案例iv_fcode。
       当"查找"时。
         lv_ucomm ='%SC'。
       当" FIND_NEXT"时。
         lv_ucomm ='%SC +'。
       当别人。
         返回。
     结束。

     lr_adapter?= me-> salv_model-> r_controller-> r_adapter。
     lr_grid = lr_adapter-> get_grid()。

     lr_grid-> set_function_code(更改c_ucomm = lv_ucomm)。

   终结法。

 ENDCLASS。
Aaron 3364
5楼-- · 2020-08-21 13:54

请使用COMMENT按钮输入评论,问题,添加详细信息等。ANSWER仅是提出解决方案,请在答案区域的右侧删除SAP文本。

一周热门 更多>