2011-05-29 168 views
2

我有一个屏幕,其中有一个表格(由屏幕画笔生成),用于显示数据库表中的记录。屏幕上还有一个按钮,点击时会显示一个弹出窗口。弹出窗口具有向数据库表添加记录的窗体。某些操作后刷新SAP屏幕?

当表单被提交时,记录被添加到数据库,但是当弹出窗口关闭时,不刷新显示数据库记录的屏幕。新记录未显示。任何想法如何让桌面更新?只需再次调用屏幕似乎不起作用。

+1

您应该更改您的问题的标题,以指定这涉及ABAP表格控件的事实。 – mydoghasworms 2011-05-30 13:32:05

回答

0

您必须确保要显示的数据实际位于屏幕显示的内部表格中。

  • 您可以重新读取数据库表或
  • 追加在弹出的形式向内部表生成的行(如果行的类型不相同,你必须将字段移动到一个类似的结构第一)。

如果内部表格包含所有数据,但它仍不会显示在表格控件中,请确保表格控件中具有行数的字段已更新以反映额外的行。

1

只是因为您的表引用数据库字段并不意味着它会自动更新/填充以反映数据库的状态。 您需要以编程方式在显示屏幕之前发生的PBO(输出前处理)事件期间填充表格。

为了解这是如何工作的,您可能需要花一些时间了解ABAP dynpros(屏幕)中的表格控件。这里是一个很好的地方开始:

http://help.sap.com/saphelp_nw04/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/frameset.htm

0

请确保在新的生产线后更新线变量您的tableview的。

CONTROLS: gr_table TYPE TABLEVIEW USING SCREEN <your_screen_here>. 
DATA: gt_data TYPE STANDARD TABLE OF <your_type_here>, 
     gs_data LIKE LINE OF gt_data. 

PROCESS BEFORE OUTPUT. 
DESCRIBE TABLE gt_data LINES gr_table-lines. 
LOOP AT gt_data INTO gs_data 
     WITH CONTROL gr_table 
       CURSOR gr_table-current_line. 
ENDLOOP. 


PROCESS AFTER INPUT. 
<adding_the_new_line_somewhere_here>