我遇到的问题是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
为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
表格中仍有两行,如本问题顶部的图片所示。
此时,屏幕显示如下:
我不确定为什么这个循环不会处理我桌子的第二行,因此不会在屏幕上显示它。
感谢。
答案 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.