首页 > 解决方案 > 表格控件空单元格

问题描述

在我的 dynpro 中,我有一个名为 的表控制器,TC300它显示来自我的数据库表的数据zma_kostl。当我在表控制器中更改一些数据时,即使在数据库表中数据也会被修改。当我将数据更改为其他一些随机数据时,这是真的。但是当我将单元格中的数据更改为空白值时,更改不会传播到数据库表。

你知道为什么吗?我认为 module 某处有错误save_data。你有什么想法,如何改进代码?

这是我的代码:

顶部包括:

FUNCTION-POOL zma_ic_screen.

TABLES  zma_kostl.

CONTROLS TC300 TYPE TABLEVIEW USING SCREEN 300.
DATA: cols LIKE LINE OF TC300-cols.

DATA it_zma_kostl TYPE TABLE OF zma_kostl.

Dynpro 300:

PROCESS BEFORE OUTPUT.
  MODULE data_retrieval.

  LOOP AT it_zma_kostl INTO zma_kostl WITH CONTROL TC300.
  ENDLOOP.

  MODULE SET_LINES.

PROCESS AFTER INPUT.
  LOOP AT it_zma_kostl.
    MODULE read_table_control_300.
  ENDLOOP.

  MODULE SAVE_DATA.

模块:

MODULE data_retrieval OUTPUT.
  IF it_zma_kostl IS INITIAL.
    SELECT kostl
      FROM zma_kostl
      INTO CORRESPONDING FIELDS OF TABLE it_zma_kostl.
  ENDIF.

ENDMODULE.

MODULE read_table_control_300 INPUT.
   MODIFY it_zma_kostl FROM zma_kostl INDEX tc300-current_line.
ENDMODULE.

MODULE save_data INPUT.
  MODIFY zma_kostl FROM TABLE it_zma_kostl.
ENDMODULE.

MODULE set_lines OUTPUT.
  DATA VLINES TYPE I.
  DESCRIBE TABLE it_zma_kostl LINES VLINES.
  TC300-LINES = VLINES + 1.
  DESCRIBE TABLE it_zma_work_section LINES VLINES.
  TC400-LINES = VLINES + 1.
ENDMODULE.

标签: abapdynpro

解决方案


推荐阅读