显示具有不同表内容和结构的ALV

2020-09-15 19:35发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在使用cl_salv类通过在模块池程序中创建自定义容器和网格来显示alv。

我第一次显示,ALV数据显示完美。 如果同一内部表上的数据发生更改,则同一内部表将被更新(我使用了refresh_table和set_table_for_first_display)。

但是第二次我试图在同一网格中显示具有不同结构的另一个表。 这次,它会转储说以前的地址不再有效,这是正确的,因为内部表结构已更改。

有没有办法使用相同的容器和网格但条件不同来显示两个不同的内部表?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在使用cl_salv类通过在模块池程序中创建自定义容器和网格来显示alv。

我第一次显示,ALV数据显示完美。 如果同一内部表上的数据发生更改,则同一内部表将被更新(我使用了refresh_table和set_table_for_first_display)。

但是第二次我试图在同一网格中显示具有不同结构的另一个表。 这次,它会转储说以前的地址不再有效,这是正确的,因为内部表结构已更改。

有没有办法使用相同的容器和网格但条件不同来显示两个不同的内部表?

付费偷看设置
发送
6条回答
lukcy2020
1楼 · 2020-09-15 20:21.采纳回答
  • 如果要使用OO ALV类的相同出现,则不必使用REFRESH,但可以释放先前出现的OOALV类,然后使用诸如SET_TABLE_FOR_FIRST_DISPLAY之类的方法。
  • 无需同时释放容器中的事件。
  • 在变体管理中最好使用不同的HANDLE或LOG_GROUP,以防止出现许多问题。
亦是此间程序员
2楼-- · 2020-09-15 20:13

嗨西蒙妮·米丽丝,

我已经使用set_table_for_first_display方法来显示alv而不是工厂方法,是的,我已经看到了该线程,并且在容器和网格上都使用了free方法,但都存在相同的例外。

huskylover
3楼-- · 2020-09-15 20:36

要做的是在调用ALV时更改字段目录。 像这样:

PBO:

 MODULE STATUS_0100输出。
  设置PF状态"屏幕"。

  创建对象R_CONTAINER
  出口
  CONTAINER_NAME ='CONTAINER'。
  创建对象R_GRID
  出口
  I_PARENT = R_CONTAINER。
  呼叫方法R_GRID-> SET_TABLE_FOR_FIRST_DISPLAY
  出口
  I_STRUCTURE_NAME ='SFLIGHT'
  改变
  IT_OUTTAB = T_SFLIGHT。
 ENDMODULE。  "处理程序输出

切换:

 MODULE USER_COMMAND_0100输入。
  案例SY-UCOMM。
  当"返回"时。
  离开屏幕0。
  当"切换"时。
  通话功能'LVC_FIELDCATALOG_MERGE'
  出口
  I_STRUCTURE_NAME ='SPFLI'
  改变
  CT_FIELDCAT = T_FCAT
  例外情况
  INCONSISTENT_INTERFACE = 1
  PROGRAM_ERROR = 2
  其他= 3。
  如果SY-SUBRC <> 0。
 *在这里实施适当的错误处理
  万一。

  呼叫方法R_GRID-> SET_TABLE_FOR_FIRST_DISPLAY
  改变
  IT_FIELDCATALOG = T_FCAT
  IT_OUTTAB = T_SPFLI。
  结束。
 ENDMODULE。  " user_command_0100输入

在这里,我使用DDIC结构填充数据,但您也可以使用相同的方法创建结构。

SAP小黑
4楼-- · 2020-09-15 20:19

我怀疑您没有使用工厂方法:如何创建alv 对象?

您可以分享有意义的代码段吗?

昵称总是被占用
5楼-- · 2020-09-15 20:34

请查看我对Raymond答案的评论。

天桥码农
6楼-- · 2020-09-15 20:17

感谢Raymond。 做到了:D

一周热门 更多>