最初にHowTo: Unit of work implementation for a Formを見て、それと一致していることを確認してください。公式ドキュメントはChange Group and Optional Record Modesです。
レコードを「残す」ため、書き込みが発行されます。フォーカスがレコードから削除されたときのイベント メソッド シーケンスを参照してください。
validateWrite
これは、 true を返すときのシーケンスです。
- leaveRecord は true を返します
- validateWrite は true を返します
- 書き込み
- 書かれた
- leaveRecord は true を返します
- leaveRecord は true を返します (再び)
validateWrite
これは、 false を返すときのシーケンスです。
- leaveRecord は true を返します
- validateWrite が false を返す
- leaveRecord は false を返します
したがってvalidateWrite
、保存したくない場合は、暗黙的に false を返すようにオーバーライドできます。どうしても貯めたい時super()
は電話してね!
leaveRecord
または、書き込みを強制するために自分自身を呼び出すことができます。
if (record_ds.leaveRecord(true))
{}
record_ds.leaveRecord(true) を呼び出す場合、検証が失敗した場合など、レコードが保存されない可能性があることに注意してください。その場合、leaveRecord は false を返します。
標準の作業に「反対」して作業していることに注意してください。これにより、フォームの動作が他のフォームとは異なります。