ボタンの処理オプション

オブジェクトパレットの「実行」タブでは、ボタンのデータ接続を選択し、このボタンに関連する処理をクライアントコンピューターとサーバーのどちらで行うか、それとも両方で行うかを指定することができます。このデータ接続は、Web サービスのインターフェイスまたは OLEDB データベースサーバーにアクセスする必要があります。これにより、実行時にフォームにデータを返すか、別のところで処理を行います。

データソース( データソースの操作 を参照してください)を指定したら、実行する操作やクエリを指定できます。実行時にボタンがクリックされると、操作またはクエリを通して、定義したとおりの処理が行われます。

返されたデータをフォームにマージするときに、フォームの構造はリフレッシュせず、既存のオブジェクトに関連するデータだけを上書きするように設定することができます。また、返された XML データに基づいてフォームの構造を更新するように設定することもできます。この場合は、フォームの構造が更新され、処理の完了後に返されたデータがマージされます。

ボタンの処理オプションを定義するには、まず目的のボタンを選択する必要があります。処理オプションは、オブジェクトパレットの「実行」タブで設定します。「実行」タブを表示するには、「フィールド」タブの「コントロールの種類」で「実行」オプションを選択する必要があります。

ボタンを使用して Web サービスの操作やデータベースのクエリを実行するには

「実行」ボタンタイプを使用すると、Web サービスに対して処理要求を実行することができます。Web サービスは、フォームの入力情報と出力情報を定義するために送信される操作を処理します。

Web サービスへの接続を追加し、フィールドを作成するか、フィールドを要求メッセージと応答メッセージに連結します。連結されたフィールドでは、入力データを生成してサービスに送信したり、サービスからデータを受け取ったりすることができます。複数のフィールドを使用して要求メッセージを作成できます。応答メッセージで複数のフィールドにデータを埋め込むことができます。操作を処理するには、「実行」ボタンを使用するか、スクリプトを作成します。例えば、Web サービスを使用して、金利、為替レートまたは株価を検索することができます。

  1. フォームデザインにボタンを追加します。 フォームデザインにオブジェクトを追加するには を参照してください。

  2. オブジェクトパレットで、「フィールド」タブをクリックします。

  3. 「コントロールの種類」領域で、「実行」を選択します。「実行」タブの設定に従って、Web サービスの操作やデータベースのクエリが実行されます。

  4. 「実行」タブをクリックし、接続リストで「新規データ接続」を選択します。

  5. 「WSDL ファイル」を選択して「次へ」をクリックします。

  6. 「WSDL ファイル」ボックスで、WSDL 文書の URL を入力するか、参照  をクリックし、コンピューターのハードディスクにある文書を探して選択します。WSDL 文書が安全なサーバーに保存されている場合は、認証が必要ダイアログボックスまたはデジタル ID を選択ダイアログボックスが表示されます。

  7. 次のいずれかの操作を行います。

    • 認証ダイアログボックスに、正しいユーザー名とパスワードを入力し、「OK」をクリックします。

    • デジタル ID を選択ダイアログボックスで、クライアント証明書として使用する正しいデジタル ID を選択し、「OK」をクリックします。

  8. 呼び出す操作を選択し、「次へ」をクリックします。

    右側のウィンドウに、選択した操作の詳細が表示されます。選択した操作が SOAP エンコードでも doc/literal でもない場合は、操作を続行できないという警告がこのウィンドウに表示されます。

  9. (オプション)クライアント認証を設定するには、次のいずれかの操作を行います。

    • HTTP/HTTPS 認証を定義するには、「HTTP/HTTPS 認証が必要」を選択します。その後で、検証で承認する証明書を設定することもできます。

    • SOAP メッセージ認証を定義するには、「メッセージレベルの認証が必要」を選択します。その後で、「ユーザー名とパスワードを承認する」を選択することもできます。

  10. 「完了」をクリックします。

  11. 実行場所リストで、処理を実行する場所を指定します。

    • クライアントコンピューター上で要求を処理する場合は、「クライアント」を選択します。

    • サーバー上で要求を処理する場合は、「サーバー」を選択します。

    • クライアントコンピューターとサーバーの両方で要求を処理する場合は、「クライアント / サーバー」を選択します。

  12. フォームの構造を更新し、処理の終了後に返されたデータをマージする場合は、「フォームデータの再結合」を選択します。応答データで、発生回数が可変の、WSDL データにバインドされたダイナミックデータ(繰り返しサブフォームなど)を埋め込む場合は、「フォームデータの再結合」オプションを使用する必要があります。ダイナミックデータは、繰り返しサブフォームの正確な数を設定するため、完全な再結合が必要です。WSDL 応答データが一定数のフィールドにバインドされている場合は、応答データが既存のフィールドにデータを埋め込むので、フォームデータを再結合する必要はありません。

ボタンにデータベーススクリプトを追加するには

スクリプティングを使用すると、より複雑なデータ操作を企業システムで実行することができます。以下の例では、基本的なデータベース操作(先頭、前、次および最後のレコードへの移動、新規レコードの追加、既存のレコードの更新、レコードの削除など)を行うために、ボタンフィールドに簡単なスクリプトを追加する方法を確認できます。

注意: この例は、Designer のサンプルに含まれていない特別なデータベースと設定に基づいています。独自のデータベース検索スクリプトを作成するための参考としてください。

先頭、前、次および最後のレコードへ移動するボタンフィールドと新規レコードの追加、既存レコードの更新およびレコードの削除ボタンフィールドのあるフォームデザイン。

  1. オブジェクトライブラリパレットの標準カテゴリをクリックし、フォームデザインに 8 個のボタンオブジェクトをドラッグします。ボタンオブジェクトを追加するときのデフォルトのコントロールタイプは「標準」です。デフォルト設定を受け入れます。

  2. ボタンに First、Previous、Next、Last、AddNew、Update、Delete、Cancel と名前を付けます。

  3. 「First」という名前の 1 つめのボタンを選択します。

  4. スクリプトエディターの表示リストで「 click 」を選択し、言語リストの「JavaScript」を選択してから、実行場所リストで「クライアント」を選択します。

  5. スクリプトエディターで、次の JavaScript スクリプトを追加します。

    xfa.sourceSet.DataConnection.first();
  6. 次のスクリプトを使用して、残りの 7 つのボタンにステップ 5 を繰り返します。

    • Previous: xfa.sourceSet.DataConnection.previous();

    • Next: xfa.sourceSet.DataConnection.next();

    • Last: xfa.sourceSet.DataConnection.last();

    • AddNew: xfa.sourceSet.DataConnection.addNew();

    • Update: xfa.sourceSet.DataConnection.update();

    • Delete: xfa.sourceSet.DataConnection.delete();

    • Cancel: xfa.sourceSet.DataConnection.cancel();

  7. フォームデザインを保存します。

  8. 「PDF プレビュー」タブでフォームをテストします。このフォームへの入力に Adobe Reader が使用される場合は、Adobe Reader がデータベースにアクセスできるようにするために、Acrobat Reader DC Extensions を使用してフォームに使用権限を設定する必要があります。

  9. 様々なボタンをクリックして、各レコードに関連付けられているデータを表示します。この例は、「Last」ボタンを押すと、最後のレコードの ID、パーツ番号、内容および単価が適切なフィールドに表示されることを示しています。

データベースからフィールドを埋めるボタンの使用

フォームのフィールド(テキストフィールドや数値フィールドなど)にデータを提供するときには、データベースを使用することができます。

以下の例では、「Retrieve Record」ボタンとリストボックスが、左側のデータ表示パレットに表示されている DataConnection データベースに連結されています。このボタンには、リストボックスフィールドで選択されたパーツ番号に基づいて情報を取得する FormCalc スクリプトも追加されています。取得されたレコードは、「ID」、「PART_NO」、「UNITPRICE」および「DESCRIPTION」の各フィールドに表示されます。

  1. データベースに接続します。

  2. DataConnection の下の UNIT_PRICE、DESCRIPTION、PART_NO および ID の各要素をデータ表示パレットからフォームデザインにドラッグします。フォームデザインにドラッグした各ノードにより、連結されたフィールドが作成されます。

  3. オブジェクトパレットの「標準」タブをクリックし、フォームデザインにボタンオブジェクトをドラッグします。

  4. ボタンの新しい名前を入力します。例では RETRIEVE RECORD を使用しています。

  5. ボタンを選択し、スクリプトエディターの表示リストで「click」を選択してから、言語リストの「FormCalc」を選択し、実行場所リストで「クライアント」を選択します。

  6. 以下の例と同じような FormCalc スクリプトを入力します。このスクリプトは、ユーザーによってボタンがクリックされると、指定されたレコードのデータを取得し、それを対応するフィールドに出力するというものです。

    //Change the commandType from TABLE to TEXT. TEXT 
    //is the equivalent of SQL Property 
    $sourceSet.DataConnection.#command.query.commandType = "text" 
     
    //Set the Select Node. Select in this case will be  
    //whatever SQL Property you want 
    $sourceSet.DataConnection.#command.query.select.nodes.item(0).value = Concat("Select*from OfficeSupplies Where ID = ", DataListBox1.rawValue,"") 
     
    //Reopen the Data connection 
    $sourceSet.DataConnection.open()
  7. フォームデザインを PDF ファイルとして保存します。

  8. 「PDF プレビュー」タブを使用してフォームをテストし、スクリプトが予想どおりに動作することを確認します。