サポート > チュートリアル(R8) > 顧客管理アプリケーションの事例 > 繰り返しコンテナとモデルの参照

Wagbyの「繰り返しコンテナ」の定義方法を説明します。

多くの業務アプリケーションでは「明細」情報を扱います。 ここで明細とは、モデルの中に含まれる、あるまとまったデータ群を指します。明細は(これを格納する)データと強く結びついており、当該データを削除すると(これに含まれる)明細データも同時に削除されます。

ここでは、新しいモデル「営業日報」を用意し、その中に「訪問履歴」という形で明細情報を扱う例を示します。 この訪問履歴情報は一つの営業日報の中に複数回、記載することができます。 Wagby では、このような明細情報を「繰り返しコンテナ」型の項目として定義します。

新しいモデル「dailyreport」を用意します。
モデル名(日本語)を「営業日報」とします。モデル項目は次のとおりとします。

項目名(日本語) 項目名(英語) 項目の型 主キー
営業日報ID dailyreportid 整数型
日付 date 日付型
担当者 staff 文字型
訪問履歴 visit 繰り返しコンテナ
番号 visit/vid 繰り返しコンテナID
顧客 visit/vcustomer 他モデルの項目参照(検索画面)
内容 visit/vmemo 文字列
「内容」項目は、ギアアイコンから「新規」を選択し、入力行を追加後に設定します。

繰り返しコンテナに含まれる項目群は、項目名(英語)が「繰り返しコンテナ名 + "/" + 各項目名」となります。
繰り返しコンテナの先頭は、そのコンテナの番号(順序)を示すための「繰り返し項目コンテナ用のID」を定義します。

図1 「営業日報」モデルの定義

「顧客」項目の型は最初、文字列型のままとしておきます。(図1)
一通り設定が終わったところで、型を「他モデルの項目参照」に変えます。(図2)

図2 「他モデルの項目参照」型を利用する

訪問履歴には、「どの顧客を訪問したか」という訪問先情報を格納する必要があります。この場合、すでに登録済みの「顧客」モデルを参照することが望ましい形です。

ところで「顧客」モデルは運用によって数百件から数万件になることも想定されます。このような場合は、Wagby が提供する「(サブウィンドウを用いた)検索画面」を利用します。

顧客を格納する項目 visit/vcustomer の型の詳細定義ウィンドウを開きます。
入力タイプを「検索画面」とします。
参照先モデルと(その参照先モデルの中のどの項目の値を表示するかという)参照先モデル項目を指定します。

図3 顧客項目の型の詳細設定

これまでの手順どおり、ビルドを行います。

ビルド後、Wagbyアプリケーションを起動し、ログオンします。 管理処理メニューから「インポートとエクスポート」を選択します。
ここで以前のデータを復元します。前のチュートリアルで保存したデータを「インポートフォルダ名」に指定します。
「すべて選択する」ボタンを押下し、全モデルを対象とした状態で「インポート」ボタンを押下します。

図4 データをインポートする

メニューの「サービス」タブに新しく「営業日報」が追加されています。

図5 メニュー

メニューから選択すると、検索画面が開きます。

図6 営業日報 検索画面

新規登録画面を開きます。

図7 営業日報 新規登録画面

日付の項目は、デートピッカー機能による入力が行えます。

図8 デートピッカー

繰り返しコンテナである「訪問履歴」の「顧客」項目には「検索...」というボタンが用意されます。

図9 顧客モデルを検索する

検索ボタンを押下すると、図8のようなサブウィンドウが開きます。同画面の検索条件は、顧客モデルの検索条件で指定したものです。

図10 サブウィンドウによる検索画面

図10の「一覧表示へ」ボタンを押下すると、図11のような検索結果が表示されます。 「顧客名称」がリンク形式で表示されます。対象となるデータ(顧客名称)を押下することで検索できます。

図11 顧客の検索結果

図12は、この操作を繰り返して、二件の訪問履歴を作成した例です。

図12 訪問履歴の入力例

入力した顧客情報をクリアする場合、入力欄の左に用意された消しゴムアイコンを押下します。(図13,図14)

図13 入力をクリアするための消しゴムアイコン
図14 入力がクリアされた

定義したモデル項目の位置を変更する方法を説明します。 ここでは「日付」項目を訪問履歴の一部であるというようにモデル定義を変更します。

WagbyDesignerに戻ります。営業日報モデルの「日付」項目を選択します。マウスでドラッグし、挿入したい位置でドロップします。(図18,図19)

図18 日付項目の移動(ドラッグ)
図19 日付項目の移動(ドロップ)

項目ID(英語名称)を変更します。繰り返しコンテナの中に入るため、命名規則にあわせます。ここでは "date" を "visit/vdate" としました。dateの前に "v" を付与し、vdateと変えています。

図20 項目IDを変更する
項目IDは、モデル定義全体でユニーク(IDは重複しない)というルールがあります。このルールは、繰り返しコンテナ名を除いた残り部分に適用されます。最初に date という項目IDを使っていたため、vdate と変更することで「元の名前ではない」ことを示しています。

繰り返しコンテナの中で「モデル参照(検索)」項目を用意したとき、入力フィールド長の標準は、項目全体を使うようになっています。

CSS で width:100% が指定されています。

この入力フィールド長を変更することができます。

図21 入力フィールド長を変更する

日付項目を繰り返しコンテナの内部に含み、また入力フィールド長を変更したアプリケーションは図22のようになります。

図22 変更したアプリケーション

エクスポートとログオフ

次のステップに進む前に、現時点のデータを保存しておきます。 管理処理メニューから「インポートとエクスポート」を選択します。対象モデルを「すべてを選択」し、「エクスポート」してください。

図23 管理処理メニュー

アプリケーションからログオフします。次のチュートリアルへ進みます。

図24 ログオフ

「よくある質問と回答 > チュートリアル」をお読み下さい。