InfoPath SP1 の非常に強力な機能の 1 つに xdExtension があります。この機能を使用すると、フォーム内の条件付き書式などの領域からコードを呼び出すことができます。これによって、データの妥当性の検証条件を指定するときに、InfoPath UI だけで指定するよりもずっと柔軟な条件指定ができます。
ただし、ここで問題にぶつかることがあります。xdExtension は条件付き書式の条件では機能しますが、動作規則の条件では機能しません。これが非常に残念なところです。問題の原因は、xdExtension の名前空間が manifest.xsf ファイルで定義されないことです。このため、動作規則は xdExtension を使用しようとすると失敗します。しかし、ありがたいことに、これは manifest.xsf ファイルを手動で更新するだけで簡単に修正できます。
このタスクでは、動作規則の条件で xdExtension を使用する方法を説明します。
manifest.xsf ファイルの修正
- デザイン モードで [File] メニューの [Extract Form Files] をクリックし、ファイルを一時フォルダに保存します。
- InfoPath を終了して、フォーム構成ファイルに対するロックを解除します。
- テキスト エディタを使用して、一時フォルダから manifest.xsf ファイルを開きます。
- xsf:xDocumentClass のルート要素の最後に、xdExtension で使用される次の名前空間を追加します。
xmlns:xdExtension="http://schemas.microsoft.com/office/infopath/2003/xslt/extension" |
- manifest.xsf ファイルを保存し、テキスト エディタを終了します。
動作規則の条件の作成
- manifest.xsf ファイルを右クリックし、[Design] をクリックして、フォーム テンプレートを開きます。
- ボタンをビューに挿入します。
- ボタンをダブルクリックします。
- [Button Properties] ダイアログ ボックスでラベルを「Test xdExtension」に変更します。
- [Rules] をクリックし、[Add] をクリックします。
- 動作規則の名前を「Test xdExtension」とし、[Set Condition] をクリックします。
- [Condition] ダイアログ ボックスの 1 つ目のボックスの一覧の [The Expression] をクリックします。
- 式のボックスに「xdExtension:TestXdExtension()」と入力します。
必要に応じてパラメータを受け付けるための関数を設定し、それを条件の式から渡すことができます。 - [Add Action] をクリックします。
- [Action] ボックスの一覧の [Show A Dialog Box Message] をクリックします。
- メッセージとして「Test Succeeded」と入力します。
- [OK] を 4 回クリックして、開かれているダイアログ ボックスをすべて閉じます。
動作規則の条件を評価する関数の作成
- Alt + Shift + F11 キーを押して、Microsoft Script Editor を開きます。
- 次の関数をコードに追加します (JScript の場合)。
function TestXdExtension() { return true; // Quick test to make sure xdExtension is working } |
- Microsoft Script Editor を終了します。
この関数は、ブール値を返します。true が返された場合、動作規則の動作が処理されます。
確認
- フォームをプレビューします。
- ビューに挿入したボタンをクリックします。
ここで、動作規則が TestXdExtension 関数を呼び出し、true が返されます。引き続き、テストの成功を通知するメッセージを含むダイアログ ボックスが表示されます。
©2004 Greg Collins. All rights reserved. Licensed to Autonomy Systems, LLC for display on InfoPathDev.com.