OO ALV 后台运行时错误:Control Framework: Fatal error - GUI cannot be reached

这个错误的原因,是GUI容器依赖GUI的存在,因为它是在后台运行,没有GUI,因此控制错误。

可以通过做一些编码绕过这个。

* ALV Grid
DATA: R_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA: R_CONTROL TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: G_DOCK TYPE REF TO CL_GUI_DOCKING_CONTAINER.


MODULE STATUS_0100 OUTPUT.

  SET PF-STATUS 'LISTOUT1'.
  SET TITLEBAR 'LIST1'.

IF R_CONTROL IS INITIAL.
* Check whether the program is run in batch or foreground(判断是否后台运行)
    IF CL_GUI_ALV_GRID=>OFFLINE( ) IS INITIAL.
* Run in foreground
      CREATE OBJECT R_CONTROL EXPORTING CONTAINER_NAME = 'CONTAINER_1'.
      CREATE OBJECT R_GRID EXPORTING I_PARENT = R_CONTROL.
    ELSE.
* Run in background
      CREATE OBJECT R_GRID EXPORTING I_PARENT = G_DOCK.
    ENDIF.

* Structure ZBA_MARA1 is defined in DDIC as linetype
    CALL METHOD R_GRID->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
       I_STRUCTURE_NAME = 'MARA'
      CHANGING
       IT_OUTTAB = ITAB.
  ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

 

转载于:https://www.cnblogs.com/dy-debug/p/5691340.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值