Table 控件不显示所有行

Table control does not display all rows

我有一个问题,我的 table 控件的所有行都没有显示在 ABAP 740 SP13 中。

例如,我有一个包含以下两行的 table:

这是执行此代码的 table 的状态:

CALL SCREEN 0300 STARTING AT 10 5
                 ENDING AT 85 16.

这会立即进入我的 Process Before Output 代码:

*----------------------------------------------------------------------*
*                        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 table 的第一行匹配,tc_transfer_confirm-current_line1,并且 g_tc_transfer_confirm_lines(在 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仍为1g_tc_transfer_confirm_lines仍为10。一直以来,lt_transfer_confirm_tc table 仍然有两行,如问题顶部的图片所示。

此时屏幕显示如下:

我不确定为什么这个循环不处理我的 table 的第二行,因此不在屏幕上显示它。

谢谢。

问题是我从未设置 tc_transfer_confirm-lines 的值,因此该值始终为 1。

以下代码运行成功:

*----------------------------------------------------------------------*
*                        PROCESS BEFORE OUTPUT                         *
*----------------------------------------------------------------------*
PROCESS BEFORE OUTPUT.
  MODULE status_0300.
  MODULE tc_trnsfr_cnfrm_change_tc_attr.
  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.

有了新模块 tc_trnsfr_cnfrm_change_tc_attr:

*&SPWIZARD: OUTPUT MODULE FOR TC 'TC_TRANSFER_CONFIRM'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE tc_trnsfr_cnfrm_change_tc_attr OUTPUT.
  DESCRIBE TABLE lt_transfer_confirm_tc LINES tc_transfer_confirm-lines.
ENDMODULE.