点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个Ztable,其中有14...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个Ztable,其中有14...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我有一个Ztable,其中有14个字段,其中前5个是关键字段。
我也有一个显示alv Grid的z程序。 我们可以通过工具栏上的(+)按钮,通过此Z程序在ztable中添加条目。
因此,当我通过网格输入一堆值(复制粘贴)时,我会通过内部表获得所有值。 预计该itab已经有1万行数据,加上我们通过alv网格添加的数据。
我有itab X,它有1000行,通过ALV GRID,我要插入20行。 因此,它没有1020行。 在提交即插入ztable之前,我应该检查重复项。 z表具有前6个字段作为主键。
键1、2和3是公司代码,销售组织以及通过选择屏幕显示的另一个值,这些值将通过验证得到保护。
我的代码是这样的,但是它允许重复。我想拥有最好的方法。
这是因为我已经按erdat进行了排序,但仍然允许重复。 任何想法都会大有帮助。
DESCRIBE TABLE datatab_y LINES lv_y。(已经存在,加上新的) 描述表datatab_x行lv_x。 (已存在于网格中) *插入的总行数 *以为我可以做多次检查 cnt = lv_y-lv_x。 由erdat DESCENDING排序SORT datatab_y。 循环到datatab_y。 如果datatab_y-key3不是INITIAL。 在新键上3。 new_row = sy-tabix。 Endat。 在key3的末尾。 检查sy-tabix> new_row。 lv_dupflg = datatab_y-key3。 使用lv_dupflg执行send_dupkey_msg。 Endat。 ELSEIF datatab_y-key4不是INITIAL。 在新钥匙上4。 new_row = sy-tabix。 Endat。 在key4的末尾。 检查sy-tabix> new_row。 lv_dupflg = datatab_y-key4。 使用lv_dupflg执行send_dupkey_msg。 Endat。 ENDIF。
您可以考虑在用户输入完新行后立即检查重复项(如果oo alv发生事件数据更改)。 只需比较关键字段即可,无需循环。
如果您仍然希望像现在一样进行一次签入,则应遍历插入的记录,然后使用这些键阅读原始的itab,不要知道为什么必须在AT NEW,AT END进行。
再次,您可以查看此示例报告以了解更多信息:BCALV_EDIT_04
一周热门 更多>