ALV网格显示-我的列正在相乘。

2020-08-27 22:24发布

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

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


我一直在寻找解决我的小问题的方法。因此,我希望以前没有问过这个问题。

我在弹出的显示器中使用'REUSE_ALV_GRID_DISPLAY'拥有ALV网格。

我的屏幕上有一个输入字段,可帮助我仅在alv网格上显示某些键。

当我输入例如键2时,它将显示该键2的所有正确产品。

当我尝试输入另一个键时。...它会显示正确的产品,但每一列都是重复的。 因此,每次我输入内容并点击"显示"时,该表中的每一列都会重复一次。

尝试刷新,清除我的内部表...。但是我无法使其正常工作。

这发生在所有人身上吗?

新手伊林卡

该屏幕的输入模块:

"显示"时。

选择col1 col2 ....

进入表it_display的相应字段

来自ztable

其中col1 = ztable2-col1。

清除ls_fieldcatlog。

ls_fieldcatlog-row_pos ='1'。

ls_fieldcatlog-col_pos ='1'。

ls_fieldcatlog-fieldname ='COL1'。

ls_fieldcatlog-tabname ='IT_DISPLAY'。

ls_fieldcatlog-seltext_m ='信息类型'。

附加ls_fieldcatlog到lt_fieldcatlog。

清除ls_fieldcatlog。

ls_fieldcatlog-row_pos ='1'。

ls_fieldcatlog-col_pos ='2'。

ls_fieldcatlog-fieldname ='COL2'。

ls_fieldcatlog-tabname ='IT_DISPLAY'。

ls_fieldcatlog-seltext_m ='信息类型'。

附加ls_fieldcatlog到lt_fieldcatlog。

...

noloyo-zebra ='X'。

noloyo-colwidth_optimize ='X'。

调用功能'REUSE_ALV_GRID_DISPLAY'

导出

i_callback_program = sy-repid

i_grid_title ='INFOTYPE DETAILS'

is_layout = noloyo

it_fieldcat = lt_fieldcatlog

i_screen_start_column = 10

i_screen_start_line = 20

i_screen_end_column = 100

i_screen_end_line = 40

表格

t_outtab = it_display

例外情况

program_error = 1

其他= 2。

我的声明:

TYPES:BEGIN OF type_com,

col1TYPE ztable-col1,

col2TYPE ztable-col2,

....

type_com的结尾。

数据:it_display type_com的类型标准表。

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

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


我一直在寻找解决我的小问题的方法。因此,我希望以前没有问过这个问题。

我在弹出的显示器中使用'REUSE_ALV_GRID_DISPLAY'拥有ALV网格。

我的屏幕上有一个输入字段,可帮助我仅在alv网格上显示某些键。

当我输入例如键2时,它将显示该键2的所有正确产品。

当我尝试输入另一个键时。...它会显示正确的产品,但每一列都是重复的。 因此,每次我输入内容并点击"显示"时,该表中的每一列都会重复一次。

尝试刷新,清除我的内部表...。但是我无法使其正常工作。

这发生在所有人身上吗?

新手伊林卡

该屏幕的输入模块:

"显示"时。

选择col1 col2 ....

进入表it_display的相应字段

来自ztable

其中col1 = ztable2-col1。

清除ls_fieldcatlog。

ls_fieldcatlog-row_pos ='1'。

ls_fieldcatlog-col_pos ='1'。

ls_fieldcatlog-fieldname ='COL1'。

ls_fieldcatlog-tabname ='IT_DISPLAY'。

ls_fieldcatlog-seltext_m ='信息类型'。

附加ls_fieldcatlog到lt_fieldcatlog。

清除ls_fieldcatlog。

ls_fieldcatlog-row_pos ='1'。

ls_fieldcatlog-col_pos ='2'。

ls_fieldcatlog-fieldname ='COL2'。

ls_fieldcatlog-tabname ='IT_DISPLAY'。

ls_fieldcatlog-seltext_m ='信息类型'。

附加ls_fieldcatlog到lt_fieldcatlog。

...

noloyo-zebra ='X'。

noloyo-colwidth_optimize ='X'。

调用功能'REUSE_ALV_GRID_DISPLAY'

导出

i_callback_program = sy-repid

i_grid_title ='INFOTYPE DETAILS'

is_layout = noloyo

it_fieldcat = lt_fieldcatlog

i_screen_start_column = 10

i_screen_start_line = 20

i_screen_end_column = 100

i_screen_end_line = 40

表格

t_outtab = it_display

例外情况

program_error = 1

其他= 2。

我的声明:

TYPES:BEGIN OF type_com,

col1TYPE ztable-col1,

col2TYPE ztable-col2,

....

type_com的结尾。

数据:it_display type_com的类型标准表。

付费偷看设置
发送
8条回答
四川大学会员
1楼 · 2020-08-27 23:02.采纳回答

嗨,

按照下面的代码...

"显示"时。

选择col1 col2 ....

进入表it_display的相应字段

来自ztable

其中col1 = ztable2-col1。

referesh ls_fieldcatlog []。

清除ls_fieldcatlog。

ls_fieldcatlog-row_pos ='1'。

ls_fieldcatlog-col_pos ='1'。

ls_fieldcatlog-fieldname ='COL1'。

ls_fieldcatlog-tabname ='IT_DISPLAY'。

ls_fieldcatlog-seltext_m ='信息类型'。

APPEND将ls_fieldcatlog转换为lt_fieldcatlog。

清除ls_fieldcatlog。

ls_fieldcatlog-row_pos ='1'。

ls_fieldcatlog-col_pos ='2'。

ls_fieldcatlog-fieldname ='COL2'。

ls_fieldcatlog-tabname ='IT_DISPLAY'。

ls_fieldcatlog-seltext_m ='信息类型'。

APPEND将ls_fieldcatlog转换为lt_fieldcatlog。

...

清除ls_fieldcatlog。

noloyo-zebra ='X'。

noloyo-colwidth_optimize ='X'。

Ram。

半个程序猿
2楼-- · 2020-08-27 23:10

非常感谢您对我的帮助。

葫芦娃快救爷爷
3楼-- · 2020-08-27 23:27

使用此

 如果lt_fieldcatlog是初始的。
 您的代码
 万一。
 
小灯塔
4楼-- · 2020-08-27 23:07

嗨,

那是一个普遍的问题。

您只需在添加Fieldcat之前添加此行代码即可。

代码***

如果lt_fieldcatlog是Initial。

  • Fieldcat代码****

Endif。

*****

现在,外地猫被重复添加。

谢谢

Raghav M

宇峰Kouji
5楼-- · 2020-08-27 23:13

嗨,我的ilinktrinel;

请尝试下面的代码

第一种方式;

 刷新lt_fieldcatlog。  "仅添加此行
 清除ls_fieldcatlog。
 ls_fieldcatlog-row_pos ='1'。
 ls_fieldcatlog-col_pos ='1'。
 ls_fieldcatlog-fieldname ='COL1'。
 ls_fieldcatlog-tabname ='IT_DISPLAY'。
 ls_fieldcatlog-seltext_m ='信息类型'。
 附加ls_fieldcatlog至lt_fieldcatlog。
 清除ls_fieldcatlog。
 ls_fieldcatlog-row_pos ='1'。
 ls_fieldcatlog-col_pos ='2'。
 ls_fieldcatlog-fieldname ='COL2'。
 ls_fieldcatlog-tabname ='IT_DISPLAY'。
 ls_fieldcatlog-seltext_m ='信息类型'。
 

第二种方式;

 如果lt_fieldcatlog是初始的。  "添加此行
 清除ls_fieldcatlog。
 ls_fieldcatlog-row_pos ='1'。
 ls_fieldcatlog-col_pos ='1'。
 ls_fieldcatlog-fieldname ='COL1'。
 ls_fieldcatlog-tabname ='IT_DISPLAY'。
 ls_fieldcatlog-seltext_m ='信息类型'。
 附加ls_fieldcatlog至lt_fieldcatlog。
 清除ls_fieldcatlog。
 ls_fieldcatlog-row_pos ='1'。
 ls_fieldcatlog-col_pos ='2'。
 ls_fieldcatlog-fieldname ='COL2'。
 ls_fieldcatlog-tabname ='IT_DISPLAY'。
 ls_fieldcatlog-seltext_m ='信息类型'。
 ...
 万一。  "添加此行

 

最好的问候。

暮风yp
6楼-- · 2020-08-27 23:24

听起来好像没有刷新字段目录; 每次执行" SHOW"功能时,都会在字段目录中添加一列。 要检查这一点,请在APPEND语句之前放置一个断点,然后查看字段目录内部表。

我是否也可以建议您使用新的ALV类CL_SALV_TABLE而不是功能模块-该类的好处之一是您不必操纵字段目录。 您要做的就是通过FACTORY方法创建该类的实例,然后调用DISPLAY方法以输出数据。 单击类构建器中的"类文档"以获取完整详细信息。

此致

D。

hengyuye
7楼-- · 2020-08-27 23:29

嗨,

请调试并检查您的数据是否在传递给fieldcatalog或内部表的内部表中重复 包含字段目录。

理想情况是在填充字段目录之前刷新它。

一周热门 更多>