2012-05-25 34 views
0

我在窗體上的vfp9中有一個網格控件。我有一個按鈕女巫刪除(包)當前記錄。刪除記錄後,網格找不到資源。它只剩下一個空矩形。 我做了這樣的事情: DELETE ALL PACK GO TOP thisform.grid1.RefreshGridControl刷新

,但沒有效果。提前致謝。

回答

1

正如添馬艦提到的......包在日常活動中真的很糟糕。然而,有一個「設置」,可以通過直至夜間處理行政任務的所有常規操作「隱藏」爲您記錄永久刪除記錄...

SET DELETED ON 
SET DELETED OFF 

通過「開啓」(只有它必須爲整個應用程序執行一次,除非你正在處理與私人數據會話有關的表單,那麼它也需要在那裏完成。SET DELETED ON告訴VFP隱藏標記爲刪除的所有記錄,以免它們混亂屏幕,它也讓他們隱藏任何類型的SQL查詢,所以你沒有得到標記爲刪除的記錄。

由SET DELETED OFF,將關閉隱藏並允許您重新查看任何/所有刪除的記錄試。這是爲了防止您意外標記要刪除的記錄並需要「回收」它(取消刪除)。

現在,所有的說。如果您標記爲刪除,記錄如查找標準,做一個全部刪除,包裝後的一套過濾器,這是壞...

所有,如果您需要在您的按鈕的單擊事件是

DELETE 
Thisform.YourGridObject.Refresh() 

並且記錄應從視覺上從列表中移除。當你發出一個PACK時,它實際上會關閉表格,從而從網格中解除綁定,刪除所有刪除的記錄,然後通過已清除的版本重新打開自身,但不會自動將其自身重新綁定到網格。

+0

非常感謝您的迴應! –

1

問題是,您正在重新創建網格的RecordSource,它不喜歡那樣。不知道更多關於你在做什麼,很難提供具體的建議。但是,在正常的應用程序活動中打包表格通常被認爲是不好的形式。一般來說,PACK是爲在非工作時間運行的管理代碼保留的,因爲它需要獨佔訪問表。

這裏你的目標是什麼?爲什麼要刪除表格中網格所基於的所有記錄?

添馬艦

+0

我使管理部分。我根據字段搜索記錄,並在此網格中顯示找到的記錄(使用SET FILTER TO)。如果我想我可以用上面的說明刪除這些記錄。 –

+0

添馬艦,你能幫助我嗎? –

1

VFP網格討厭像那樣修改記錄源。

您需要斷開您的網格記錄源(即將其設置爲「」),執行操作,然後重置記錄源並刷新。