选择画面中添加ALV布局控制字段

在ALV报表的选择画面中加一个parameter输入一个布局名称,这样程序运行之前用户可以先选择自己布局。

ALV布局(Layout)的F4函数是 REUSE_ALV_VARIANT_F4。

详细代码如下:

数据定义:

1

2

3

4

5

6

DATA: git_fieldcat TYPE lvc_t_fcat,

      gwa_fieldcat LIKE LINE OF git_fieldcat,

      git_sort     TYPE lvc_t_sort,

      gwa_variant  TYPE disvariant,"layout

      gwa_sort     LIKE LINE OF git_sort,

      gwa_layout   TYPE lvc_s_layo.

选择画面:

1

2

3

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-030.

PARAMETERS:    p_vari TYPE disvariant-variant.

SELECTION-SCREEN END OF BLOCK b2.

屏幕F4:

布局参数 I_SAVE保存选项:

1:I_SAVE = SPACE.   布局不能被保存

2:I_SAVE = 'U'.          仅自定义的布局可以被保存

3:I_SAVE = 'X'.          仅全局布局可以被保存

4:I_SAVE = 'A'.          自定义的布局和全局的布局都可以被保存

英文如下:
1, ' ' = Display  variants cannot be saved
Defined display variants (such as delivered display variants) can be selected for presentation regardless of this indicator. However, changes cannot be saved.
2,'X' = Standard save mode
Display variants can be saved as standard display variants.
Saving display variants as user-specific is not possible.
3,'U' = User-specific save mode
Display variants can only be saved as user-specific.
4,'A' = Standard and user-specific save mode
Display variants can be saved both as user-specific and as standard
variants. Users make their choice on the dialog box for saving the
display variant.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.

  PERFORM frm_alv_variant_f4.

FORM frm_alv_variant_f4.

  DATA: lwa_variant TYPE disvariant,

        l_exit      TYPE c.

  lwa_variant-report = sy-repid.

  lwa_variant-username = sy-uname.

  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

    EXPORTING

      is_variant    = lwa_variant

      i_save        = 'A'

    IMPORTING

      e_exit        = l_exit

      es_variant    = lwa_variant

    EXCEPTIONS

      not_found     = 1

      program_error = 2

      OTHERS        = 3.

  IF sy-subrc <> 0 OR l_exit = 'X'.

    EXIT.

  ENDIF.

  p_vari = lwa_variant-variant.

ENDFORM.

ALV:alv输入参数is_variant赋值

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

  gwa_layout-zebra      = abap_true.

  gwa_layout-sel_mode   = ''.

  gwa_layout-cwidth_opt = abap_true.

  gwa_variant-report = sy-repid.

  gwa_variant-variant = p_vari.

* set catalog

  PERFORM frm_set_catalog.

* set sort

  PERFORM frm_set_sort.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

    EXPORTING

      is_layout_lvc   = gwa_layout

      it_fieldcat_lvc = git_fieldcat

      IS_VARIANT      = gwa_variant

* IMPORTING

*     E_EXIT_CAUSED_BY_CALLER           =

*     ES_EXIT_CAUSED_BY_USER            =

    TABLES

      t_outtab        = git_alv[]

    EXCEPTIONS

      program_error   = 1

      OTHERS          = 2.

  IF sy-subrc <> 0.

* Implement suitable error handling here

  ENDIF.

显示界面:

以上。

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ChampaignWolf

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

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

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

打赏作者

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

抵扣说明:

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

余额充值