如果可能,我需要帮助,因为我被困在没有语法错误的地方。 我正在使用abap从我的数据库表中检索数据到屏幕0300中的表格控件。 每当我在屏幕0300中按直接处理时,我的表格控件上没有任何信息。 这就是屏幕0300的流程逻辑:
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程序
提前全部谢谢
答案 0 :(得分:1)
MODULE fill_ctable_control
的目的似乎是将整个数据库表读入it_customers。每个PBO执行一次是有意义的。但是,您已将调用放入LOOP at it_customers
,这意味着对该内部表中的每个条目执行一次。当内部表尚未获得任何条目时,它根本不会被执行,因此表保持原样为空。
我建议你将模块调用移出循环。