OOALV 不同ALV调用相同屏幕

一、一次创建,多次调用

当使用OOALV开发平台,存在点击不同位置,跳转到一个ALV,除ALV内容不一致以外,其他都一样。

常规方法,即跳转到多少个ALV,就创建多少个SCREEN。而屏幕对应的输入输出流,事件,fieldcat,ALV等等出现大量相似代码。

那么是否可以创建一个SCREEN,多次调用,修改调用时的fieldcat和展示ALV的GT_ALV内表。

二、解决方法

博客频遭盗窃,要看全文,请移步公众号“斌将军”,输入关键字“不同ALV调用相同屏幕”查看

"-----------------------------------------@斌将军--------------------------------------------
DATA:g_grid_9001      TYPE REF TO cl_gui_alv_grid, "ALV容器的实例
     g_container_9001 TYPE REF TO cl_gui_docking_container, "ALV容器 不用画屏幕容器 cl_gui_custom_container, "ALV container容器 需要画屏幕容器
     gt_exclude_9001  TYPE ui_functions, "     用于去掉不要的菜单栏
     gs_layout_9001   TYPE lvc_s_layo,  "ALV 控制: 布局结构
     gt_fieldcat_9001 TYPE lvc_t_fcat.
"-----------------------------------------@斌将军--------------------------------------------

每次离开第二层的上一个ALV时,调用析构函数,清理两个对象。(此处9000和9001调用的PAI都是user_command_9000)代码如下

调用9001SCREEN时,重新调用方法,再清理并实例化这两个对象


"-----------------------------------------@斌将军--------------------------------------------
MODULE display_alv_9001 OUTPUT.
  FREE:g_container_9001,g_grid_9001.
  PERFORM frm_create_container_9000. 
  PERFORM frm_alv_sort_9000.
  PERFORM frm_alv_fieldcat_9001.
  PERFORM frm_alv_layout_9000.
  PERFORM frm_alv_btn_exclude_9000.
  CASE gv_9001name.
    WHEN 'ZCGPS'."采购计划评审
      display_alv g_grid_9001 gs_layout_9000 gt_exclude_9000 gt_fieldcat_9001 gt_cgpsalv.
    WHEN 'ZSCPS'."生产计划评审
      display_alv g_grid_9001 gs_layout_9000 gt_exclude_9000 gt_fieldcat_9001 gt_scpsalv.
    WHEN OTHERS.
  ENDCASE.

ENDMODULE.
"-----------------------------------------@斌将军--------------------------------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值