行删除后刷新SALV过滤器

2020-08-27 05:50发布

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

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


我创建了一个使用SALV(cl_salv_table)和自定义用户状态的报告。 这使我可以在顶部放置一个名为" DELETE"的按钮。 如果用户选择SALV的一行或多行,我将在我的内部表中将其删除。 如果用户过滤了事先显示的数据,则在刷新方法(完整)之后将不执行此过滤器。

我的解决方案是在执行refresh方法之前,先读取过滤器,将其清除并添加回去。 但是,没有其他方法可以将其存档吗? 刷新(完全模式)并不能单独解决问题。

数据:lt_filters类型salv_t_filter_ref,
           lt_seltopt类型salv_t_selopt_ref。
     lt_filters = mr_alv-> get_filters()-> get()。
     mr_alv-> get_filters()-> clear()。
     循环到lt_filters分配字段符号()。
       lt_seltopt =  -r_filter-> get()。
       在lt_seltopt分配字段符号()中循环。
         mr_alv-> get_filters()-> add_filter(列名= -列名
                                             符号= -> get_sign()
                                             选项= -> get_option()
                                             低= -> get_low()
                                             高= -> get_high()。
       结局。
     结局。
 
     mr_alv->刷新(refresh_mode = if_salv_c_refresh => full)。
 

最诚挚的问候,

罗兰

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

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


我创建了一个使用SALV(cl_salv_table)和自定义用户状态的报告。 这使我可以在顶部放置一个名为" DELETE"的按钮。 如果用户选择SALV的一行或多行,我将在我的内部表中将其删除。 如果用户过滤了事先显示的数据,则在刷新方法(完整)之后将不执行此过滤器。

我的解决方案是在执行refresh方法之前,先读取过滤器,将其清除并添加回去。 但是,没有其他方法可以将其存档吗? 刷新(完全模式)并不能单独解决问题。

数据:lt_filters类型salv_t_filter_ref,
           lt_seltopt类型salv_t_selopt_ref。
     lt_filters = mr_alv-> get_filters()-> get()。
     mr_alv-> get_filters()-> clear()。
     循环到lt_filters分配字段符号()。
       lt_seltopt =  -r_filter-> get()。
       在lt_seltopt分配字段符号()中循环。
         mr_alv-> get_filters()-> add_filter(列名= -列名
                                             符号= -> get_sign()
                                             选项= -> get_option()
                                             低= -> get_low()
                                             高= -> get_high()。
       结局。
     结局。
 
     mr_alv->刷新(refresh_mode = if_salv_c_refresh => full)。
 

最诚挚的问候,

罗兰

付费偷看设置
发送
3条回答
土豆飞人
1楼 · 2020-08-27 05:58.采纳回答

罗兰·荣尼克(Roland Jungnickel)

在探索一件有趣的事情时,我在CL_HRPAYFR_FPOC_MGR类中注意到了 &方法SET_FILTERS_TO_TABLE,它们以类似的方式进行操作,但未设置任何刷新模式,因为默认值是SOFT刷新模式为" 1"。

spaceman01
2楼-- · 2020-08-27 06:06

刷新"软"(或称为"稳定")怎么办? 这应该尊重过滤器。

我自己还没有尝试过,所以不确定是否可行。 让我们知道。

me_for_i
3楼-- · 2020-08-27 06:16

好,所以我将此称为SAP bug或至少缺少的功能,然后将上述解决方案添加到我的已知解决方法集合中; p>感谢您的评论。 当我激活软模式时,我确定了问题。 因此问题依旧。

一周热门 更多>