【ワンダーロボ】DB共通関数設計~検索(共通関数とダイナミックビュー設計)~
- 2022年03月28日
ワンダーロボ設計書のDB共通関数設計の「検索」の開発方法について説明をします。
DB共通関数を作成することにより、別の関数内で呼び出して使用する事ができます。また関数としてだけでなくダイナミックビューの設計も行うことができます。
帳票設計に対してやビュー内に関数を使用する際に、下記の設計書作成手順でダイナミックビュー設計で行いましょう。
本記事では検索の共通関数基本設定についての説明となります。サブクエリなどの設定詳細については下記をご参照ください。
◆【ワンダーロボ】共通関数設計~サブクエリ~
以下、設定方法となります。
1.共通関数用のシートを作成します。
シート名は必ず、「関数定義_〇〇〇」にする必要があります。
(例)関数定義_V_請求書検索(I00001)
2.シート内のフォーマットに沿って、共通関数の定義を作成します。
共通関数設計をする場合、決められたフォーマットに対象のテーブル、結合条件、処理の設定を行う必要があります。
〔ダイナミックビュー設計の場合〕
〔関数設計の場合〕
入力する項目 | 説明 |
画面名 | 関数を使用する画面名を入力してください。 ※画面項目欄に記述している項目にDropdownListのようなリスト項目が存在する場合は、対象の画面名を記述することによって、リスト項目にもパラメータ引き渡しが行えます。誤っている場合は、対象画面のリスト項目にパラメータ引き渡しが行えません。 |
管理 ID | 関数を使用する画面の管理 ID を入力してください。 ※画面項目欄に記述している項目にDropdownListのようなリスト項目が存在する場合は、対象の画面名を記述することによって、リスト項目にもパラメータ引き渡しが行えます。誤っている場合は、対象画面のリスト項目にパラメータ引き渡しが行えません。 |
作成日 | 作成日を入力してください。(未入力でも可) |
作成者 | 作成者を入力してください。(未入力でも可) |
更新日 | 更新日を入力してください。(未入力でも可) |
更新者 | 更新者を入力してください。(未入力でも可) |
関数名 | 関数 ID を入力してください。関数の名称としても使用されます。 |
【SQL 区分】 | 「検索」(固定値)を記入します。 |
【作成対象】 | ビューと記述します。(必須)
(ダイナミックビューを設定する際は必須ですが、関数設計時は記述しません。) |
【概要】 | 該当関数の機能内容を記入します。関数には影響しません。 |
【引数】 | 引数が下記に分類(必須) ■画面上:「画面.画面上項目名」を設定(例:画面.店舗GLN) ■セッション値:「セッション変数.項目名」を設定(例:セッション変数.店舗GLN) |
【戻り値】 | 関数内の SELECT で取得した結果が戻り値となります。任意の名称を設定します。 |
【使用テーブル】 | 該当関数にて関わる全てのテーブルを記入(どのテーブルから値を検索するか)(必須) |
【取得項目】 | 参照テーブルのフィールド名を記入します(必須) |
【画面項目】 | 取得結果を設定する画面項目を記入します。 |
【参照元テーブル】 | 参照テーブルを記入します。(必須) |
【結合条件】 | 結合条件を作成する必要時、作成。(複数テーブルを利用する場合) テーブルが 1 つの場合:「なし」か空白 テーブル結合時、下記に分類: ■「テーブル.フィールド名 = テーブル.フィールド名」との形式で作成 例)学生.学生 No = 学生成績.学生 No ■テーブル名 INNER JOIN テーブル名 ON「テーブル.フィールド名 = テーブル.フィールド名」(例)学生 INNER JOIN 学生成績 ON「学生.No = 学生成績.学生 No」 |
【処理】 | 必要により、「WHERE」句などを定義します。 ≪Order By 句≫で複数のソート条件を設定する場合、カンマ区切りで記述します。 ソート順指定なしの場合、ASC(昇順)扱いになります。 |
3.作成した共通関数を他の関数内で使用する場合
開発完了した共通関数を別の関数内で使用する場合について、基本的に以下のような記述方法になります。
関数「関数ID記述」の「関数内のメソッドID」メソッドを行う、パラメータは「パラメータ項目1、パラメータ項目2」。
記述例:
「項目処理」
「データ取得」ボタンをクリックすると、以下の処理を行う。
1.関数「GetStuInfobyNo」の「db_GetStuInfobyNo」メソッドを行う、パラメータは「学生 ID」。
2.関数「GetStuInfobyNo」の「GetStuInfobyNo」取得結果。
3.<取得件数>が空白の場合、以下の処理を行う。
「データがありません。」メッセージを表示する。
処理終了。
4.その他の場合、以下の処理を行う。
1.「姓名」に<姓名>を設定する。
2.「性別」に<性別>を設定する。
3.「学校」に<学校>を設定する。
4.「都道府県」に<都道府県>を設定する。
5.「年齢」に<年齢>を設定する。
処理終了。
処理終了。
説明:
共通関数設計書をインポートすると、メソッドが自動生成されます。
作成した共通関数のメソッドを使用する場合、ユーザー定義関数から確認してメソッド指定する必要があります。
◇メソッドは「acc_関数ID」と「db_関数ID」の二種類作成されます。
基本的に
・acc_メソッドでは設計書で指定したパラメータとdb_メソッドを呼び出す処理内容が作成
・db_メソッドでは設計書で記述したSQL処理とパラメータの取得や、引き渡しの処理内容が作成
上記の形でコード生成されます。
設計書で記述した以外のパラメータ設定を行う場合は、db_メソッド側を使用しましょう。
※画面詳細設計書で関数処理の記述を行う場合は、必ず行ごとの処理記述終了後には句読点「。」で終えるようにしてください。
◇記述例の2.の記述内の取得結果で共通関数「GetStuInfobyNo」のSELCT実行結果を取得し、
3.の記述内の<取得件数>の記述で関数の取得要素を変数に変えて条件分岐のコードを作成しています。