我有一个问题,不是我的表格控件的所有行都显示在 ABAP 740 SP13 中。
例如,我有一个包含这两行的表:
这是执行此代码的表的状态:
CALL SCREEN 0300 STARTING AT 10 5
ENDING AT 85 16.
这会立即进入我的“输出前处理”代码:
*----------------------------------------------------------------------*
* PROCESS BEFORE OUTPUT *
*----------------------------------------------------------------------*
PROCESS BEFORE OUTPUT.
MODULE status_0300.
LOOP AT lt_transfer_confirm_tc
INTO ls_transfer_confirm_tc
WITH CONTROL tc_transfer_confirm
CURSOR tc_transfer_confirm-current_line.
MODULE tc_transfer_confirm_get_lines.
ENDLOOP.
哪里status_0300是:
MODULE status_0300 OUTPUT.
SET PF-STATUS 'STATUS_0300'.
" Confirm Material Number Count
SET TITLEBAR 'T05'.
ENDMODULE.
并且是tc_transfer_confirm_get_lines:
MODULE tc_transfer_confirm_get_lines OUTPUT.
g_tc_transfer_confirm_lines = sy-loopc.
ENDMODULE.
在我的 PBO 中循环的第一次迭代结束时,该ls_transfer_confirm_tc值与lt_transfer_confirm_tc表的第一行匹配,tc_transfer_confirm-current_lineis 1,并且g_tc_transfer_confirm_lines(in tc_transfer_confirm_get_lines) 设置为10。
循环的第二次迭代永远不会处理。光标从ENDLOOP(从第一次迭代)跳到说的那行CURSOR tc_transfer_confirm-current_line.(因为它是LOOP语句的结尾),最后跳到ENDLOOP没有停在该MODULE tc_transfer_confirm_get_lines行上。在这个循环结束时,ls_transfer_confirm_tc是初始的,tc_transfer_confirm-current_line是静止1的,并且g_tc_transfer_confirm_lines是静止的10。一直以来,lt_transfer_confirm_tc表格中仍然有两行,如本问题顶部的图像所示。
此时,屏幕显示如下:
我不确定为什么这个循环不处理我的表格的第二行,因此不会在屏幕上显示它。
谢谢。

