我有一个问题,不是我的表格控件的所有行都显示在 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_line
is 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
表格中仍然有两行,如本问题顶部的图像所示。
此时,屏幕显示如下:
我不确定为什么这个循环不处理我的表格的第二行,因此不会在屏幕上显示它。
谢谢。