点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的专家,
我正在使用REUSE_ALV_BLOCK_LIST_APPEND和REUSE_ALV_BLOCK_LIST_DISPLAY FM在同一屏幕上显示两个列表。 我正在使用旧的列表显示方式,因为我需要将两个列表都打印在一页上。
我将第一个列表的最后3列设置为可编辑,这很好。 如下所示,当我运行报告时,所有内容均正确显示:
我的问题是,在生成上述报告后,如果我要更改列的任何方面(优化宽度或更改任何单个列的宽度),或者出于任何原因,无论如何,都会更改第一个" 5" 可编辑单元格的行,如下所示:
如您所见,在以黄色圈出的行中,列表最后一行的数据被复制到列表的前5行。 在优化列表的宽度之后,您可以比较第一张图像(立即生成报告后)和第二张图像。
即使我不想修改宽度或触发任何其他此类事件,我也必须打印报告。 即使我在生成报告后立即执行打印命令,打印输出也会如上更改,将前5个可编辑行复制为表格的最后一行。
就我而言,最后一行不是正确的"总计"行,而是自定义行。 我已经在此附上了代码(在文本文件链接中,因为它的时间太长,无法容纳本文的字符数限制。
请帮助我解决这种情况。 同样,由于OOPS ALV或SALV无法在与阻止ALV列表相同的页面上打印多个网格,因此我使用了阻止ALV选项。
BR,
阿比拉什
代码: report.txt
report-output-before-events.jpg (144.1 kB)
我会说"这是标准程序中的错误",但是SAP可能会回答" ALV追加不支持输入"。
在调试中,我可以看到SAP相信这些行 第二个附加项中的第一个属于第一个附加项,并相信第二个附加项的行包含最后一行的值,照此处理,但随后又返回到内部表的相应行,只是它是第一个
问题出在包含LKKBLF01的子例程FIELDS_READ中:
SAP可能会在不检查之前添加以下几行(g_index是初始值,而g_index_slave是initial),我觉得这可以解决问题:> p>
现在,正如我所说,SAP可能不会更正此问题,但是您可以尝试在SAP支持部门获得帮助。
或使用其他技术(dynpro)重写程序
演示:SALV_BCALV_TEST_PRINT_EVENTS也可以作为印刷品的很好参考。
我启动了PF_STATUS:
使用所有必需的按钮/菜单功能为报告创建状态" STANDARD",并将其设置为PF_STATUS:
这是我将PF_STATUS链接到ALV块的方式:
我可以确定PF_STATUS之前和之后的菜单界面(基于SE41中的设计)的区别。
您正在调用标准pf状态,所以没有 真的改变了一切。 您可以尝试自己的状态并自行定义。
另一个方向是跟踪标准事件。 我发现您可以处理END_OF_LIST事件并更改输出表:
可能是这样,您可以找出应该处理的事件以避免此问题。
要直接打印而不是显示,请使用相同的代码+ 参数IS_PRINT及其组件print ='X'。 您有演示程序,例如BCALV_TEST_LIST_PRINT(或搜索论坛)。
一周热门 更多>