表格控件不显示所有行

时间:2016-07-06 16:56:54

标签: sap abap

我遇到的问题是ABAP 740 SP13中没有显示我的表格控件的所有行。

例如,我有一个包含这两行的表:

Values of LT_TRANSFER_CONFIRM_TC

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

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_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 Control displayed by SCREEN 0300

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

感谢。

1 个答案:

答案 0 :(得分:2)

问题是我从未设置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.