0

外部結合を使用してリンクされた 2 つのデータソースを含むフォームがあります。Form Datasource Unit of Work フレームワークを使用してデータベースに書き込まれます。

現在、あるデータソース フォーム コントロールから別のフォーム データソース コントロールに移動すると、データが書き込まれます。ボタンがクリックされたときに、Framework の Form Datasource Unit を使用してアクティブ化/書き込みのみを行いたい。

あるフォーム コントロールから別のフォーム コントロールに移動するときに自動書き込み機能を防止する方法はありますか?

4

1 に答える 1

1

最初にHowTo: Unit of work implementation for a Formを見て、それと一致していることを確認してください。公式ドキュメントはChange Group and Optional Record Modesです。

レコードを「残す」ため、書き込みが発行されます。フォーカスがレコードから削除されたときのイベント メソッド シーケンスを参照してください。

validateWriteこれは、 true を返すときのシーケンスです。

  1. leaveRecord は true を返します
  2. validateWrite は true を返します
  3. 書き込み
  4. 書かれた
  5. leaveRecord は true を返します
  6. leaveRecord は true を返します (再び)

validateWriteこれは、 false を返すときのシーケンスです。

  1. leaveRecord は true を返します
  2. validateWrite が false を返す
  3. leaveRecord は false を返します

したがってvalidateWrite、保存したくない場合は、暗黙的に false を返すようにオーバーライドできます。どうしても貯めたいsuper()は電話してね!

leaveRecordまたは、書き込みを強制するために自分自身を呼び出すことができます。

if (record_ds.leaveRecord(true))
{}

record_ds.leaveRecord(true) を呼び出す場合、検証が失敗した場合など、レコードが保存されない可能性があることに注意してください。その場合、leaveRecord は false を返します。

標準の作業に「反対」して作業していることに注意してください。これにより、フォームの動作が他のフォームとは異なります。

于 2013-01-05T23:09:40.803 に答える