根据屏幕中的控件获得其所在的屏幕号

        有时候实现更加复杂的屏幕设计时,需要用到很多子屏幕和CONTAINER来实更丰富的功能,假如屏幕有多

个子屏幕,子屏幕上有多个CONTAINER的时候,在某种情况下,如果想知道,用户操作的事件来自哪个子屏幕

号,便可以从事件源来找其所在子屏幕,得到它的屏幕号,同时也可以CONTAINER的名字,这个问题折腾了我

很多时间,也请教过别人,最终还是没得到想要的答案,今天总结一下,就拿OO ALV来说明一下如何取到子屏

幕号。

(1) 首先,   在创建GRID的时候可以先用其SET_NAME的方法把屏幕号保存起来

    ......

   "   "保存屏幕号到GRID的NAME中
     DATA: FRM_DYNNR TYPE STRING.
     FRM_DYNNR = SY-DYNNR.
     CALL METHOD P_GRID->SET_NAME
       EXPORTING
         NAME           = FRM_DYNNR
       EXCEPTIONS
         CNTL_ERROR     = 1
         PARENT_NO_NAME = 2
         ILLEGAL_NAME   = 3
         OTHERS         = 4.
   ......

(2) 在需要获取屏幕号号的地方加入以下代码

 "获得事件对象
  DATA: FRM_EVENT TYPE REF TO  CL_GUI_EVENT.
  CALL METHOD CL_GUI_CFW=>GE

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值