160-02 | オペレーション 基本編
前回のドリルでは、ExcelやCSVからForguncyにデータを取り込み、予実それぞれの一覧表を作成しました。
一覧表の形式はデータの分析に便利ですが、データ数が増えていくと徐々に見づらくなってしまいます。
その問題を解決するために、今回は部署や科目を指定して、一覧表に表示するデータを絞り込みが行えるようにアプリをアップデートしていきます。
今回は、Forguncyのコンボボックスを使用してノーコードでデータのフィルタリングを行う方法を解説します。
下記のリンクからサンプルプロジェクトをダウンロードできますが、前回のドリルで使用したプロジェクトがある場合には、そちらを使っていただいても構いません。
プロジェクトを確認する
プロジェクトを開き、アプリケーションの確認をします。
アプリケーションの状態は前回のドリル完了時とほぼ同じ状態で、「予算表」画面と「実績表」画面それぞれにリストビューが配置されており、その中にデータが一覧表示されるようになっています。
前回のドリル完了時と異なる点として、予算表画面のリストビューの上には事業部や大科目などの文字の横に結合されたセルと、「表示」ボタンが配置されています。
実績表画面も同様に、事業部や大科目などの文字と結合されたセルが存在していますが、こちらには「表示」ボタンはありません。
今回のドリルでは、これらの事業部などの項目で一覧表の表示データの絞り込みを行えるようにしていきます。
絞り込みにはコンボボックスを使用します。
データの絞り込み表示がされるタイミングですが、予算表画面では「表示ボタンを押下したタイミング」、実績表画面では「コンボボックスの中身を選択したタイミング」で行われるようにするため、表示ボタンは予算表のみに設置しています。
コンボボックスの作成
「予算表」画面を開きます。
ページタイトルの下にある「年度」「事業部」「部」「課」「大科目」「中科目」の見出しそれぞれの右側にある結合されたセルに、コンボボックスを配置していきます。
結合されたセルを選択した状態で、リボンの[ホーム]タブにある[セル型]からコンボボックスを選択します。この作業を絞り込み条件として使用する6項目の見出し右側にある結合セルすべてに行います。

コンボボックスが配置できたら、その中に表示する値を設定します。
表示する値は手入力でセットすることもできますが、テーブルの任意のフィールドを使用することもできます。
今回はテーブルからデータを取得して表示させる方法を使用します。
コンボボックス型に設定したセルを選択し、右ペインの[セル型]タブを開きます。
「リスト項目」の見出しの下に「テーブルからデータを取得」という項目があるのでこれにチェックします。

すると、画面が変化して「テーブル」「値フィールド」「表示フィールド」という項目が現れるので、それぞれ以下のように設定します。
- 年度
- テーブル:予算管理
- 値フィールド:[年度]
- 表示フィールド:[年度]
- 事業部
- テーブル:組織マスタ
- 値フィールド:[事業部]
- 表示フィールド:[事業部]
- 部
- テーブル:組織マスタ
- 値フィールド:[部]
- 表示フィールド:[部]
- 課
- テーブル:組織マスタ
- 値フィールド:[課]
- 表示フィールド:[課]
- 大科目
- テーブル:科目マスタ
- 値フィールド:[大科目]
- 表示フィールド:[大科目]
- 中科目
- テーブル:科目マスタ
- 値フィールド:[中科目]
- 表示フィールド:[中科目]
これで、それぞれのコンボボックスにテーブルから取得したデータが表示できるようになりました。
しかし、このままではコンボボックスのリストに空白行がありません。
そのため、一度条件を選ぶと絞り込みなしのクリアな状態には戻せません。
これを回避するために、それぞれのコンボボックスに空白行(未選択項目)を追加します。
「表示フィールド」のコンボボックスの下に、「未選択項目の追加」という項目があります。
これをチェックすることで、コンボボックスに空白行が追加されます。
すべての設定が完了すると、下図のような状態になります。

「予算表」画面のコンボボックス設定が完了したら、「実績表」画面も同じように設定します。
コンボボックスに親子関係を設定する
このままでもコンボボックスは機能します。
しかし、事業部で「システム開発事業部」を選んだ時に、部のコンボボックスに「営業部」などの存在しない部が表示されるのはあまり親切とは言えません。
そのため、コンボボックスに親子関係を設定し、事業部内に存在する部や課のみを表示する設定を行います。
「部」のコンボボックスがあるセルを選択した状態で、「リスト項目」内にある「クエリー条件…」のハイパーリンクをクリックします。
すると、「クエリー条件」ウィンドウが開きます。
ここで「新しい条件」ボタンを押下して、事業部の値がコンボボックスで選択した値と同じ値のレコードのみを表示する、つまりコンボボックスで選択した事業部に属する部の名称のみを表示するよう、下記のように設定します。
- フィールド:[事業部]
- 条件:=(等しい)
- 値:=Q5

同様に、「課」のコンボボックスと「中科目」のコンボボックスにも以下のように設定を行います。
- 課
- フィールド:[部]
- 条件:=(等しい)
- 値:=AB5
- 中科目
- フィールド:[大科目]
- 条件:=(等しい)
- 値:=F6
絞り込み表示ボタンの動作を設定する
「予算表」ページを開きます。
中科目のコンボボックス右側にある「表示」ボタンを押下した際の動作を設定していきます。
「表示」ボタンを選択した状態で、右ペインの「コマンド…」ハイパーリンクをクリックします。
開いた「コマンド」ウィンドウで、「クエリー」コマンドを追加します。
対象テーブルでリストビューと連結されている「予算管理」テーブルを選択し、下図のように各項目の値がコンボボックス型セルで選択した値と同じであるレコードのみを表示するように設定します。

これで、予算表画面の作業は完了です。
コンボボックスの値選択時に一覧表データを即時フィルタリングする
「実績表」ページを開きます。
予算表ページではボタンを押下した際に絞り込みが行われるように設定しましたが、実績表ページではコンボボックスの値を選んだタイミングですぐにリストビューのデータが絞り込み表示されるように設定します。
実績表ページのコンボボックス設定は予算表ページと同じですので、未完了の場合は 2.コンボボックスの作成 まで戻ってリスト項目をテーブルから取得できるように設定をしてください。
コンボボックスの設定が完了したら、リストビューを右クリックし、「クエリー条件…」を押下します。

「クエリー条件」ウィンドウが開くので、対象テーブルで「実績管理」テーブルを指定します。
その後、予算表と同様に下図のような形で各項目の値がコンボボックス型セルで選択した値と同じであるレコードのみを表示するように設定します。

結果を確認する
プロジェクトをデバッグ実行し動作を確認します。
デバッグ実行すると「予実管理メニュー」ページが表示されます。
ハイパーリンクの「予算表」「実績表」をクリックすると、それぞれの一覧表が表示されるページが別タブで開きます。
「予算表」ページではコンボボックスで条件を指定したあと、表示ボタンを押下することでリストビュー上に表示されるデータがフィルタリングされることを確認します。
また、「実績表」ページではコンボボックスで値を選択した瞬間にリストビュー上のデータがフィルタリングされることを確認します。