function方式的ALV中 增加按钮 用 REUSE_ALV_GRID_DISPLAY

在function方式的ALV中,实现增强功能。

例如,想要在ALV界面通过某个按钮完成ALV数据的下载。这个需求有很多实现的方式,我这里给出一种比较少见的做法。

 

每一个标准的用'REUSE_ALV_GRID_DISPLAY'实现的ALV,执行后都会跳转到一个标准的屏幕。我们可以去观察这个screen的GUI Status—‘STANDARD_FULLSCREEN’。上面有不少的按钮,每个按钮都有一个功能代码。如‘ &ALL’ ‘&SAL’这种。我的想法是,按这个按钮的时候激发我在程序中代码,实现ALV的user exit。

 

做法(以下载按钮为例):

Step 1

 DATA: it_event_test TYPE slis_t_event_exit,

       it_event_test_wa TYPE slis_event_exit.

 it_event_test_wa-ucomm = '%PC '.

 it_event_test_wa-before = 'X'.

* it_event_test_wa-after = 'X'.

APPEND it_event_test_wa TO it_event_test.

 

Step 2

FORM. mycommand USING r_ucomm LIKE sy-ucomm

                    rs_selfield TYPE slis_selfield.

 

IF r_ucomm = '%PC '.

 此处添加增强的代码

 ENDIF.

ENDFORM.          

 

Step 3:

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

   EXPORTING

     i_callback_program     = g_repid

     is_layout              = gs_layout

     it_fieldcat            = gt_fieldcat[]

     i_grid_title           = l_text

     i_save                 = 'A'

     is_variant             = gs_variant

     i_callback_user_command = 'MYCOMMAND'

     it_event_exit          = it_event_test

   TABLES

     t_outtab               = gt_data[].


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值