2011-05-29 156 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>