データベースから取得した値を利用する(マスタ検索サブフォーム)¶
ワークフローシステムには、入力フォームからサブフォームを呼び出し、データベースより取得した任意の値を一覧表示するマスタ検索サブフォームという機能があります。
表示される検索結果一覧からデータを選択することで、申請書の入力内容として利用できます。
また、ユーザーが検索結果を任意の条件で絞り込めるように、データ検索用の項目を設定することもできます。

注意
本設定は、フォームおよび旧バージョン形式のフォーム(JSP)で利用できます。
Liteフォームおよび旧バージョン形式のフォーム(PDF)では利用できません。
ヒント
マスタ検索サブフォームの設定の詳細は、ワークフローシステム ヘルプのリファレンスマニュアル(フォームマネージャー リファレンス - マスタ検索サブフォーム設定)を参照ください。
ここでは、2つの例でマスタ検索サブフォームの設定方法を説明します。
検索項目なし、単一データの反映¶
データベースより取得したデータの一覧から1行を選択して入力フォームに反映する場合の設定方法を説明します。
ここでは例として、サンプルデータ用テーブルから製品番号・製品名・定価を取得、一覧表示し、選択したデータを入力フォームに反映する設定を行います。
使用するテーブルの構造は以下の通りです。
テーブル名:xinfo2.a_price_list_tbl
カラム名 論理名 a_kataban 製品番号 a_kataban_name 製品名 a_teika 定価
設定方法
マスタ検索サブフォームの設定
マスタ検索サブフォームの表示や動作、表示するデータの内容を設定します。
フォーム設定の新規作成
フォーム設定の登録
検索対象データベースの選択
検索結果一覧に表示するデータの検索対象のデータベースを選択します。
[クエリ設定]欄の「一覧表示用」をダブルクリックします。
[クエリ設定]ダイアログ - [利用するデータベース]コンボボックスでサンプルデータとして登録されているデータベース設定「見積書用」を選択し、[選択]ボタンをクリックします。
ヒント
カスタムデータベース以外のデータベースを利用する場合、データベースにJDBC経由で接続しデータを取得します。そのため、接続に必要な設定(ドライバ名、URL、ログインID、パスワード)をあらかじめデータベース設定として登録しておく必要があります。
データベース設定の詳細は、ワークフローシステム ヘルプのリファレンスマニュアル(フォームマネージャー リファレンス - データベース設定)を参照ください。テーブル設定の登録
SQL文の「FROM」句に該当する設定を行います。
検索結果一覧に表示するデータの検索対象のテーブルを選択します。
また、検索結果一覧への表示や検索項目の条件として使用したい列を選択します。データ取得設定の登録
SQL文の「SELECT」句に該当する設定を行います。
マスタ検索サブフォーム上の検索結果一覧に表示する列や、一覧から選択したデータを反映する入力フォームのオブジェクト名を設定します。
[クエリ設定]ダイアログの[データの取得]タブを選択し、[追加]ボタンをクリックします。
[データ取得設定]ダイアログで以下3つのデータ取得設定を登録します。
登録することで、製品番号・製品名・定価を検索結果一覧に表示、入力フォーム上に反映することができます。
項目 列名 一覧表示 入力フォームへのデータ反映 製品番号 a_price_list_tbl.a_kataban チェックあり
ラベル:製品番号チェックあり
オブジェクト名:KATABAN製品名 a_price_list_tbl.a_kataban_name チェックあり
ラベル:製品名チェックあり
オブジェクト名:KATABAN_NAME定価 a_price_list_tbl.a_teika チェックあり
ラベル:定価チェックあり
オブジェクト名:TEIKA![]()
それぞれのデータ取得設定の登録後、[OK] ボタンをクリックし、[クエリ設定]ダイアログを閉じます。
入力フォーム設定情報表示の確認
入力フォームからマスタ検索サブフォームを呼び出すために必要な情報(JavaScript)を確認します。
確認したJavaScriptは後述の「2.フォームの作成」で使用します。フォーム設定の保存
フォームの作成
マスタ検索サブフォームを利用するフォームを作成します。ここでは、フォームを新規で作成します。
ヒント
フォームの作成方法は、ワークフローシステム ヘルプのリファレンスマニュアル(フォームマネージャー リファレンス - フォーム管理)を参照ください。
データ反映用の入力テキストの配置
検索結果一覧上で選択したデータを表示するための入力テキストを配置します。
入力フォームに入力テキストを3つ配置し、それぞれのオブジェクト名を以下のように設定します。
項目 オブジェクト名 製品番号 KATABAN 製品名 KATABAN_NAME 価格 TEIKA ※オブジェクト名以外の項目は、標準の状態から設定を変更する必要はありません。
マスタ検索サブフォーム画面表示用リンクの作成
入力フォーム上からマスタ検索サブフォームを呼び出すためのリンクを作成します。
◇フォームの場合
入力テキストの配置
申請フォームに入力テキストを1つ配置し、以下の設定を行います。
項目 設定値 説明 オブジェクト名 (任意の値「KENSAKU」など) - [表示]タブ 読取専用 チェックあり - 表示 表示 入力フォーム表示時にリンクを表示します。 出力時 オプション設定を使用する:有効
表示:非表示PDF出力時にリンクを非表示とします。 [オプション]タブ 初期値 検索 リンクの表示名になります。 [HTML]タブ JavaScript (「イベントの設定」参照) - CSSクラス名 textlink リンク表示するCSSクラスです。
イベントの設定
- [JavaScript]欄で「クリックする(onClick)」を選択し、[編集]ボタンをクリックします。
- [JavaScriptの編集]ダイアログで「1-6.入力フォーム設定情報表示の確認」でコピーしたJavaScriptを設定します。
ヒント
マルチフォーム使用時の設定
マルチフォームが設定されたフォームで、データ反映用の入力テキストが「マルチフォームでオブジェクトをページごとに区別する」設定の場合、「1-6.入力フォーム設定情報表示の確認」でコピーしたJavaScriptに対して、追加設定が必要です。
◆「マルチフォームでオブジェクトをページごとに区別する」設定
◆追加設定
「1-6.入力フォーム設定情報表示の確認」でコピーしたJavaScriptに対して、以下を追加します。
'objNo',{multiFormId:'フォーム識別子',keyElement:this}
- 「objNo」は、 フォーム設定 で選択方式が「複数」の場合に設定する項目です。今回のように選択方式が「単一」の場合、「空('')」を設定します。
- 「フォーム識別子」には、 マルチフォーム設定時に指定した[フォーム識別子]を設定します。
詳細は、Formエディターリファレンス(第2章 機能説明 - 2-4.フォームオブジェクトの共通機能 - 申請時にページの追加・削除を許可する(マルチフォーム))を参照ください。◆例
CwfJspFormUtil.openMstSubform('MS20180828133904483_0000','',{multiFormId:'FORM01',keyElement:this});◇旧バージョン形式のフォーム(JSP)の場合
入力テキストの配置
申請フォームに入力テキストを1つ配置し、以下の設定を行います。
項目 設定値 説明 オブジェクト名 (任意の値「KENSAKU」など) - [表示]タブ 読取専用 チェックあり - 表示と印刷 表示 入力フォーム表示時にリンクを表示します。 出力時 オプション設定を使用する:有効
表示と印刷:非表示PDF出力時にリンクを非表示とします。 [オプション]タブ 初期値 検索 リンクの表示名になります。 [JSP]タブ イベント (「イベントの設定」参照) - CSSクラス名 textlink リンク表示するCSSクラスです。
イベントの設定
- [登録済みのイベント一覧]横の[追加]ボタンをクリックし、[JavaScriptの編集]ダイアログを表示します。
- [イベントタイミング]にて「onClick」を選択し、[実行するJavaScriptを記述してください]欄に「1-6.入力フォーム設定情報表示の確認」でコピーしたJavaScriptを設定します。
フォームの保存、アップロード
Formエディターでフォームを保存し、フォームをサーバーにアップロードします。
動作確認
検索項目あり、複数データの反映¶
データベースより取得したデータの一覧から複数行を選択して入力フォームに反映する場合の設定方法を説明します。
また、マスタ検索サブフォーム上にデータ検索用の項目を表示し、ユーザーが任意の条件でデータを絞り込めるように設定します。
ここでは例として、サンプルデータ用テーブルから製品番号・製品名・定価を検索項目としてユーザーが任意の条件で絞り込めるように設定し、複数選択したデータを入力フォームに反映する設定を行います。
使用するテーブルの構造は以下の通りです。
テーブル名:xinfo2.a_price_list_tbl
カラム名 論理名 a_kataban 製品番号 a_kataban_name 製品名 a_teika 定価
設定方法
マスタ検索サブフォームの設定
マスタ検索サブフォームの表示や動作、検索用項目、表示するデータの内容を設定します。
フォーム設定の新規作成
フォーム設定の登録
検索対象データベースの選択
検索結果一覧に表示するデータの検索対象のデータベースを選択します。
[クエリ設定]欄の「一覧表示用」をダブルクリックします。
[クエリ設定]ダイアログ - [利用するデータベース]コンボボックスでサンプルデータとして登録されているデータベース設定「見積書用」を選択し、[選択]ボタンをクリックします。
ヒント
カスタムデータベース以外のデータベースを利用する場合、データベースにJDBC経由で接続しデータを取得します。そのため、接続に必要な設定(ドライバ名、URL、ログインID、パスワード)をあらかじめデータベース設定として登録しておく必要があります。
データベース設定の詳細は、ワークフローシステム ヘルプのリファレンスマニュアル(フォームマネージャー リファレンス - データベース設定)を参照ください。テーブル設定の登録
SQL文の「FROM」句に該当する設定を行います。
検索結果一覧に表示するデータの検索対象のテーブルを選択します。
また、検索結果一覧への表示や検索項目の条件として使用したい列を選択します。データ取得設定の登録
SQL文の「SELECT」句に該当する設定を行います。
マスタ検索サブフォーム上の検索結果一覧に表示する列や、一覧から選択したデータを反映する入力フォームのオブジェクト名を設定します。
[クエリ設定]ダイアログの[データの取得]タブを選択し、[追加]ボタンをクリックします。
[データ取得設定]ダイアログで以下3つのデータ取得設定を登録します。
登録することで、製品番号・製品名・定価を検索結果一覧に表示、入力フォーム上に反映することができます。
項目 列名 一覧表示 入力フォームへのデータ反映 製品番号 a_price_list_tbl.a_kataban チェックあり
ラベル:製品番号チェックあり
オブジェクト名:KATABAN-*製品名 a_price_list_tbl.a_kataban_name チェックあり
ラベル:製品名チェックあり
オブジェクト名:KATABAN_NAME-*定価 a_price_list_tbl.a_teika チェックあり
ラベル:定価チェックあり
オブジェクト名:TEIKA-*ヒント
オブジェクト名の「*」は、フォーム設定 の[検索結果] - [選択方式]で「複数」を選択した場合に指定します。
「KATABAN-1」「KATABAN-2」「KATABAN-3」のようにオブジェクト名が数字部分のみ異なるオブジェクトの場合、「KATABAN-*」のように数字部分を「*」と指定します。![]()
検索条件の設定
SQL文の「WHERE」句に該当する設定を行います。
マスタ検索サブフォーム上でユーザーが入力した値を元にデータの絞り込みが行えるように設定します。
列の選択
検索条件を設定する列を選択します。任意検索条件の設定
ユーザーの入力値を元にデータを絞り込む際の条件を設定します。検索項目入力設定の登録
ユーザーが検索条件を入力する際の入力形式を設定します。
入力フォーム設定情報表示の確認
入力フォームからマスタ検索サブフォームを呼び出すために必要な情報(JavaScript)を確認します。
確認したJavaScriptは後述の「2.フォームの作成」で使用します。フォーム設定の保存
フォームの作成
マスタ検索サブフォームを利用するフォームを作成します。ここでは、フォームを新規で作成します。
ヒント
フォームの作成方法は、ワークフローシステム ヘルプのリファレンスマニュアル(フォームマネージャー リファレンス - フォーム管理)を参照ください。
データ反映用の入力テキストの配置
検索結果一覧上で選択したデータを表示するための入力テキストを配置します。
今回、検索結果一覧より複数のデータを選択・反映しますので、入力フォームに各項目に対して入力テキストを3つずつ配置し、それぞれのオブジェクト名を以下のように設定します。
項目 オブジェクト名 製品番号 KATABAN-1、KATABAN-2、KATABAN-3 製品名 KATABAN_NAME-1、KATABAN_NAME-2、KATABAN_NAME-3 価格 TEIKA-1、TEIKA-2、TEIKA-3 ※オブジェクト名以外の項目は、標準の状態から設定を変更する必要はありません。
マスタ検索サブフォーム画面表示用リンクの作成
入力フォーム上からマスタ検索サブフォームを呼び出すためのリンクを作成します。
◇フォームの場合
入力テキストの配置
申請フォームに入力テキストを1つ配置し、以下の設定を行います。
項目 設定値 説明 オブジェクト名 (任意の値「KENSAKU」など) - [表示]タブ 読取専用 チェックあり - 表示 表示 入力フォーム表示時にリンクを表示します。 出力時 オプション設定を使用する:有効
表示:非表示PDF出力時にリンクを非表示とします。 [オプション]タブ 初期値 検索 リンクの表示名になります。 [HTML]タブ JavaScript (「イベントの設定」参照) - CSSクラス名 textlink リンク表示するCSSクラスです。
イベントの設定
[JavaScript]欄で「クリックする(onClick)」を選択し、[編集]ボタンをクリックします。
[JavaScriptの編集]ダイアログで「1-8.入力フォーム設定情報表示の確認」でコピーしたJavaScriptを設定します。
各項目ごとに複数配置した入力テキストのうち、「KATABAN-1」、「KATABAN_NAME-1」、「TEIKA-1」からマスタ検索サブフォームで選択したデータを反映させるため、JavaScriptの第2引数「'objNo'」を「'1'」に変更します。
CwfJspFormUtil.openMstSubform('マスタ検索サブフォームID','1');ヒント
JavaScriptの第2引数「'objNo'」には、データ反映を開始したいオブジェクトの番号を設定します。
例えば、上記手順で「'objNo'」を「'2'」に変更した場合、「KATABAN-2」、「KATABAN_NAME-2」、「TEIKA-2」以降の入力テキストに選択したデータが反映されます。ヒント
マルチフォーム使用時の設定
マルチフォームが設定されたフォームで、データ反映用の入力テキストが「マルチフォームでオブジェクトをページごとに区別する」設定の場合、「1-8.入力フォーム設定情報表示の確認」でコピーしたJavaScriptに対して、追加設定が必要です。
◆「マルチフォームでオブジェクトをページごとに区別する」設定
◆追加設定
「1-8.入力フォーム設定情報表示の確認」でコピーしたJavaScriptに対して、以下を追加します。
{multiFormId:'フォーム識別子',keyElement:this}「フォーム識別子」には、 マルチフォーム設定時に指定した[フォーム識別子]を設定します。
詳細は、Formエディターリファレンス(第2章 機能説明 - 2-4.フォームオブジェクトの共通機能 - 申請時にページの追加・削除を許可する(マルチフォーム))を参照ください。◆例
CwfJspFormUtil.openMstSubform('MS20180828133904483_0000','1',{multiFormId:'FORM01',keyElement:this});◇旧バージョン形式のフォーム(JSP)の場合
入力テキストの配置
申請フォームに入力テキストを1つ配置し、以下の設定を行います。
項目 設定値 説明 オブジェクト名 (任意の値「KENSAKU」など) - [表示]タブ 読取専用 チェックあり - 表示と印刷 表示 入力フォーム表示時にリンクを表示します。 出力時 オプション設定を使用する:有効
表示と印刷:非表示PDF出力時にリンクを非表示とします。 [オプション]タブ 初期値 検索 リンクの表示名になります。 [JSP]タブ イベント (「イベントの設定」参照) - CSSクラス名 textlink リンク表示するCSSクラスです。
イベントの設定
[登録済みのイベント一覧]横の[追加]ボタンをクリックし、[JavaScriptの編集]ダイアログを表示します。
[イベントタイミング]にて「onClick」を選択し、[実行するJavaScriptを記述してください]欄に「1-8.入力フォーム設定情報表示の確認」でコピーしたJavaScriptを設定します。
各項目ごとに複数配置した入力テキストのうち、「KATABAN-1」、「KATABAN_NAME-1」、「TEIKA-1」からマスタ検索サブフォームで選択したデータを反映させるため、JavaScriptの第2引数「'objNo'」を「'1'」に変更します。
CwfJspFormUtil.openMstSubform('マスタ検索サブフォームID','1');ヒント
JavaScriptの第2引数「'objNo'」には、データ反映を開始したいオブジェクトの番号を設定します。
例えば、上記手順で「'objNo'」を「'2'」に変更した場合、「KATABAN-2」、「KATABAN_NAME-2」、「TEIKA-2」以降の入力テキストに選択したデータが反映されます。フォームの保存、アップロード
Formエディターでフォームを保存し、フォームをサーバーにアップロードします。
動作確認
ワークフローシステムで以下を確認します。
- 設定したマスタ検索サブフォームが入力フォーム上で表示されること
- 検索欄で入力した内容で検索結果が絞り込まれること
- 選択したデータが入力フォームに反映されること
ワークフローシステムにログインし、作成したフォームの申請フォームを表示します。
入力フォーム上の[検索] リンクをクリックし、マスタ検索サブフォームを表示します。
製品番号・製品名・定価の検索欄および、データベースより取得した製品番号・製品名・定価が一覧表示されていることを確認します。製品名の検索欄に「ワークフローシステム」を入力し、[検索]ボタンをクリックします。
検索結果が「ワークフローシステム」を含む製品名で絞り込まれていることを確認します。一覧より任意のデータを3つ選択し、[選択]ボタンをクリックします。
選択した製品番号・製品名・定価が、入力フォーム上のそれぞれの入力テキストに反映されることを確認します。