ABAP将数据从数据库检索到屏幕表控件
如果可能的话,我需要帮助,因为我被困在一个没有语法错误的地方。 我正在使用abap将数据从数据库表检索到屏幕0300中的表控件。 每当我在屏幕0300中按direct processing(直接处理)时,我的表格控件上没有任何信息。 这是屏幕0300的流程逻辑:ABAP将数据从数据库检索到屏幕表控件,abap,opensql,dynpro,Abap,Opensql,Dynpro,如果可能的话,我需要帮助,因为我被困在一个没有语法错误的地方。 我正在使用abap将数据从数据库表检索到屏幕0300中的表控件。 每当我在屏幕0300中按direct processing(直接处理)时,我的表格控件上没有任何信息。 这是屏幕0300的流程逻辑: PROCESS BEFORE OUTPUT. MODULE STATUS_0300. LOOP at it_customers into WA_customerS WITH CONTROL tc300. MODULE f
PROCESS BEFORE OUTPUT.
MODULE STATUS_0300.
LOOP at it_customers into WA_customerS WITH CONTROL tc300.
MODULE fill_ctable_control .
ENDLOOP.
PROCESS AFTER INPUT.
LOOP at it_CUSTOMERs .
module read_ctable_control .
ENDLOOP.
MODULE USER_COMMAND_0300.
这就是PBO/PAI代码:
module FILL_CTABLE_CONTROL output.
IF it_CUSTOMERS is initIAl.
SELECT * FROM zy2014_42_CUSTOM
INTO CORRESPONDING FIELDS OF TABLE it_CUSTOMERS.
ENDIF.
endmodule. " FILL_CTABLE_CONTROL OUTPUT
*&---------------------------------------------------------------------*
*& Module READ_CTABLE_CONTROL OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module READ_CTABLE_CONTROL intput.
IF sy-stepl = 1.
tc300-lines = tc300-top_line + sy-loopc - 1.
ENDIF.
* move fields from work area to scrren fields
MOVE-CORRESPONDING wa_CUSTOMERs TO zy2014_42_TCCUSTOMERS.
endmodule.
module USER_COMMAND_0300 input.
case ok_code .
when 'BACK'.
LEAVE TO SCREEN 100.
ENDCASE.
SELECT * FROM zy2014_42_CUSTOM
INTO CORRESPONDING FIELDS OF TABLE it_CUSTOMERS.
CLEAR OK_CODE.
endmodule.
考虑到我使用的是dynpro程序
提前感谢模块填充表控制的目的似乎是将整个数据库表读取到您的it客户中。每个PBO执行一次是有意义的。但是,您已经将调用放入it\u customers的
循环中,这意味着对该内部表中的每个条目执行一次调用。当内部表还没有任何条目时,它根本不会被执行,因此表仍然保持为空
我建议您将模块调用移出循环。在调用dynpro之前,是否在某个地方填充了客户?因为如果PBO上的it客户是空的,PBO中it客户上的循环就没有什么可循环的,因此永远不会执行模块填充表控制。小问题:在模块读取表控制输入中输入应为输入。你没有收到任何语法错误吗?@DirkTrilsbeek我不确定是否收到你的评论,但这是第一个循环?程序中的客户,因此我确定在我将他们移出循环之前没有填充,但表上仍然没有显示任何数据:/