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_line
是1
,并且 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
仍为1
,g_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.
我有一个问题,我的 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_line
是1
,并且 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
仍为1
,g_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.