如果可能的话我需要帮助,因为我被困在没有语法错误的地方 . 我正在使用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程序
在此先感谢所有人
1 回答
MODULE fill_ctable_control
的目的似乎是将整个数据库表读入it_customers . 每个PBO执行一次是有意义的 . 但是,您已将调用放入LOOP at it_customers
,这意味着它将对该内部表中的每个条目执行一次 . 当内部表完全没有't got any entries yet, it isn' t时,表格保持原样为空 .我建议你将模块调用移出循环 .