CL_SALV_TABLE的编辑工具栏(GUI状态)

2020-08-22 19:44发布

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

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


大家好,

我有一个使用类CL_SALV_TABLE的应用程序,用于输出带有几个附加功能。

我的问题是,每个函数都有一个带有定义的文本的按钮,并且所有这些文本的总长度太长,以致于不再显示最后一个文本。

我不想缩短文本,因此我正在寻找类似于CL_GUI_ALV_GRID类的TOOLBAR事件的地方,可以在其中定制应用程序工具栏。

或者可能完全不同,只是在GUI状态的应用程序工具栏中添加了自动换行之类的内容,以便我可以在多行中显示按钮。

非常感谢,如果有人有想法,那就太好了!

致谢

Jörg

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

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


大家好,

我有一个使用类CL_SALV_TABLE的应用程序,用于输出带有几个附加功能。

我的问题是,每个函数都有一个带有定义的文本的按钮,并且所有这些文本的总长度太长,以致于不再显示最后一个文本。

我不想缩短文本,因此我正在寻找类似于CL_GUI_ALV_GRID类的TOOLBAR事件的地方,可以在其中定制应用程序工具栏。

或者可能完全不同,只是在GUI状态的应用程序工具栏中添加了自动换行之类的内容,以便我可以在多行中显示按钮。

非常感谢,如果有人有想法,那就太好了!

致谢

Jörg

付费偷看设置
发送
8条回答
当学会了学习
1楼-- · 2020-08-22 20:00

您好,Jeorg,

将功能组SALV的标准GUI状态复制到您的程序中,并根据您的要求进行修改。

希望这会对您有所帮助。

< p>祝你好运

Narin

小c菟菟
2楼-- · 2020-08-22 19:59

我已经读过一个,不幸的是,它也没有说多于一行的工具栏...

非常感谢您的努力,纳林!

骆驼绵羊
3楼-- · 2020-08-22 20:15

您可以使用cl_gui_alv_grid的TOOLBAR事件(SALV基于该事件),因此:

类定义,方法:

<方法>用于cl_gui_alv_grid的重要事件工具栏导入发件人e_object

在代码中,您可以执行以下操作:

所有实例的设置处理程序<方法>。

大道至简
4楼-- · 2020-08-22 19:57

在SALV Grid工具栏中无法使用分隔符。 要设置分隔符,必须将BUTN_TYPE设置为" 3"。 这些代码行"假设" SALV将始终具有"普通按钮"。

类-CL_SALV_GRID_ADAPTER

方法-IF_SALV_TOOLBAR_​​ADAPTER〜BUILD_UIFUNCTION

         ls_toolbar-function = ls_functions-r_function-> get_name()。
         ls_toolbar-icon = ls_functions-r_function-> get_icon()。
         ls_toolbar-butn_type ='0'。  " <<
         如果if_salv_c_bool_sap => true eq
                               ls_functions-r_function-> get_enable()。
 

SAP可以增强SALV模型,为我们提供一种在CL_SALV_FUNCTION中设置按钮类型并在代码中在此处使用该按钮类型的方法,而不是将该按钮视为普通按钮。

SALV根据按钮相对于标准GRID工具栏的位置向工具栏添加分隔符(最多两个)。

             如果l_first_left_added_item = if_salv_c_bool_sap => true。
               ls_toolbar_sep-function ='&& SEP_ADD'。
               ls_toolbar_sep-butn_type ='3'。
               将ls_toolbar_sep插入t_toolbar索引1。
               l_first_left_added_item = if_salv_c_bool_sap => false。
             万一。
 

此致

Naimesh Patel

打个大熊猫
5楼-- · 2020-08-22 20:03

你好

尝试这种方法


 ..§2创建ALV表
     尝试。
         cl_salv_table =>工厂(
           出口
             r_container = gr_container
             container_name ='集装箱'
           输入
             r_salv_table = gr_table
           改变
             t_table = gt_outtab)。
       捕捉cx_salv_msg。  " #EC NO_HANDLER
     努力。

 * ...§3.1激活ALV通用功能
     数据:lr_functions类型为cl_salv_functions_list的ref,
           l_text类型的字符串,
           l_icon类型字符串。

     lr_functions = gr_table-> get_functions()。
     lr_functions-> set_default(gc_true)。

 * ...§3.2包含自己的功能
     尝试。
       l_text = text-b01。
       l_icon = icon_complete。
       lr_functions-> add_function(
         名称='MYFUNCTION'
         图标= l_icon
         文字= l_text
         工具提示= l_text
         position = if_salv_c_function_position => right_of_salv_functions)。
       抓住cx_salv_wrong_call cx_salv_existing。
     努力。

 

查看演示程序SALV *

欢呼

珍宝

土豆飞人
6楼-- · 2020-08-22 20:16

嗨,杰格,

如果以后发现任何解决方案,请告诉我。

尝试使用SALV类...并 搜索有关SALV类的演示程序....

转到SE38并搜索带有搜索字符串的程序。BCSALV

希望这会有所帮助。

好 运气

Narin

一周热门 更多>