検出されなかったオプションのグループに対する呼び出しが失敗する理由
Dontfind() 関数が呼び出された場合) 、そのサブ要素のいずれかを呼び出すとエラーが発生するためです。これは、ヌル仮説を持つグループではサブ要素の仮説が生成されないためです。
このエラーを回避するには、まずグループ要素を確認する必要があります。IsNull チェックが True を返した場合は、どのサブ要素にもアクセスしないでください。
オプションの グループ要素が役立つ場合
DontFind() メソッドを呼び出すことで、要素の検索を高速化できます。
ここで「呼び出す」とは、Advanced タブ内のいずれかのセクション、または Expression ウィンドウのブロック プロパティにコードを記述することを意味します。リレーション で検索条件を設定する際に グループ要素のプロパティを参照する場合は、
IsNull チェックが自動的に行われます。これは、Advanced タブで Code をクリックすると確認できます。GroupSample.fsp sample プロジェクト
GroupSample.fsp sample プロジェクト (フォルダー %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Optional Group) で示されています。
グループ要素 InvoiceRequisiteGroup の Properties ダイアログで、オプション要素 ボックスが選択されています。
Advanced タブの Advanced pre-search relations セクションには、次のコードがあります。
未定義の仮説エラーを再現して修正する
Dontfind() 関数によってグループ要素 InvoiceRequisiteGroup に対するヌル仮説が生成されました。その結果、コードは存在しない仮説を呼び出してしまいました。
正しいコードは次のようになります。
Advanced pre-search relations セクションのコードをコメントアウトし、リレーション セクションで TotalSumHeader 要素の類似する search constraint の横にあるチェックボックスをオンにした状態で、Advanced タブの Code をクリックすると、コンパイル済みコードにはすでに
IsNull チェックが含まれていることがわかります。