コードを使用して動作規則の条件を指定する - Greg Collins
in

InfoPath Dev

This Blog

Syndication

Archives

Greg Collins

コードを使用して動作規則の条件を指定する

InfoPath SP1 の非常に強力な機能の 1 つに xdExtension があります。この機能を使用すると、フォーム内の条件付き書式などの領域からコードを呼び出すことができます。これによって、データの妥当性の検証条件を指定するときに、InfoPath UI だけで指定するよりもずっと柔軟な条件指定ができます。

ただし、ここで問題にぶつかることがあります。xdExtension は条件付き書式の条件では機能しますが、動作規則の条件では機能しません。これが非常に残念なところです。問題の原因は、xdExtension の名前空間が manifest.xsf ファイルで定義されないことです。このため、動作規則は xdExtension を使用しようとすると失敗します。しかし、ありがたいことに、これは manifest.xsf ファイルを手動で更新するだけで簡単に修正できます。

このタスクでは、動作規則の条件で xdExtension を使用する方法を説明します。

manifest.xsf ファイルの修正

  1. デザイン モードで [File] メニューの [Extract Form Files] をクリックし、ファイルを一時フォルダに保存します。
  2. InfoPath を終了して、フォーム構成ファイルに対するロックを解除します。
  3. テキスト エディタを使用して、一時フォルダから manifest.xsf ファイルを開きます。
  4. xsf:xDocumentClass のルート要素の最後に、xdExtension で使用される次の名前空間を追加します。

xmlns:xdExtension="http://schemas.microsoft.com/office/infopath/2003/xslt/extension"

  1. manifest.xsf ファイルを保存し、テキスト エディタを終了します。

動作規則の条件の作成

  1. manifest.xsf ファイルを右クリックし、[Design] をクリックして、フォーム テンプレートを開きます。
  2. ボタンをビューに挿入します。
  3. ボタンをダブルクリックします。
  4. [Button Properties] ダイアログ ボックスでラベルを「Test xdExtension」に変更します。
  5. [Rules] をクリックし、[Add] をクリックします。
  6. 動作規則の名前を「Test xdExtension」とし、[Set Condition] をクリックします。
  7. [Condition] ダイアログ ボックスの 1 つ目のボックスの一覧の [The Expression] をクリックします。
  8. 式のボックスに「xdExtension:TestXdExtension()」と入力します。

    必要に応じてパラメータを受け付けるための関数を設定し、それを条件の式から渡すことができます。
  9. [Add Action] をクリックします。
  10. [Action] ボックスの一覧の [Show A Dialog Box Message] をクリックします。
  11. メッセージとして「Test Succeeded」と入力します。
  12. [OK] を 4 回クリックして、開かれているダイアログ ボックスをすべて閉じます。

動作規則の条件を評価する関数の作成

  1. Alt + Shift + F11 キーを押して、Microsoft Script Editor を開きます。
  2. 次の関数をコードに追加します (JScript の場合)。

function TestXdExtension()
{
    return true; // Quick test to make sure xdExtension is working
}

  1. Microsoft Script Editor を終了します。

この関数は、ブール値を返します。true が返された場合、動作規則の動作が処理されます。

確認

  1. フォームをプレビューします。
  2. ビューに挿入したボタンをクリックします。

ここで、動作規則が TestXdExtension 関数を呼び出し、true が返されます。引き続き、テストの成功を通知するメッセージを含むダイアログ ボックスが表示されます。

©2004 Greg Collins. All rights reserved. Licensed to Autonomy Systems, LLC for display on InfoPathDev.com.

Comments

No Comments

About Kaoru Okumura

Program Manager, Qdabra.com Kaoru worked for ten years at Microsoft as a program manager, and many years at IBM Tokyo Research Lab as an advisory researcher. She led projects on natural language related research and products including Japanese search and proofing tools. Kaoru holds a Master of Science in Mathematics from Kyushu University, and BA from International Christian University. She enjoys performing Butoh dance, and taking photography.
Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.