使用OOPS更新ALV中单元格中的值

2020-09-23 07:10发布

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

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


你好

我为可编辑ALV中的字段提供了自定义F4。 用户从F4值列表中选择一个值后,该值应在单元格中更新。

这里我不能使用refresh_table_display方法,因为它也会刷新其他数据。

如何更新特定单元格中的值?

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

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


你好

我为可编辑ALV中的字段提供了自定义F4。 用户从F4值列表中选择一个值后,该值应在单元格中更新。

这里我不能使用refresh_table_display方法,因为它也会刷新其他数据。

如何更新特定单元格中的值?

付费偷看设置
发送
6条回答
Bunny_CDM
1楼 · 2020-09-23 07:30.采纳回答

通过参考标准报告BCALV_EDIT_08解决了此问题

要更新ALV网格中选定的F4值,我们需要填充lvc_t_modi类型的内部表并将其分配给事件参数cr_event_data。

检查以下代码

用户选择

,然后在下面的代码中编写

***如果e_display = space,则更新ALV网格中的值。 "字段不得处于显示模式
ASSIGN er_event_data-> m_data-> * TO
lwa_modi_field-row_id = es_row_no-row_id。
lwa_modi_field-fieldname = e_fieldname。
lwa_modi_field-value = lwa_return-fieldval。
附加lwa_modi_field至


***如果我们不通过该指标,则选定的F4值将不会在网格中更新。
er_event_data-> m_event_handled = abap_true。

SAP小黑
2楼-- · 2020-09-23 07:37

F4:选择一个值,它会自动反映出来(您无需刷新任何内容)。 您的F4代码中必须有一个错误。 PS:您正在使用CL_GUI_ALV_GRID(OOPS也可能表示SALV,又名ALV对象模型)。

95年老男孩
3楼-- · 2020-09-23 07:22

嗨!

您应该检查此字段的字段目录中的F4_available设置是否处于活动状态,并通过ALV的register_f4_for_fields方法注册搜索帮助。 在这种情况下,单元格值将自动更新。 但是请记住,将调用DATA_CHANGED事件(如果您不想调用它的处理,则应在方法处理程序中检查e_onf4参数。

希望有帮助

Nir深蓝
4楼-- · 2020-09-23 07:28

嗨,桑德拉,

我正在使用CL_GUI_ALV_GRID类。 甚至我都认为它应该像在模块池中那样自动更新F4值,但是它没有发生。

我指的是此博客 https://blogs.sap.com/2013/04/02/how-to-easy-create-a-search-help-in-alv-oops-editable-field/

但是我不能使用refresh_Table_display方法,因为它也在刷新其他数据。

当用户在"说明"(ALV中的其他字段)中输入一些数据,然后在其他字段中按F4时,问题就会出现。 如果我使用refresh_table_display then,它会将用户输入的值替换为Description字段的程序内部值。

bbpeas
5楼-- · 2020-09-23 07:28

您无需刷新,代码有错误。

当学会了学习
6楼-- · 2020-09-23 07:15

您不应调用refresh_table_display。 请参阅Wiki帖子 https://wiki.scn.sap.com/wiki/display/Snippets/How+to+implement+F4+search+help+in+OO+ALV+Grid

或使用SLIS示例报告BCALV_GRID_EDIT

一周热门 更多>