在屏幕上的容器上显示ALV。

2020-08-20 22:39发布

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

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


大家好,

我正在尝试在屏幕上的容器中的ALV中显示内部表。

这就是我想要做的。

数据:salv_ref类型参考cl_salv_table。

数据:lr_columns类型参考cl_salv_columns_table。

数据:data_container类型参考CL_GUI_CONTAINER。

在内部表中选择stmt。

调用屏幕100。//在屏幕名称= TAB_CONTAINER上放置一个自定义容器

---------------------

PBO 100。

创建对象data_container

导出

clsid = SPACE"此容器的类ID

container_name ='TAB_CONTAINER'

例外情况

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

lifetime_dynpro_illegal_parent = 6

其他= 7

IF sy-subrc <> 0。

*消息ID sy-msgid类型sy-msgty编号sy-msgno

*与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。

ENDIF。

cl_salv_table =>工厂(

导出

r_container = data_container

导入

r_salv_table = salv_ref

改变

t_table = lt_tab_form

)。

salv_ref-> display()。

但是我在屏幕上看不到任何东西。

请您指出我做错了什么地方。

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

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


大家好,

我正在尝试在屏幕上的容器中的ALV中显示内部表。

这就是我想要做的。

数据:salv_ref类型参考cl_salv_table。

数据:lr_columns类型参考cl_salv_columns_table。

数据:data_container类型参考CL_GUI_CONTAINER。

在内部表中选择stmt。

调用屏幕100。//在屏幕名称= TAB_CONTAINER上放置一个自定义容器

---------------------

PBO 100。

创建对象data_container

导出

clsid = SPACE"此容器的类ID

container_name ='TAB_CONTAINER'

例外情况

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

lifetime_dynpro_illegal_parent = 6

其他= 7

IF sy-subrc <> 0。

*消息ID sy-msgid类型sy-msgty编号sy-msgno

*与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。

ENDIF。

cl_salv_table =>工厂(

导出

r_container = data_container

导入

r_salv_table = salv_ref

改变

t_table = lt_tab_form

)。

salv_ref-> display()。

但是我在屏幕上看不到任何东西。

请您指出我做错了什么地方。

付费偷看设置
发送
6条回答
南山jay
1楼-- · 2020-08-20 23:11

按照程序演示" SALV_DEMO_TABLE_SIMPLE"进行。

代码说...

如果未绑定gr_container。
如果cl_salv_table => is_offline()eq if_salv_c_bool_sap => false。
创建对象gr_container
exporting
container_name ='CONTAINER'。 br>
* ...§2创建ALV表
try。
cl_salv_table => factory(
export
r_container = gr_container
container_name ='CONTAINER'
导入
r_salv_table = gr_table
更改
t_table = gt_outtab)。
捕获cx_salv_msg。 " #EC NO_HANDLER
尝试。

....

endif。

问题出在容器的声明上

数据:gr_container类型参考cl_gui_custom_container。 " GUI自定义容器

代替

数据:data_container类型参考CL_GUI_CONTAINER。 " GUI容器

槿木_熙
2楼-- · 2020-08-20 22:53

嗨Praveer,

这将在完整的屏幕上显示数据。 而我想将其显示在容器中。

因此,我无法使用CL_SALV_table类并在屏幕上的容器中显示数据。

最好的问候

南丹

小熊yu生菜
3楼-- · 2020-08-20 23:11

嗨,

尝试添加参数" container_name"

cl_salv_table =>工厂(

导出

r_container = data_container

container_name ='TAB_CONTAINER''

导入

r_salv_table = salv_ref

改变

t_table = lt_tab_form

)。

最好的问候,
Serge M

小灯塔
4楼-- · 2020-08-20 23:05

嗨,

也尝试将容器名称传递给工厂方法。

cl_salv_table =>工厂(

导出

r_container = data_container

CONTAINER_NAME ='TAB_CONTAINER'

导入

r_salv_table = salv_ref

改变

t_table = lt_tab_form

)。

风早神人
5楼-- · 2020-08-20 23:16

它仍然无济于事。

我传递了容器名称,但屏幕上没有任何显示。

蓋茨
6楼-- · 2020-08-20 22:56

您需要在屏幕上创建一个容器,然后在调用工厂方法时传递容器名称 如下所示:

"继续"是屏幕上自定义容器的名称。

数据lx_msg类型参考cx_salv_msg。

尝试。

呼叫方法cl_salv_table =>工厂

导出

container_name ='继续'

导入

r_salv_table = o_alv

改变

t_table = it_sflight。

捕获cx_salv_msg INTO lx_msg。

ENDTRY。

调用方法o_alv->显示。


此代码对我有用。 我认为无需像

那样创建容器


创建对象data_container

导出

clsid = SPACE"此容器的类ID

container_name ='TAB_CONTAINER'

例外情况

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

lifetime_dynpro_illegal_parent = 6

其他= 7

IF sy-subrc <> 0。

*消息ID sy-msgid类型sy-msgty编号sy-msgno

*与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。

ENDIF。

一周热门 更多>