ALV隐藏GUI状态/应用程序工具栏

导语:个人在开发中一般喜欢用OOALV,这里就涉及到GUI状态的工具栏和容器的工具栏了,一般来说我们会COPY一个标准的GUI状态过来,【】,同时在CALL SCREEN的时候也会有一个自带的应用程序工具栏,今天这里讲一下如何隐藏GUI状态/应用程序工具栏

一、两者同时存在,不太美观
在这里插入图片描述
二、隐藏上面的工具栏
在对应的SCREEN里有一个复选框【无应用程序工具栏】选中就可以了
在这里插入图片描述
效果展示:
在这里插入图片描述
二、去掉下面的工具栏
在LAYOUT的属性参数里有一个【NO_TOOLBAR】来控制下面的工具栏是否展示

* 定义列自动宽度优化
  gs_layout-cwidth_opt   = 'X'.
  gs_layout-zebra        = 'X'.
  gs_layout-info_fname   = 'COLOR'.
  gs_layout-stylefname   = 'CELTAB'.
  gs_layout-no_toolbar   = 'X'.  "控制工具栏是否显示
  gs_variant-report      = sy-repid.

在这里插入图片描述
四、对于OOALV而言下面的工具栏展示的图标也可以根据程序的需求来展示/隐藏,感兴趣的话可以自己研究一下,代码如下。

*   隐藏某些工具栏按钮
    PERFORM exclude_tb_functions CHANGING gt_exclude.

    CALL METHOD g_grid->set_table_for_first_display
      EXPORTING
        is_layout            = gs_layout
        it_toolbar_excluding = gt_exclude
        is_variant           = gs_variant
        i_save               = 'A'
      CHANGING
        it_outtab            = lt_out[]
        it_fieldcatalog      = gt_fieldcat[].


    CALL METHOD g_grid->set_ready_for_input
      EXPORTING
        i_ready_for_input = 1.

*&---------------------------------------------------------------------*
*& Form EXCLUDE_TB_FUNCTIONS
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      <-- GT_EXCLUDE
*&---------------------------------------------------------------------*
FORM exclude_tb_functions CHANGING ct_exclude TYPE ui_functions .
*  REFRESH GT_EXCLUDE.


  DATA ls_exclude TYPE ui_func.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
  APPEND ls_exclude TO ct_exclude.
*  ENDIF.


*  ls_exclude = cl_gui_alv_grid=>mc_fc_filter.
*  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_print.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_graph.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_info.
  APPEND ls_exclude TO ct_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_refresh.
  APPEND ls_exclude TO ct_exclude.


  ls_exclude = cl_gui_alv_grid=>mc_fc_views.
  APPEND ls_exclude TO ct_exclude.
ENDFORM.

作者:小飞猪猪猪猪猪猪猪–CSDN
注意:转发请注明作者

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
ABAP 使用 ALV 报表时,可以使用 GUI 状态工具栏来为报表添加一些常用的功能,比如打印、导出、筛选等。如果需要快速添加 GUI 状态工具栏,可以按照以下步骤操作: 1.在 ALV 报表的定义,设置 GUI 状态的标识符,如下所示: ``` data: gv_guiid type sy-ucomm value '&TOOLBAR'. call function 'REUSE_ALV_GRID_DISPLAY' exporting i_callback_program = sy-repid i_callback_top_of_page = 'TOP-OF-PAGE' it_fieldcat = gt_fieldcat i_save = 'A' is_layout = gs_layout i_grid_title = 'ALV Report' is_variant = gs_variant i_screen_start_column = 0 i_screen_start_line = 3 i_screen_end_column = 131 i_screen_end_line = 20 is_print = gs_print i_grid_id = gv_guiid " 设置 GUI 状态标识符 it_special_groups = gt_special_groups it_toolbar_excluding = gt_toolbar_excluding it_exclude_singles = gt_exclude_singles i_default = 'X' tables t_outtab = gt_outtab. ``` 2.在 ALV 报表的输出,调用函数模块 REUSE_ALV_EVENTS_GET 获取 GUI 状态工具栏的事件,如下所示: ``` call function 'REUSE_ALV_EVENTS_GET' exporting i_list_type = 0 importing et_events = gt_events. ``` 3.在 ALV 报表的事件,调用函数模块 REUSE_ALV_TOOLBAR_SET 来设置 GUI 状态工具栏,如下所示: ``` form user_command using r_ucomm like sy-ucomm rs_selfield type slis_selfield. case r_ucomm. when '&TOOLBAR'. " GUI 状态标识符 call function 'REUSE_ALV_TOOLBAR_SET' exporting i_callback_program = sy-repid i_selfield = rs_selfield tables t_toolbar = gt_toolbar. endcase. endform. ``` 以上就是在 ABAP 使用 ALV 报表添加 GUI 状态工具栏的方法,希望能对您有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小飞猪猪猪猪猪猪猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值