OO ALV网格刷新问题

2020-08-17 07:11发布

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

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


我有一个可编辑的OO ALV,其中我使用了附加,插入,删除等标准功能来处理以下情况:插入/附加新行时,其在不可编辑单元格中的状态默认为某些值 。 现在的逻辑如下

1。用户单击附加按钮(我们已对其进行了覆盖),我在用户命令中将其捕获,并在itab中以默认状态附加一个空白行,并执行grid-> refresh_table_display()

2。用户在所有单元格中输入值,然后按Enter,控制转到handle_data_changed方法。我验证并检查ER_DATA_CHANGED-> MOD_ROWS或ER_DATA_CHANGED-> MOD_CELLS的已修改行,并使用在屏幕上输入的值更新我的Itab,然后再次执行 网格-> refresh_table_display(),以便将值再次显示在屏幕上。

问题是当我给出SORT标准或按年份(降序)按排序说(如果降格)时,如果网格已经包含2行,并且我们在底部添加了2009年则是第3行

金额年份状态

100 2007年老

200 2006年老

300 2009新

然后在ENTER上将第3行移至第1位,但第3行上的值不会改变!!! 例如,见下文

金额年份状态

300 2009新

100 2007年老

300 2009新

问题仅是在对ALV排序时&我在itab中有一个唯一的行索引来跟踪记录。 我觉得这在前端和后端更新中是不匹配的。 其他任何人都有线索,为什么这只会在某种程度上发生?

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

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


我有一个可编辑的OO ALV,其中我使用了附加,插入,删除等标准功能来处理以下情况:插入/附加新行时,其在不可编辑单元格中的状态默认为某些值 。 现在的逻辑如下

1。用户单击附加按钮(我们已对其进行了覆盖),我在用户命令中将其捕获,并在itab中以默认状态附加一个空白行,并执行grid-> refresh_table_display()

2。用户在所有单元格中输入值,然后按Enter,控制转到handle_data_changed方法。我验证并检查ER_DATA_CHANGED-> MOD_ROWS或ER_DATA_CHANGED-> MOD_CELLS的已修改行,并使用在屏幕上输入的值更新我的Itab,然后再次执行 网格-> refresh_table_display(),以便将值再次显示在屏幕上。

问题是当我给出SORT标准或按年份(降序)按排序说(如果降格)时,如果网格已经包含2行,并且我们在底部添加了2009年则是第3行

金额年份状态

100 2007年老

200 2006年老

300 2009新

然后在ENTER上将第3行移至第1位,但第3行上的值不会改变!!! 例如,见下文

金额年份状态

300 2009新

100 2007年老

300 2009新

问题仅是在对ALV排序时&我在itab中有一个唯一的行索引来跟踪记录。 我觉得这在前端和后端更新中是不匹配的。 其他任何人都有线索,为什么这只会在某种程度上发生?

付费偷看设置
发送
3条回答
Bunny_CDM
1楼-- · 2020-08-17 07:52

嗨,

使用REFRESH_TABLE_DISPLAY方法调用此方法SET_SORT_CRITERIA。

My梦
2楼-- · 2020-08-17 07:47

十一年后,这个答案对我有所帮助,谢谢!

樱桃小丸子0093
3楼-- · 2020-08-17 07:52

在data_changed_finished事件之前,请勿执行refresh_table_display()。

干杯

菲尔

一周热门 更多>