質問: どこからsuper()が呼ばれたのですか? フォームデータソース(SalesLine)では、 `validateWrite` メソッドを呼び出し、 `validateWrite` メソッドを呼び出す `super()`メソッドを呼び出します。他のチェックの中でSalesLineテーブル。 SaleLineテーブルでは、私は記録のためのカスタム機能を持っていて、いつかはデータの変更を止めます。 私は新しいフォームからSalesLineに書き込むときに、この機能を起動させたくありません。したがって、 `validateWrite` が新しいフォームから呼び出されたかどうかを調べるために、SalesLineテーブルの `validateWrite` メソッド内の条件をチェックしたいとします。 。これにより、新しいフォームからSalesLineの書き込みが呼び出された場合に、データの記録/停止をスキップできます。 正しいアプローチは何ですか? `SalesLine.write()`を呼び出す前にboolean `recordSaveChecks` を作成して設定することができますが、より良い方法がありますか? **編集:追加するフォーム固有のカスタム確認がないため、特定の1つのフォームから呼び出されたときにスキップする必要があるシステムワイド検証があります(したがって、SaleLineテーブルにあります)。**
回答: 検証ロジックをシステム全体に適用する必要があるため、レコードを挿入/更新する際にこの検証を防止する必要があるため、検証ロジックをフォームにはないテーブルに実装しました。 I think you can by override write() method of Form DataSource and use `SalesLine.doInsert();` and `SalesLine.doUpdate();`