入力内容をもとにデータベースから取得した値を利用する

✔ 概要

入力テキストに入力した値またはコンボボックスで選択した値を元にデータベースを検索し、一致した検索結果を別の入力テキストに設定する方法を説明します。
ユーザーの入力内容に応じた値を、他システムなどで利用しているデータベースから取得して表示したい場合に利用できます。

注意

本設定は、フォームおよび旧バージョン形式のフォーム(JSP)で利用できます。
旧バージョン形式のフォーム(PDF)では利用できません。

ここでは例として、入力テキストに入力した型番に対応する製品名と定価を、データベースから検索して表示する設定を行います。
サンプルデータに含まれるドキュメント「見積書」で使用しているサンプルデータ用テーブルを使用します。

使用するテーブルの構造は以下の通りです。

テーブル名:xinfo2.a_price_list_tbl
カラム名 論理名
a_kataban 製品番号
a_kataban_name 製品名
a_teika 定価

設定方法

フォームの作成

ここでは、フォームを新規で作成します。

ヒント

フォームの作成方法は、ワークフローシステム ヘルプのリファレンスマニュアル(フォームマネージャー リファレンス - フォーム管理)を参照ください。

入力テキストの配置

申請フォームに入力テキストを3つ配置し、それぞれのオブジェクト名を以下のように設定します。

項目 オブジェクト名 説明
型番 KATABAN 型番を入力するためのオブジェクトです。
このオブジェクトに入力した内容に応じてデータベースから値を取得します。
製品名 KATABAN_NAME 入力した型番に対応する製品名と定価を表示するためのオブジェクトです。
型番の入力後に自動で値が表示されます。
定価 TEIKA

データ取得の設定

型番用の入力テキスト(オブジェクト名:KATABAN)の[アクション]タブで、以下の設定を行います。

  • 利用するデータベース
    データの取得に利用するデータベース設定を選択します。
    ここでは、サンプルデータとしてあらかじめ登録されているデータベース設定「見積書用」を選択します。

    ヒント

    カスタムデータベース以外のデータベースを利用する場合、データベースにJDBC経由で接続しデータを取得します。そのため、接続に必要な設定(ドライバ名、URL、ログインID、パスワード)をあらかじめデータベース設定として登録しておく必要があります。
    データベース設定の詳細は、ワークフローシステム ヘルプのリファレンスマニュアル(フォームマネージャー リファレンス - データベース設定)を参照ください。

  • SQLの編集
    [SQLの編集]ボタンをクリックして[SQLの編集]ダイアログを表示し、データを取得するためのSQLを設定します。

    ◇SELECT句のクエリ

    データを取得したい列を指定します。
    今回はユーザーが入力した型番の製品名、定価を取得するため、製品名(a_kataban_name)と定価(a_teika)の列名を指定します。

    select a_kataban_name, a_teika
    

    ◇FROM句のクエリ

    データの検索対象のテーブルを指定します。

    from xinfo2.a_price_list_tbl
    

    ◇WHERE句のクエリ

    ユーザーが入力した型番を検索条件として設定します。

    where a_kataban = '$keyword'
    

    ヒント

    SQLに「$keyword」という文字を記述しておくと、ワークフローシステムがSQLを実行する際に、設定したオブジェクトに入力した値に置き換わります。
    例えば、入力フォームで型番の入力テキストに「CXF-10」と入力した場合は、以下のようになります。

    • 「WHERE句のクエリ」の設定

      where a_kataban = '$keyword'
      
    • 実行されるSQL

      where a_kataban = 'CXF-10'
      

    各項目設定後に[データのプレビュー]ボタンをクリックすると、設定した内容で取得されるデータを一覧で確認することができます。

    注意

    利用するデータベースがPostgreSQLの場合、大文字のテーブル名やカラム名を参照する際は、ダブルクォート(")で囲む必要があります。

    例)"LARGE_CHAR_TBL"

  • 検索結果を表示する入力テキストの設定
    SQLの検索結果と、その値を表示する入力テキストの関連付けを行います。
    [SQLの編集]ダイアログでSQLを入力すると[アクション]タブの一覧に「SELECT句のクエリ」で指定した列名が表示されます。

    ここでは、以下の通り設定します。

    列名 データを表示する入力テキスト
    a_kataban_name KATABAN_NAME
    a_teika TEIKA

    ヒント

    マルチフォームを設定しているページの場合、プロパティの以下の設定が データ取得の設定 を行ったオブジェクトと一致している入力テキストのみ選択できます。

    • [HTML]タブ-「マルチフォームでオブジェクトをページごとに区別する」

フォームの保存、アップロード

Formエディターでフォームを保存し、フォームをサーバーにアップロードします。

動作確認

ワークフローシステムにログインし、作成したフォームの申請フォームを表示します。
以下の型番を入力し、データベースから取得された製品名と定価が、それぞれの入力テキストに表示されることを確認します。

型番 製品名 定価
CXF-10 ワークフローシステム 10ユーザライセンス 100000
CXF-30 ワークフローシステム 30ユーザライセンス 300000
CXF-50 ワークフローシステム 50ユーザライセンス 500000