SAP: 编辑或移去ALV中的状态栏

即,如何动态地控制工具栏中的按钮?现转载如下,已经测试可用。

 

-----------------------------------------------------------------------------------------

有的功能不想让用户使用,请问如何编辑或移去ALV中的状态栏?

解决方法:

DATA: BEGIN OF ex_tab OCCURS 0,
       fcode   LIKE sy-ucomm,
   END OF ex_tab.
   ex_tab-fcode = 'DISP'.    APPEND ex_tab.
   ex_tab-fcode = 'DELE'.    APPEND ex_tab.
   ex_tab-fcode = 'SAVE'.    APPEND ex_tab.
   SET PF-STATUS 'MENU100' EXCLUDING ex_tab.

 

原文地址:http://hi.baidu.com/bobylou/blog/item/2a987aec4eb2ebd22f2e218b.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ALV 添加状态栏下拉框按钮的实现步骤如下: 1. 在函数模块使用 FM REUSE_ALV_GRID_DISPLAY 调用 ALV 控件。 2. 在该函数模块使用 FM REUSE_ALV_COMMENTARY_WRITE 向状态栏添加注释。 3. 在注释添加 DROPDOWN_LIST ,并设置其属性和选项。 4. 在用户选择下拉列表选项时,处理用户选项并更新 ALV 数据。 以下是示例 ABAP 代码: ``` FUNCTION z_alv_dropdown. DATA: lt_fieldcat TYPE lvc_t_fcat, lt_layout TYPE lvc_s_layo, lt_sflight TYPE TABLE OF sflight, lt_ddl TYPE ddshretval. FIELD-SYMBOLS: <fs_sflight> TYPE sflight. *-- 1. 调用 ALV CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid i_callback_top_of_page = 'TOP-OF-PAGE' it_fieldcat = lt_fieldcat i_save = 'A' TABLES t_outtab = lt_sflight CHANGING it_layout = lt_layout. *-- 2. 添加注释和下拉框 CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = VALUE #( ( comment = 'Select Status:' ) ) i_logo = ' ' i_logo2 = ' ' i_type = 'S' i_width = 20. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = VALUE #( ( comment = ' ' ) ) i_logo = ' ' i_logo2 = ' ' i_type = 'S' i_width = 20. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = VALUE #( ( comment = 'DROPDOWN_LIST' ) ) i_logo = ' ' i_logo2 = ' ' i_type = 'S' i_width = 20. *-- 3. 设置下拉框选项 CALL FUNCTION 'DD_DOMVALUES_GET' EXPORTING domname = 'STATUS' TABLES ddshretval = lt_ddl. *-- 4. 处理用户选项并更新数据 LOOP AT lt_sflight ASSIGNING <fs_sflight>. IF sy-tabix > lt_layout-top_lines. IF <fs_sflight>-carrid = 'LH'. <fs_sflight>-status = lt_ddl[ 1 ]-domvalue_l. ELSEIF <fs_sflight>-carrid = 'UA'. <fs_sflight>-status = lt_ddl[ 2 ]-domvalue_l. ELSE. <fs_sflight>-status = lt_ddl[ 3 ]-domvalue_l. ENDIF. ENDIF. ENDLOOP. ENDFUNCTION. ``` 在上述代码,我们使用了 DD_DOMVALUES_GET 函数获取了一个名为 STATUS 的域的所有可能值,并将这些值添加到一个名为 lt_ddl 的内部表。然后,我们在 ALV 状态栏添加了一个下拉框,以显示这些选项。当用户选择下拉框的选项时,我们处理用户选项并更新 ALV 数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值