首页 文章

ABAP将数据从数据库检索到屏幕表控件

提问于
浏览
0

如果可能的话我需要帮助,因为我被困在没有语法错误的地方 . 我正在使用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 回答

  • 1

    MODULE fill_ctable_control 的目的似乎是将整个数据库表读入it_customers . 每个PBO执行一次是有意义的 . 但是,您已将调用放入 LOOP at it_customers ,这意味着它将对该内部表中的每个条目执行一次 . 当内部表完全没有't got any entries yet, it isn' t时,表格保持原样为空 .

    我建议你将模块调用移出循环 .

相关问题