in

InfoPath Dev

This Blog

Syndication

Archives

Greg Collins

  • Internet Explorer のクロスドメイン セキュリティのダイアログ ボックスが表示されないようにする

    Internet Explorer は、既定の設定の場合、InfoPath フォームが複数のドメインにまたがってデータにアクセスするときに警告を表示することがあります (図 1 を参照)。タイトル バーのラベルが "Internet Explorer" になっているのは、InfoPath ではなく Internet Explorer がセキュリティ上のリスクを警告していることを示します。これはセキュリティの点では有用ですが、制御された環境で作業している場合は、このダイアログ ボックスがわずらわしくなってくることがあります。


    図 1 Internet Explorer のクロスドメイン データ アクセスのセキュリティ リスクを通知するダイアログ ボックス

    たとえば、New メソッドまたは NewFromSolutionWithData メソッドを初めて使用するときに、図 1 のようなセキュリティ警告ダイアログ ボックスが表示されます。[はい] をクリックすると、メソッドは想定どおりに処理を行います。[いいえ] をクリックすると、アクセスが拒否されたことを通知するエラー ダイアログ ボックスが表示され、メソッドは失敗します。この警告ダイアログ ボックスが表示されるのは、フォームの使用中に 1 回だけです。それ以降は、このボックスの選択が既定で再使用されます。新しく選択し直すには、フォームを閉じて開き直す必要があります。

    フォームを Web サーバーに発行している場合は、このダイアログ ボックスが表示されないことがあります。フォーム テンプレートに完全な信頼を設定するか、またはダイアログ ボックスを無効する方法で、このダイアログ ボックスが表示されないようにすることができます。

    このタスクでは、Internet Explorer のセキュリティ設定を変更して、Internet Explorer のセキュリティ リスクのダイアログ ボックスを無効にします。この変更によってダイアログ ボックスが表示されなくなるのは、設定が変更されたマシン上だけです。

    Internet Explorer のセキュリティ リスクのダイアログ ボックスを無効にする

    1. [ツール] メニューの [インターネット オプション] をクリックします。
    2. [インターネット オプション] ダイアログ ボックスの [セキュリティ] タブで、Web コンテンツのゾーンとして [イントラネット] をクリックし、[レベルのカスタマイズ] をクリックします。
    3. [その他/ドメイン間でのデータ ソースのアクセス] 設定を探し、[有効にする] をクリックします (図 2 を参照)。
    4. [OK] をクリックし、表示される警告ダイアログ ボックスで [はい] をクリックします。
    5. [OK] をクリックして、[インターネット オプション] ダイアログ ボックスを閉じます。


    図 2 Internet Explorer でのクロスドメイン データ アクセスを有効にします。

    これらの Internet Explorer セキュリティ オプションは、マシンごとの設定です。ソフトウェア展開の一環としてこのソリューションの使用を選択する場合は、フォームを使用する各マシンで、前述の手順に従う必要があります。

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

    英文記事: Prevent the Internet Explorer Cross-Domain Security Dialog Boxからの翻訳

  • パラメータ化されたアクティブ サーバー ページからリンク画像を表示する

    フォームに、フィールド値に基づいてカスタム画像を表示することが必要になる場合があります。これは、パラメータをとるアクティブ サーバー ページ (ASP: Active Server Page) を使用して実行できます。ASP は、バーコード、地図、写真などの画像を返すことができます。フォームでは、リンク画像コントロールを使用します。

    このタスクでは、リンク画像のバインドを設定して、メイン データ ソースの 2 つのフィールド値を使用して ASP から画像を取得する方法を説明します。ここでは、パラメータを受け取って画像を返すことができる ASP が既に存在することを前提としています。まず、新しい空白のフォームを作成しておきます。

    メイン データ ソースにパラメータ フィールドを追加する

    1. [データ ソース] 作業ウィンドウを開きます。
    2. Param1」および「Param2」という名前の 2 つのテキスト フィールドを追加します。

    カスタムのリンク画像のバインドを作成する

    1. [コントロール] 作業ウィンドウを開きます。
    2. ビューに画像を挿入します。
    3. [画像コントロールの挿入] ダイアログ ボックスで、[リンクとして挿入する] をクリックし、[OK] をクリックします。
    4. ビューの画像コントロールをダブルクリックします。
    5. [画像のプロパティ] ダイアログ ボックスで、XPath を以下と置き換えます。

    concat("http://server/picture.asp?param1=", my:Param1, "&param2=", my:Param2)

    使用しているサーバー、ASP、およびパラメータの名前に合わせて、URL を適切に修正します。

    1. [ユーザーに新しい画像の参照を許可する] チェック ボックスをオフにして、[OK] をクリックしします。

    確認

    フォームをプレビューします。URL が有効で ASP が適切に動作している場合は、Param1 および Param2 に有効な値を入力したときに、適切に更新された画像が表示されます。

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

    英文記事: Display a Linked Picture from a Parameterized Active Server Pageからの翻訳

  • フォーム テンプレートを InfoPath キャッシュから削除する

    フォーム テンプレートを削除したのに、引き続きそのフォーム テンプレートでフォームが開かれることがあります。これを奇妙に思われるかもしれませんが、InfoPath がフォーム テンプレートをキャッシュすることがわかれば納得できるでしょう。物理コピーは削除されていますが、キャッシュされているフォーム テンプレートがまだ残っているのです。

    フォーム テンプレートは、InfoPath で初めて使用されるときにキャッシュされます。これによって、オンライン上に公開された InfoPath フォームをオフラインでも使用できます。また、性能も向上します。物理フォーム テンプレートとキャッシュ フォーム テンプレートの両方が削除されると、それを使用するフォームを InfoPath で開くことができなくなります。

    フォーム テンプレートの物理コピーを削除せずに、InfoPath キャッシュからフォーム テンプレートを削除することもできます。これは、フォームの開発中に、適用した変更を表示するときなどに必要になります。このタスクでは、フォーム テンプレートを InfoPath キャッシュから削除する方法を説明します。

    キャッシュからフォーム テンプレートを削除する

    1. InfoPath を起動します。
    2. [フォームの入力] ダイアログ ボックスの [すべてのフォーム] カテゴリをクリックします。
    3. InfoPath キャッシュから削除するフォーム テンプレートを選択します。

      目的のフォーム テンプレートが一覧に含まれていない場合は、[フォームの入力] ダイアログ ボックスの左上の [フォームのカテゴリ] の一覧から [すべてのフォーム] を選択します。
    4. ダイアログの右上の [フォームのタスク] の一覧から [このフォームの削除] をクリックします。
    5. InfoPath を終了します。

    確認

    フォーム テンプレートの物理コピーおよびキャッシュ コピーの両方を削除したら、そのフォーム テンプレートから作成されたフォーム ファイルを開きます。まだ InfoPath は起動されますが、フォーム テンプレートが見つからないことを通知する警告ダイアログ ボックスが表示されます。

    InfoPath 以外で フォームの XML を開く

    フォームが InfoPath で起動されないようにする場合は、フォームから (処理命令と呼ばれます) 2 つの タグを削除する必要があります。Notepad などのテキスト エディタを使用して、フォームの .xml ファイルから次の 2 つの処理命令を削除します。

    <?mso-infoPathSolution . . . ?>
    <?mso-application . . . ?>

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

    英文記事: Remove a Form Template from the InfoPath Cacheからの翻訳

  • ファイルのダウンロードでセキュリティの警告が表示されないようにする

    InfoPath 2003 SP1 のインストール後、Web サイトまたは SharePoint から InfoPath フォーム テンプレート (図 1 を参照) またはフォーム (図 2 を参照) を開こうとすると、新しい [ファイルのダウンロード] ダイアログ ボックスが表示されるようになったのにお気づきかもしれません。これらの警告ダイアログ ボックスをわずらわしく感じる場合は、次の手順で表示されないようにすることができます。


    図 1 InfoPath フォーム テンプレートの [ファイルのダウンロード] ダイアログ ボックス


    図 2 InfoPath フォームの [ファイルのダウンロード] ダイアログ ボックス

    InfoPath フォーム テンプレートの [ファイルのダウンロード] ダイアログ ボックスが表示されないようにする

    InfoPath フォーム テンプレートの [ファイルのダウンロード] ダイアログ ボックスが表示されないようにする方法は 2 つあります。最も簡単な方法は、[ファイルのダウンロード] ダイアログ ボックスの一番下にある [この種類のファイルであれば常に警告する] チェック ボックスをオフにする方法です (図 1 を参照)。2 つ目の方法については、次の手順に従います。

    1. Windows エクスプローラの [ツール] メニューの [フォルダ オプション] をクリックします。
    2. [フォルダ オプション] ダイアログ ボックスの [ファイルの種類] タブで、「XSN」と入力します。

      リスト ボックスが自動的にスクロールして、[Microsoft Office InfoPath フォーム テンプレート] が選択されます。
    3. [詳細設定] をクリックします。
    4. [ダウンロード後に開く確認をする] チェック ボックスをオフにし、[OK] をクリックします。

    InfoPath フォームの場合に [ファイルのダウンロード] ダイアログ ボックスが表示されないようにする

    1. [登録されているファイルの種類] ボックス内をクリックしてフォーカスを設定し、「INFO」と入力します。
    [登録されているファイルの種類] ボックスが自動的にスクロールして、[Microsoft Office InfoPath 1.0 XML ドキュメント] が選択されます。これを図 3 に示します。


    図 3 ファイルの種類として InfoPath XML ドキュメントを選択します。

    1. [詳細設定] をクリックします。
    2. [ダウンロード後に開く確認をする] チェック ボックスをオフにし (図 4 を参照)、[OK] をクリックします。


    図 4 [ファイルのダウンロード] ダイアログ ボックスが表示されないようにします。

    1. [閉じる] をクリックします。

    以上の変更により、Web サイトまたは SharePoint から InfoPath フォーム テンプレートまたはフォームを開いても、この警告ダイアログ ボックスは表示されなくなります。

    これらの手順の配備は簡単ではありませんが、今後、別のオプションが出てくる可能性もあります。それまでは、ユーザーがダイアログ ボックスの [開く] をクリックするか、前述の手順に従ってダイアログ ボックスが表示されないようにすることができます。

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

    英文記事: Prevent the File Download Security Warningの翻訳

  • .XML 以外の拡張子のファイルを InfoPath で開く

    企業や個人でしばらく XML ファイルを使用していると、.xml 以外のファイル拡張子のファイルが多数できることがあります。これらのファイルの拡張子が .xdf (XML データ ファイル) であるとします。InfoPath では、これらの .xdf ファイルを、その拡張子のままでメイン データ ソースまたはセカンダリ データ ソースとして使用できます。InfoPath では、ファイルに有効な XML が含まれていれば、.xdf 拡張子を含む完全パスおよびファイル名を入力するだけで、ファイルを使用できます。

    このタスクでは、これらの .xdf ファイルをダブルクリックしたときに InfoPath で開く方法を説明します。以下に示すように、これはわずかな変更で実現できます。

    InfoPath で開く .xdf ファイルを準備する

    .xdf ファイルの冒頭に、処理命令 (PI: Processing Instructions) と呼ばれる 2、3 行の XML コードを配置する必要があります。これらの PI は、既存の InfoPath .xml ファイルの冒頭に置かれています。PI は、使用する .xdf ファイルと一緒に開くフォーム テンプレートを使用して作成されたファイルから取得する必要があります。また、InfoPath フォームの名前空間を .xdf ファイルのルート要素で宣言する必要があります。これらの変更について説明します。

    XML 宣言の処理命令

    <?xml version="1.0" encoding="UTF-8"?>

    .xdf ファイルの最初の行は XML 宣言の PI です。通常はこれをそのままコピーできますが、UTF-8 以外のエンコーディングを使用している場合は、適宜修正します。

    InfoPath 処理命令

    <?mso-infoPathSolution name="..." solutionVersion="1.0.0.1" productVersion="11.0.6357" PIVersion="1.0.0.0" href="..." ?>

    .xdf ファイルの 2 行目は InfoPath mso-infoPathSolution PI です。これは、InfoPath によってさまざまな目的で使用されます。ここでは属性ごとの説明は省きますが、これらは、作成済みの最新バージョンのフォーム テンプレートで作成されるフォームと一致するはずです。

    <?mso-application progid="InfoPath.Document"?>

    .xdf ファイルの 3 行目は InfoPath mso-application PI です。これは、ファイル システムに、このファイルが InfoPath に属していることを通知します。

    InfoPath 名前空間

    <RootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:my="..." xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xml:lang="en-us">

    宣言する名前空間の数に制限はありません。フォーム テンプレートによって作成される、サンプルの .xml ファイルで宣言されるすべての名前空間が .xdf ファイルのルート要素に存在することを確認する必要があります。

    .xdf ファイルの「開く」アクションを作成する

    ここまでで、.xsd ファイルに PI および名前空間を追加できました。次は、オペレーティング システムに、.xdf ファイルをダブルクリックしたときの処理を通知する必要があります。

    InfoPath で開くために必要なアクションを識別する

    1. Windows エクスプローラの [ツール] メニューの [フォルダ オプション] をクリックします。
    2. [フォルダ オプション] ダイアログ ボックスの [ファイルの種類] タブに「INFOPA」と入力して、INFOPATHXML ファイルの種類にすばやく移動します。
    3. [詳細設定] をクリックします。
    4. [開く] アクションをクリックし、[編集] をクリックします。
    5. このファイルの種類を開くために使用されている情報をコピーします (これを .xdf ファイルで使用します)。
    6. [キャンセル] を 2 回クリックして、[フォルダ オプション] ダイアログ ボックスに戻ります。

    .xdf ファイルを開くアクションを設定する

    1. ファイルの種類のリスト内をクリックしてフォーカスを設定します。
    2. XDF」と入力して、サンプルの XDF ファイルの種類にすばやく移動します。
    3. [詳細設定] をクリックします。
    4. [開く] アクションが存在する場合は [編集] をクリックします。ない場合は [新規] をクリックして作成します。
    5. 前にコピーしていた情報を入力します。
    6. [OK] を 3 回クリックして、設定を保存します。

    確認

    これで完了です。更新した .xdf ファイルのいずれかをダブルクリックして、InfoPath で開きます。

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

    英文記事: Launch Files with Extensions Other Than .XML in InfoPathよりの翻訳

  • 番号付きのリストを続ける

    InfoPath で番号付きリストを作成する際に、最初のリストを中断したところから 2 つ目のリストの番号を付けることが必要になる場合があります。Microsoft Word では、2 つ目のリストの番号を右クリックし、[自動的に番号を振る] をクリックできます。しかし、InfoPath ではこの操作ができません。その代わりに、Word ほど便利ではありませんが、番号を振り直す方法がいくつか用意されています。

    このタスクでは、番号付きのリストを続ける方法を 2 つ紹介します。1 つは特定の数字から番号を振り始める方法、もう 1 つは段落内改行を使用する方法です。どちらのアプローチにも、長所と短所があります。まず、新しい空白のフォームを作成しておきます。

    アプローチ 1 – 特定の数字から番号を振り始める

    あまり目立ちませんが、InfoPath には、[箇条書きと段落番号] 作業ウィンドウの一番下に番号付きリストの開始番号を指定できる機能があります。このアプローチの長所は、2 つのリスト間に配置されたコンテンツを通常の段落として表示できることです。この段落はインデントされず、コンテンツも実際にはリストに含まれていません。また、使用できるコンテンツに制限はありません。一方、短所は 2 つ目のリストの開始番号として選択された数字が固定されるので、1 つ目のリストで項目の増減があった場合に更新が必要になることです。

    項目が 10 個ある番号付きリストを作成する

    1. [段落番号] ツールバー ボタンをクリックして、番号付きリストを作成します。
    2. 番号付きリストに任意の項目を 10 個追加します。

    リストの開始番号を指定する

    1. リストの 5 番目の項目の最後をクリックしてカーソルを配置します。
    2. Enter キーを押し、Backspace キーを押してリストを分けます。
    3. リストに含まれないコンテンツを任意で追加します。
    4. 2 つ目のリストの最初をクリックして、カーソルを配置します。
    5. [書式] メニューの [箇条書きと段落番号] をクリックします。
    6. [箇条書きと段落番号] 作業ウィンドウの一番下にある [開始番号] ボックスで、番号として「6」を指定します。

    番号付けにはアラビア数字、ローマ数字、およびアルファベットから選択できますが、おもしろいことに [開始番号] ボックスに表示されるのは常にアラビア数字です。

    アプローチ 2 – 段落内改行の使用

    もう 1 つのあまり目立たない機能は、リッチ テキスト編集に含まれています。リスト項目で Enter キーを押すと新しいリスト項目が作成されますが、代わりに Shift + Enter キーを押すと、段落内改行を作成できます。このアプローチの長所は、リストが実際には中断されないことです。したがって、2 つ目以降のリストで番号がずれる問題はありません。短所は、段落内改行がリスト項目と左揃えになるようにインデントされること、およびリストに含めていないコンテンツも実際はリスト項目の一部であり、レイアウト用の表が新しいリスト項目に強制的に適用されることです。また、このアプローチでは、特定の書式設定機能が適切に (またはまったく) 機能しないことがあります。

    項目が 10 個ある番号付きリストを作成する

    1. [段落番号] ツールバー ボタンをクリックして、番号付きリストを作成します。
    2. 番号付きリストに任意の項目を 10 個追加します。

    段落内改行の挿入

    1. リストの 5 番目の項目の最後をクリックしてカーソルを配置します。
    2. Shift + Enter キーを押して段落内改行を作成します。
    3. リストに含めないコンテンツをいくつか任意で追加します。段落内改行するときは、Enterキーの代わりに必ず Shift + Enter キーを使用します。

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

    英文記事:Continue a Number Listからの翻訳
     

  • 補助フォームを開く

    InfoPath フォームでは多くのことを実行できます。しかし、ときには 1 つのフォームから、関連するタスクを実行する別のフォームを開きたい場合があります。また、全体的なソリューションの一部として、多数のフォームを連携させることが必要になる場合もあります。

    このタスクでは、複数のボタンを作成し、それぞれが XDocuments コレクションの NewNewFromSolutionNewFromSolutionWithData の各メソッドを使用する補助フォームを開くようにします。各メソッドでは、補助フォームまたはドキュメントへの絶対パスが要求されます。このタスクでは補助フォーム、ソース フォーム、および作成されるドキュメントをすべて同じフォルダに保存するので、XDocument.Solution.URI プロパティからパスを取得します。これによって、フォームおよびテンプレートを移動してもコードを更新せずにすみます。まず、補助フォーム用に新しい空白のフォームを作成しておきます。

    補助フォーム

    補助フォームの作成

    1. ビューの一番上に「Supporting Form」と入力し、Enter キーを押します。
    2. [コントロール] 作業ウィンドウから、テキスト ボックスを挿入します。
    3. [ファイル] メニューの [上書き保存] をクリックし、[保存] をクリックします。
    4. MultiForm」という名前のフォルダを作成します。
    5. ファイルに「Supporting.xsn」という名前を付け、[保存] をクリックします。
    6. InfoPath を終了します。

    補助フォームを使用してテスト ドキュメントを作成する

    1. MultiForm フォルダ から Supporting.xsn ファイルを開きます。
    2. テキスト ボックスに「Test Data」と入力します。
    3. フォームを「Form1.xml」という名前で MultiForm フォルダに保存します。
    4. InfoPath を終了します。

    これで、補助フォームおよびテスト ドキュメントを作成できたので、今度は補助フォームを開くために使用するソース フォームを作成します。もう一度、新しい空白のフォームを作成しておきます

    ソース フォーム

    ソース フォームの作成

    1. ビューの一番上に「Source Form」と入力し、Enter キーを押します。
    2. [コントロール] 作業ウィンドウから、ボタンを 3 つ挿入します。

    絶対パスの識別

    1. [ツール] メニューの [プログラミング | 読み込み時のイベント] をクリックします。
    2. 他の関数からグローバルにアクセスできるように、次のような sFormPath 変数宣言を OnLoad イベント ハンドラの直前 (外側) に追加します。

    var sFormPath = "";

    1. OnLoad イベント ハンドラに次のコードを追加します。

    var sUri = XDocument.Solution.URI;
    var i = sUri.lastIndexOf("\\");
    if(-1 == i)
        i = sUri.lastIndexOf("/");
    sFormPath = sUri.substring(0, i + 1);

    1. InfoPath のデザイン モードに戻ります。

    [New] ボタンのコードを追加する

    1. 1 つ目のボタンをダブルクリックし、ラベルを「New」に変更し、ID を「btnNew」に変更してから、[フォームのコードを編集] をクリックします。
    2. btnNew OnClick イベント ハンドラに次のコードを追加します。

    Application.XDocuments.New(sFormPath + "Form1.xml");

    1. InfoPath デザイン モードに戻ります。

    [NewFromSolution] ボタンのコードを追加する

    1. 2 つ目のボタンをダブルクリックし、ラベルを「NewFromSolution」に変更し、ID を「btnNewFromSolution」に変更してから、[フォームのコードを編集] をクリックします。
    2. btnNewFromSolution OnClick イベント ハンドラに次のコードを追加します。

    Application.XDocuments.NewFromSolution(sFormPath + "Supporting.xsn");

    1. InfoPath デザイン モードに戻ります。

    [NewFromSolutionWithData] ボタンの背後のコードを追加する

    1. 3 つ目のボタンをダブルクリックし、ラベルを「NewFromSolutionWithData」に変更し、ID を「btnNewFromSolutionWithData」に変更してから、[フォームのコードを編集] をクリックします。
    2. btnNewFromSolutionWithData OnClick  イベント ハンドラに次のコードを追加します。

    Application.XDocuments.NewFromSolutionWithData(sFormPath + "Form1.xml", sFormPath + "Supporting.xsn");

    Save the form:

    1. Save your code and close the script editor.
    2. In the InfoPath designer, choose Save from the File menu, and then click Save.
    3. Navigate to the MultiForm folder.
    4. Name your file Source.xsn, and then click Save.
    5. Close InfoPath.

    フォームの保存

    1. コードを保存し、スクリプト エディタを終了します。
    2. InfoPath のデザイン モードで、[ファイル] メニューの [上書き保存] をクリックし、[保存] をクリックします。
    3. MultiForm フォルダに移動します。
    4. ファイルに「Source.xsn」という名前を付け、[保存] をクリックします。
    5. InfoPath を終了します。

    確認

    これで、ソース テンプレート、補助テンプレート、補助テスト ドキュメントを作成できたので、さまざまなメソッドを試します。フォームをプレビューし、それぞれのボタンをクリックして結果を確認します。

    [New] または [NewFromSolutionWithData] ボタンを初めてクリックしたときに、図 1 のようなセキュリティの警告ダイアログ ボックスが表示されるのにお気づきでしょう。このダイアログ ボックスを非表示または無効にする方法については、「Internet Explorer のクロスドメイン セキュリティのダイアログ ボックスが表示されないようにする」を参照してください。


    図 1 Internet Explorer のクロスドメイン データ アクセスのセキュリティ リスクを通知するダイアログ ボックス

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

    英文記事:  Launch a Supporting Formよりの翻訳

  • コード経由でドロップダウン リスト ボックスを設定する

    InfoPath ではドロップダウン リスト ボックスの項目の設定は簡単にできますが、デザイン モードでは実現できないような複雑な設定が必要になることがあります。これは、InfoPath 外で少し作業することで可能になります。コード経由のドロップダウン リスト ボックスの設定は非常に強力ですが、コード ブロックの保持機能を使用する必要があります。

    このタスクでは、ドロップダウン リスト ボックスをコード経由で設定します。ドロップダウン リスト ボックスは、保持するコード ブロックの作成に使用されるセクション内に配置します。まず、新しい空白のフォームを作成しておきます。

    ビューの設計

    1. [コントロール] 作業ウィンドウを開きます。
    2. ビューにセクションを挿入します。
    3. セクションにドロップダウン リスト ボックスを挿入します。

    オプションのリストを返すコードを書く

    1. Alt + Shift + F11 キーを押して Microsoft Script Editor を開きます。
    2. 次の関数を挿入します。

    Java Script:
    function PopulateDropdown(sSelectedValue)
    {
        return "<option value=''>Select...</option><option value='Test'>Test</option>";
    }

    C#:
    public string PopulateDropdown(string sSelectedValue)
    {
        return "<option value=''>Select...</option><option value='Test'>Test</option>";
    }

    1. コードを保存し、Microsoft Script Editor を閉じます。

    ビューの .xsl ファイルを変更して、保持するコード ブロックを作成する

    1. InfoPath デザイン モードで、[ファイル] メニューの [フォーム構成ファイルの取り出し] をクリックします。
    2. 取り出したフォーム構成ファイルの保存先を選択し、[OK] をクリックします。
    3. InfoPath を終了して、フォーム構成ファイルに対するロックを解除します。
    4. テキスト エディタを使用して、ビューの.xsl ファイルを開きます。
    5. ドロップダウン リスト ボックスを含む xsl:template を探します。
    6. xsl:template 要素とそれに関連付けられている xsl:apply-templates 要素の両方で、mode="_nn" 属性を mode="xd:preserve" と置き換えます。

    mode 属性の値は、xsl:template 要素と xsl:apply-templates 要素の両方で同じになります。

    1. このドロップダウン リスト ボックス用にリストされているすべての option 要素を次のコードと置き換えます。

    <xsl:value-of select="xdExtension:PopulateDropdown(string(my:BoundField))" disable-output-escaping="yes"/>

    ここで my:BoundField は select 要素の xd:binding 属性の値と同じです。

    1. .xsl ファイルを保存して、テキスト エディタを閉じます。

    確認

    1. manifest.xsf ファイルをダブルクリックして、変更したソリューションを起動します。

      InfoPath エディタには、"Select..." および "Test" が設定されたドロップダウン リスト ボックスが表示されます。
    2. [ツール] メニューの [このフォームのデザイン] をクリックします。
    3. InfoPath デザイン モードで、保持しているコード ブロックを示す赤いボックスが表示されます。

    これで、PopulateDropdown 関数を修正して、必要な情報を処理してドロップダウン リスト ボックスに設定できるようになりました。返される文字列は、 option要素を含み、適切に書式化された HTML だけにして、XSL コードを含めないようにします。

    現在選択されているオプションがどの option要素であるかを識別するには、sSelectedValue パラメータを使用する必要があります。コード内で、正しい option要素に selected="selected"属性を設定していることを必ず確認してください。設定していない場合、ビューのドロップダウン リストには選択値が表示されず、代わりに常にリスト内の最初のオプションの表示に戻ります。

    このテクニックの使用例を参照するには、InfoPath Dev のサンプル フォーム「Fully Editable Drop-Down List Box 」および「Moving Items Between List Boxes」をダウンロードしてください。

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

    英文記事: Populate a Drop-Down List Box via Codeからの翻訳

  • セカンダリ データ ソースからドロップダウン リスト ボックスを設定する

    InfoPath SP1 の優れた機能の 1 つに、ドロップダウン リスト ボックスの項目をさまざまなソースからすばやく設定できる機能があります。このようなソースの 1 つが、セカンダリ データ ソースとしてフォームに追加されている XML ファイルです。この場合、ドロップダウン リスト ボックス コントロールを間違ったデータ ソースにバインドするというミスがよく起こります。

    セカンダリ データ ソースは、メイン データ ソースを必須のフォーム データだけの保存場所にするのにたいへん役立ちます。セカンダリ データ ソース内の値は、フォームの使用中に更新されることもありますが、フォームの一部としては保存されません。フォームが保存または発行されるときは、メイン データ ソース内の値だけが保存されます。

    バインドは、コントロール (ドロップダウン リスト ボックスなど) とデータ ノード間で行われます。[データ ソース] 作業ウィンドウでデータ ノードを選択してビューにドラッグするか、データ ノードを右クリックしてコントロールの種類をクリックすると、ビュー内のコントロールがそのデータ ノードに "バインド" されます。つまり、コントロールによって保持される値は、すべてデータ ノード内の保存値になります。

    コントロールがセカンダリ データ ソースにバインドされている場合、保存値はフォームの使用中は維持されますが、フォームを閉じると失われます。コントロールがメイン データ ソースにバインドされている場合、値は保存されるフォームの一部として維持されます。

    セカンダリ データ ソースを正しく使用してドロップダウン リスト ボックスの項目を設定し、選択した値を同じフォームの一部として保存するには、コントロールのバインド先をメイン データ ソースにする一方で、データの設定元をセカンダリ データ ソースにする必要があります。このためには、次の手順を実行します。

    メイン データ ソースにバインドするドロップダウン リスト ボックス コントロールを挿入する

    1. [データ ソース] 作業ウィンドウの[データ ソース]ドロップダウン リストから[メイン]を選択します。
    2. 値の保存先にするデータ ノードを選択し、それをビューに右ドラッグし、コントロールを配置する場所にドロップします。
    3. ドロップしたときに表示されるコンテキスト メニューの [ドロップダウン リスト ボックス] をクリックします。

    セカンダリ データ ソースからドロップダウン リスト ボックスを設定する

    1. ドロップダウン リスト ボックス コントロールをダブルクリックします。
    2. [ドロップダウン リスト ボックスのプロパティ]ダイアログ ボックスで、[データ接続の値をデータベース、Web サービス、ファイル、SharePoint ライブラリまたはリストで参照する]を選択します。
    3. [データ接続]ドロップダウン リストからセカンダリ データ ソースを選択します。
    4. [エントリ] フィールドの右にある [XPath の選択] ボタンをクリックします。
    5. 値の設定に使用するノードをクリックし、[OK] をクリックします。
    6. 必要な場合は、[値] フィールドおよび [表示名] フィールドの右にある [XPath の選択] ボタンを使用して、ノードを適切に変更します。
    7. [OK] をクリックして ダイアログ ボックスを閉じます。

    これで、ドロップダウン リスト ボックスの準備ができました。リストの値はセカンダリ データ ソースから設定されますが、選択した値は、フォームが保存または発行されるときにメイン データ ソースに保存されます。

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

    英文記事: Populate a Drop-Down List Box via a Secondary Data Source からの翻訳

  • ドロップダウン リスト ボックスに複数のフィールドを表示する

    InfoPath フォームの開発中、ドロップダウン リスト ボックスに複数のフィールドから多くの情報を表示することが必要になる場合があります。これは、手動でビューの .xsl ファイルを変更するだけで簡単に設定できます。このタスクでは、1 つのドロップダウン リスト ボックスに複数のフィールドを表示するための変更を行います。

    アプローチ 1
    1 つ目の方法は最も簡単です。ビューの .xsl ファイルを手動で変更し、XPath の concat() 関数を使用して、複数のフィールドを結合した値をドロップダウン リスト ボックスに表示します。

    たとえば、次のような XSL があるとします。

    <option>
        <xsl:attribute name="value">
            <xsl:value-of select="my:EmployeeId"/>
        </xsl:attribute>
        <xsl:if test="$val=my:EmployeeId">
            <xsl:attribute name="selected">selected</xsl:attribute>
        </xsl:if>
        <xsl:value-of select="my:LastName"/>
    </option>

    これを次のように変更します (変更箇所を赤字で示します)。

    <option>
        <xsl:attribute name="value">
            <xsl:value-of select="my:EmployeeId"/>
        </xsl:attribute>
        <xsl:if test="$val=my:EmployeeId">
            <xsl:attribute name="selected">selected</xsl:attribute>
        </xsl:if>
        <xsl:value-of select="concat(my:LastName, ', ', my:FirstName, ' (', my:EmployeeId, ')')"/>
    </option>

    これらの変更は、デザイン モードでラウンドトリップします。つまり、デザイン モードでフォーム テンプレートを読み込んで変更し、それを保存しても、XSL での変更は失われません。

    アプローチ 2
    2 つ目は、コード経由でドロップダウン リストを設定する方法です。おそらくこちらの方が信頼性が高くなります。このテクニックは、InfoPath Dev のサンプル フォーム「Fully Editable Drop-Down List Box」で使用されています。コードを使用すると、ドロップダウン リスト ボックスを完全にカスタマイズできます。

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

  • リストの選択値を記録する

    場合によっては、単一のリスト ボックスまたはドロップダウン リスト ボックスでユーザーが行った選択の順序を記録することが必要になることがあります。これを実現するは、OnAfterChange イベント ハンドラに独自のコードを記述します。また、動作規則を使用することもできます。

    このタスクでは、リスト ボックスを作成し、メインデータソース内の別のフィールドにユーザーの選択順序を記録します。ここでは、前述の 2 つのアプローチの両方を説明します。まず、新しい空白のフォームを作成しておきます。

    スキーマの作成

    1. [データ ソース] 作業ウィンドウを開きます。
    2. SelectionsViaRules」という名前のテキスト フィールドを追加します。
    3. SelectionsViaCode」という名前のテキスト フィールドを追加します。
    4. Choice」という名前のテキスト フィールドを追加します。

    ビューの設計

    1. [マイフィールド] を右クリックし、[コントロール] をクリックします。
    2. 各テキストボックスの前にキャリッジリターンを追加して、それぞれを新しい行に配置します。
    3. 「Selections Via Rules」 というラベルのテキスト ボックスをダブルクリックします。
    4. [テキスト ボックスのプロパティ] ダイアログ ボックスの [表示] タブで、[読み取り専用] チェック ボックスおよび [文字列を折り返して全体を表示する] チェック ボックスをオンにし、[スクロール] ボックスの一覧の [展開してすべての文字列を表示する] をクリックします。
    5. [サイズ] タブで、幅の値を「651」に設定し (図 1 を参照)、[OK] をクリックします。


    図 1 テキスト ボックスのプロパティの調整

    1. Selections Via Code」というラベルのテキスト ボックスについても、前のテキスト ボックスとすべて同じように設定します。
    2. 「Choice」というラベルのテキスト ボックスを右クリックし、[変更 | リスト ボックス] をクリックします。 Make all of the same adjustments to the text box labeled Selections

    リスト ボックスの設定

    1. リスト ボックスをダブルクリックします。
    2. [リスト ボックスのプロパティ] ダイアログ ボックスの [データ] タブで、値を文字「A」、「B」、「C」、「D」、「E」に設定した 5 つのエントリを追加し (図 2 を参照)、[OK] をクリックします。


    図 2 リスト ボックスの項目の追加

    1. Stretch the list box down to reveal all of the entries we just added.


    アプローチ 1 – 動作規則を使用して選択を記録する

    サンプルフォーム用に選択したデザインで最も便利なアプローチは、動作規則を使用してリスト ボックスの選択を記録する方法です。動作規則を使用すると、既定の空白の選択項目など、記録したくない選択値をフィルタで除外できます。また、選択間の区切り文字を追加するかどうかを判断するために、すでに選択が行われているかどうかを調べることができます。

    最初の選択用の動作規則を追加する

    1. リスト ボックスをダブルクリックします。
    2. [動作規則] をクリックし、[追加] をクリックし、動作規則に「Set Selection」という名前を付けます。
    3. [条件の設定] をクリックします。
    4. 最初の条件として、1 つ目のボックスの一覧の [Choice] をクリックし、2 つ目のボックスの一覧の [が空白でない] をクリックします。
    5. [AND/OR] をクリックし、そのボックスの一覧で、[OR] ではなく [AND] がクリックされていることを確認します。
    6. 2 つ目の条件として、1 つ目のボックスの一覧の [SelectionsViaRules] をクリックし、2 つ目のボックスの一覧の [が空白である] をクリックし (図 3 を参照)、[OK] をクリックします。


    図 3 Set Selection 動作規則の条件

    1. [動作の追加] をクリックします。 
    2. [動作] ボックスの一覧の [フィールドの値を設定する] をクリックします。
    3. [フィールド] テキスト ボックスの右にある [XPath の選択] ボタンをクリックし、[SelectionsViaRules] をクリックし、[OK] をクリックします。
    4. [値] テキスト ボックスの右にある [数式の挿入] ボタンをクリックし、ピリオドを入力し、[OK] を 2 回クリックします。
      ピリオドは、self::node() の場所を示す XPath の省略構文です。このシナリオでは Choice ノードを示します。
    5. [この動作規則が完了したら規則の処理を停止する] チェック ボックスをオンにし、[OK] をクリックします。

    追加の選択の動作規則を追加する

    1. [動作規則] をクリックし、[追加] をクリックし、動作規則に「Add Selection」という名前を付けます
    2. [条件の設定] をクリックします。
    3. 最初の条件として、1 つ目のボックスの一覧の [Choice] をクリックし、2 つ目のボックスの一覧の [が空白でない] をクリックし、[OK] をクリックします。
    4. [動作の追加] をクリックします。
    5. [動作] ボックスの一覧の [フィールドの値を設定] をクリックします。
    6. [Field] テキスト ボックスの右にある [XPath の選択] ボタンをクリックし、[SelectionsViaRules] をクリックし、[OK] をクリックします。
    7. [値] テキスト ボックスの右にある [数式の挿入] ボタンをクリックし、次の式を入力します (図 4 を参照)。

    concat(../my:SelectionsViaRules, ", ", .)

    図 4 追加の選択をテキスト ボックスに追加するための式

    1. [OK] を 5 回クリックします。

    この式は少しわかりにくいかもしれませんが、具体的には、[SelectionsViaRules] テキストボックスの既存の値にカンマおよび空白文字を付けて現在の [Choice] リスト ボックスの選択値と連結します。


    アプローチ 2 – コードを使用して選択を記録する

    動作規則を使用するのに適していないフォームデザインを選択している場合、またはより複雑な処理機能が必要な場合は、コードを使用してリスト ボックスの選択を記録します。このタスクは、前のアプローチの動作規則の動作をコードに複製するだけです。

    選択変更時のコードを追加する

    1. リスト ボックスをダブルクリックします。
    2. [リスト ボックスのプロパティ] ダイアログ ボックスの [データ] タブの [データの入力規則] をクリックします。
    3. [データの入力規則] ダイアログ ボックスの [イベント] ボックスの一覧の [OnAfterChange] をクリックし、[編集] をクリックします。
    4. Microsoft Script Editor で、OnAfterChange イベント ハンドラの内容を次のコードと置き換えます。

    if(eventObj.IsUndoRedo || "Insert" != eventObj.Operation)
        return;

    var oChoice = XDocument.DOM.selectSingleNode("my:myFields/my:Choice");
    if("" == oChoice.text)
        return;

    var oSelectionsViaCode = XDocument.DOM.selectSingleNode("/my:myFields/my:SelectionsViaCode");
    if("" == oSelectionsViaCode.text)
        oSelectionsViaCode.text = oChoice.text;
    else
        oSelectionsViaCode.text += ", " + oChoice.text;

    1. [ファイル] メニューの [保存] をクリックしてから Microsoft Script Editor を終了します。

    確認

    動作規則とコードを用意したら、フォームをプレビューします。リスト ボックスで、[A]、[B]、[D]、[A]、[C]、[E] の順に選択します。図 5 に示されているように、両方のテキストボックスに、選択された順に選択値が記録されます。また、各選択値の間には区切り文字が含まれます。


    図 5 リスト ボックスの選択値の順がテキスト フィールドに保存されます。

    ユーザーの選択値を保存するために使用されるテキストボックスは、ビューに表示する必要はありません。ボックスを表示しない場合は、読み取り専用のテキストボックスの代わりに式ボックスを使用できます。また、ユーザーの選択をフォームの一部として保存する必要がない場合は、記録にメインデータソースではなくセカンダリデータソースを使用することもできます。

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

  • リストに一意のオプションだけを表示する

    データソースまたはデータ接続を参照してXPath フォームのリスト ボックス エントリを作成した結果、重複したオプションがユーザーに表示されることがあります。フィルタと適切な XPath を使用することによって、これを修正し、リストに一意のオプションだけを表示することができます。

    このタスクでは、ユーザーに一意のオプション セットを表示するようにフィルタしたドロップダウン リスト ボックスを作成します。まず、新しい空白のフォームを作成しておきます。

    ビューにコントロールを追加する

    1. [コントロール] 作業ウィンドウを開きます。
    2. ドロップダウン リスト ボックスをビューに挿入します。
    3. 1 列の繰り返しテーブルをビューに挿入します。
    4. 繰り返しテーブルの見出し行に「Source Values」と入力します。

    ドロップダウン リスト ボックスを設定する

    1. ドロップダウン リスト ボックスをダブルクリックします。
    2. [ドロップダウン リスト ボックスのプロパティ] ダイアログ ボックスの [データ] タブで、[フォームのデータ ソースで値を検索する] をクリックします。
    3. [エントリ] テキスト ボックスの右にある [XPath の選択] ボタンをクリックし、[グループ1/グループ2/フィールド2] をクリックします。

    一意の値を表示するためのフィルタ

    1. [フィルタ データ] をクリックし、[追加] をクリックします。
    2. [フィルタ条件の指定] ダイアログ ボックスの 1 つ目のボックスの一覧から [式] をクリックし、次の式を入力します (図 1 を参照)。

    not(. = ../preceding::my:グループ2/my:フィールド2)


    図 1 一意の値だけを表示するためにリスト オプションに適用するフィルタ

    1. [OK] を 4 回クリックします。

    確認

    フォームをプレビューします。繰り返しテーブルに値の行を複数追加します。このとき、いくつかの値が重複するようにしてください。その後、ドロップダウン リストのオプションを調べます。図 2 に示すように、ドロップダウン リストには一意の値だけが表示されます。これは、XPath 式によって、重複する値がリストに追加されないように設定されているためです。

    図 2 フィルタされたリスト ボックスには一意の値だけが表示されます。

    InfoPath では、繰り返しテーブルで値を処理してリスト ボックス エントリに追加するときにフィルタが自動的に適用されます。フィルタの XPath 式は、前の行 (my:グループ2) の my:フィールド2 の値が現在の行の my:フィールド2 の値と同じかどうかをチェックします。同じ場合、値はリストに追加されません。

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

    英文記事:Display Only Unique Options in a List  からの翻訳

  • 表示/非表示条件を使用してチェック ボックスを非表示にする

    チェック ボックス コントロールおよびオプション ボタン コントロールの条件付き書式の選択肢は非常に限られています。実際に、InfoPath UI で、これらの 2 つのコントロールに対して用意されている条件付き書式の選択肢は、「無効にする」の 1 つだけです。しかし、コントロールを無効にすることが常に正しい選択であるとは限りません。条件によっては、コントロールを非表示にする方が望ましい場合があります。これから説明するテクニックは、どちらのコントロールにも適用できますが、ここではチェック ボックスを使用して説明します。

    このタスクでは、車両解体業者が販売用に所有している車両の部品をリストするために使用する簡単なフォームを作成します。最初に車両の繰り返しテーブルを作成し、このテーブルに、種類のドロップダウン リスト (自動車、オートバイ、または自転車)、車両の部品を示す 5 つのチェック ボックス セット (タイヤ、エンジン、シート、ハンドル、ハンドルバー) を含めます。種類によっては必要のない部品もあるので、選択した種類に応じて特定のチェック ボックスを非表示にします。

    チェック ボックスのレイアウトは、縦型と横型の 2 種類が可能です。それぞれのレイアウトは、異なるアプローチで表示/非表示条件を使用してチェック ボックスを非表示にします。縦型のレイアウトでは、チェック ボックスをセクションに入れます。横型のレイアウトでは、手動で XSL を変更します。まず、新しい空白のフォームを作成しておきます。

    スキーマの作成

    1. [データ ソース] 作業ウィンドウを開きます。
    2. [マイフィールド] をダブルクリックし、名前を「Vehicles」に変更します。
    3. Vehicle」という名前の繰り返しグループを追加します。
    4. [Vehicle] グループをクリックし、5 つのはい/いいえ (Boolean) 型の属性フィールドを追加します。名前はそれぞれ「tires」、「engine」、「seat」、「steeringWheel」、および「handlebars」とし、既定値は [いいえ] とします。
    5. テキスト フィールドを 3 つ追加します。名前はそれぞれ「Id」、「Type」、「Description」とします。


    アプローチ 1 – 縦型のレイアウト: セクションに入れる

    縦型のレイアウトで、表示/非表示条件を使用してチェック ボックスを非表示にする最も簡単な方法は、そのチェック ボックスをセクションに配置し、そのセクションに表示/非表示条件を追加する方法です。このアプローチは、タスクをすべてデザイン モード内で実行できるという利点があります。

    セクションは、ブロック要素として表示されます。したがって、同じ行に他のコントロールを配置することはできません。配置しようとしても、強制的にセクションの上か下に表示されます。このアプローチが、横型ではなく縦型のレイアウトに適しているのはこのためです。このアプローチを、レイアウト用の表を使用して横型のレイアウトに適用することもできますが、非表示になったチェック ボックスの空きスペースが折りたたまれないという大きな欠点があります。

    レイアウトの設計

    1. [データ ソース] 作業ウィンドウで、[Vehicle] を右クリックし、[繰り返しセクション] をクリックします。
    2. 繰り返しセクションから余計な空白行を削除し、「VEHICLE:」と入力します。
    3. レイアウト用の 1 列 x 2 行の表を挿入します。
    4. 1行目のセルを右クリックし、[セルの分割] をクリックします。
    5. [セルの分割] ダイアログ ボックスで、列数に「2」と入力し、[OK] をクリックします。

    チェック ボックス以外のコントロールを挿入する

    1. [データ ソース] 作業ウィンドウから、[Id] をドラッグして、表の左上のセルにドロップします。
    2. [Type] を右ドラッグして、右上のセルにドロップし、[ドロップダウン リスト ボックス] をクリックします。
    3. [Description] をドラッグして、下のセルにドロップします。

    各チェック ボックスのセクションを挿入する

    1. レイアウト用の表の下で、最初の空白行をクリックして、カーソルを置きます。
    2. 5 つのはい/いいえ (Boolean) 属性フィールド ([tires]、[engine]、[seat]、[steeringWheel]、および [handlebars]) をそれぞれ右クリックし、[その他 | セクション] をクリックして、[OK] をクリックします。

    セクションのプロパティを調整する

    1. 挿入した 5 つのセクションを、Ctrl キーを押しながらクリックしてこれらをすべて選択し、Alt + Enter キーを押します。
    2. [プロパティ (複数選択)] ダイアログ ボックスで、スペースおよび余白のそれぞれの値を設定します。ただし、右の余白は「0px」にします。次に、[OK] をクリックします。
    3. 複数選択のままで、いずれかのセクションを右クリックし、[罫線と網掛けの設定] をクリックします。
    4. [罫線と網掛けの設定] ダイアログ ボックスの [罫線] タブで、[なし] をクリックして既存の罫線を削除し、[OK] をクリックします。

    チェック ボックス コントロールを挿入する

    1. 5 つのはい/いいえ (Boolean) 属性フィールド ([tires]、[engine]、[seat]、[steeringWheel]、および [handlebars]) をそれぞれドラッグして、関連付けられているセクションにドロップします。
    2. 5 つの各セクション内の余計な空白行を削除します。完成したレイアウトは、図 1 のようになります。

    図 1 表示/非表示条件を設定するチェック ボックスの縦型レイアウトの完成版

    [Type] ドロップダウン リスト ボックスに項目を追加する

    1. [Type] ボックスをダブルクリックし、[追加] をクリックします。
    2. [選択肢の追加] ダイアログ ボックスで、「Car」と入力し、[OK] をクリックします。
    3. さらに「Motorcycle」および「Bicycle」の 2 つの項目を追加します。

    チェック ボックスが非表示になるように engine 属性の値を false に設定する動作規則を追加する

    1. [動作規則] をクリックし、[追加] をクリックします。
    2. 動作規則の名前を「Set engine = false」とし、[条件の設定] をクリックします。
    3. [条件] ダイアログ ボックスの 3 つ目のボックスの一覧から [文字列の入力] をクリックし、「Bicycle」と入力してから、[OK] をクリックします。
    4. [動作の追加] をクリックします。
    5. [動作] ダイアログ ボックスの [動作] ボックスの一覧の [フィールドの値を設定する] をクリックします。
    6. [フィールド] ボックスの右にある [XPath の選択] ボタンをクリックし、[Vehicles/Vehicle/engine] をクリックしてから、[OK] をクリックします。
    7. [値] ボックスの右にある [数式の挿入] ボタンをクリックし、[関数の挿入] をクリックします。[関数] ボックスの一覧の [false] をクリックしてから、[OK] を 4 回クリックします。

    チェック ボックスが非表示になるように steeringWheel 属性の値を false に設定する動作規則を追加する

    1. [追加] をクリックします。
    2. 動作規則の名前を「Set steeringWheel = false」とし、[条件の設定] をクリックします。
    3. [条件] ダイアログ ボックスの 3 つ目のボックスの一覧から [文字列の入力] をクリックし、「Motorcycle」と入力します。[AND/OR] をクリックし、[AND] の代わりに [OR] をクリックします。
    4. 3 つ目のボックスの一覧の [文字列の入力] をクリックし、「Bicycle」と入力して (図 2 を参照)、[OK] をクリックします。

    図 2 steeringWheel 属性を false に設定するための動作規則の条件

    1. [動作の追加] をクリックします。
    2. [動作] ダイアログ ボックスの [動作] ボックスの一覧の [フィールドの値を設定する] をクリックします。
    3. [フィールド] ボックスの右にある [XPath の選択] ボタンをクリックし、[Vehicles/Vehicle/steeringWheel] をクリックしてから、[OK] をクリックします。
    4. [値] ボックスの右にある [数式の挿入] ボタンをクリックし、[関数の挿入] をクリックします。[関数] ボックスの一覧の [false] をクリックしてから、[OK] を 4 回クリックします。