我有一個窗體有兩個使用外部連接鏈接的數據源。它通過使用表單數據源工作單元框架寫入數據庫。只有當按下按鈕才能寫入數據庫
截至目前,從一個數據源表單控件移動到另一個表單數據源控件時,數據被寫入。我只想在單擊按鈕時使用框架的Form Datasource Unit來激活/寫入。
當從一個窗體控件移動到另一個窗體控件時,是否有辦法阻止自動寫入功能?
我有一個窗體有兩個使用外部連接鏈接的數據源。它通過使用表單數據源工作單元框架寫入數據庫。只有當按下按鈕才能寫入數據庫
截至目前,從一個數據源表單控件移動到另一個表單數據源控件時,數據被寫入。我只想在單擊按鈕時使用框架的Form Datasource Unit來激活/寫入。
當從一個窗體控件移動到另一個窗體控件時,是否有辦法阻止自動寫入功能?
首先看看HowTo: Unit of work implementation for a Form來檢查你是否對齊。官方文檔是Change Group and Optional Record Modes。
由於您正在「離開」記錄而發出寫入,請參閱Event Method Sequences when Focus is Removed from a Record。
這是當validateWrite
返回true序列:
這是序列時validateWrite
返回false:
所以,你可以覆蓋validateWrite
默默地返回false
super()
! 或者您也可以撥打leaveRecord
自己逼寫:
if (record_ds.leaveRecord(true))
{}
當調用record_ds.leaveRecord(真)請遵守,它可能無法保存記錄,例如如果驗證失敗。在這種情況下,leaveRecord將返回false。
注意到您正在「反對」標準工作,這會使您的表單與其他表單的工作方式不同。
一月,謝謝你的回答。使用表單數據源工作單元,寫入方法永遠不會被調用。它只執行Write()事先寫入操作和Written()後寫入選項。由於它是在服務器上執行的,因此無法覆蓋實際的寫入操作。任何進一步的建議是讚賞。 – user1949788
答覆已更新。 –
另一個更好的更新,有點遲。我不得不知道'record_ds.leaveRecord(true)'是如何工作的。 –