第4回 Excelワークシートからテーブルとページを作成してみよう連載:Forguncy 3でカンタンWebアプリ開発(4/4 ページ)

» 2017年12月28日 05時00分 公開
[かわさきしんじInsider.NET編集部]
前のページへ 1|2|3|4       

アプリを完成させる

 前ページまでの設定のまま、アプリを実行して請求書の登録ページを表示してみたのが以下の画像だ。

取りあえずの実行画面 取りあえずの実行画面

 全体が左に寄りすぎているのを修正したいとも思うが、それより前に画面右上のコンボボックスで[マイケルソフト]を選択したが、関連する情報が表示されていないことと、[内容]セルでの商品選択に応じた単価を表示できていないことが大きな問題だ。実はデバッグ実行を開始した瞬間にForguncy BuilderのIDEには次のようなメッセージが表示されている。

「別シートのセル参照がサポートされていない」というメッセージ 「別シートのセル参照がサポートされていない」というメッセージ

 ExcelシートではVLOOKUP関数で別シートのセル範囲を検索範囲にしてうまく動作していたのだが、Forguncyではこれがうまく動かなかったということだ。動くようにするには幾つかの方法があるが、ここではODATA関数を使ってみよう。ODataプロトコルで定められているリソースパス/クエリオプションを指定してODATA関数を呼び出すと、指定したテーブルから指定したクエリオプションに合致するデータを取得できる。

 Forguncyの場合、リソースパスとは簡単にいえば「テーブル名」のこととなる。クエリオプションには、この場合、フィルターを指定して、そのフィルターに合致するレコードから特定のフィールドを選択するので「$select」「$filter」の2つのオプションを指定する。例えば、「コンボボックスで選択した会社から、その会社の担当者を取得したい」のであれば、リソースパスとクエリオプションは「"取引先テーブル?$select=担当者&$filter=ID eq " & F8」のようになる(F8はコンボボックスがあるセル)。

 このODATA関数呼び出しと、エラー発生時の表示を切り替えるためにIFERROR関数とを組み合わせて「=IFERROR(ODATA("取引先テーブル?$select=担当者&$filter=ID eq " & F8), "")」を担当者を表示するセルの内容とする。他のセルについても同様な設定を行ったのが次の画面だ。

IFERROR関数とODATA関数を利用して、取引先情報の表示をテーブルを基に表示するように設定したところ IFERROR関数とODATA関数を利用して、取引先情報の表示をテーブルを基に表示するように設定したところ

 ただし、これだけでは問題は解決しない。コンボボックスの設定を行う必要があるのだ。これにはコンボボックスを選択して、右ペインの[セル型]タブで表示する項目の設定を行う。Forguncyはインテリジェントに表示項目を元のExcelシートから抽出してくれるのだが、ここでは[取引先テーブル]に含まれているデータから[会社名]フィールドを表示するようにしよう。

コンボボックスに[取引先テーブル]のデータを表示 コンボボックスに[取引先テーブル]のデータを表示

 以上の設定を行ってから、アプリを実行すると次のようになる。

コンボボックスでの選択に応じた取引先情報が表示されるようになった コンボボックスでの選択に応じた取引先情報が表示されるようになった

 実は上で見たのと同様な手順で、[内容]セルのコンボボックスに[商品テーブル]のデータを表示するように設定した上で、[単価]セルの内容をやはりODATA関数を使って単価を商品テーブルから取得するようにすることで、[単価]セルもうまく表示できるようになる。実際の[単価]セルの内容は「=IFERROR(ODATA("商品テーブル?$select=単価&$filter=ID eq "&B18),"")」のようになる。コンボボックスとODATA関数の2つの設定を行い、アプリを実行すると次のように[内容]コンボボックスで項目を選択して、セルを移動すると[単価]セルに単価が表示されるようになる。

取引先情報と商品情報の取得ができるようになったアプリ 取引先情報と商品情報の取得ができるようになったアプリ

 後は少々見た目の修正などを行ったものを以下に示す。

[登録ページ]リンクをクリック
[登録ページ]リンクをクリック
適当に入力して[登録]リンクをクリック
適当に入力して[登録]リンクをクリック
請求書データが登録された 取りあえず完成したアプリ

 ドロップダウンで会社名や商品名を選択するようにすることで、不要なデータの入力や間違ったデータの入力を避けることもできる。このような少し便利なWebアプリがExcelワークシートからとても簡単に作成できることを感じていただけただろうか。


 本稿では取りあえずこれでアプリは完成したものとするが、取引先/商品の登録/編集機能、Excelへのエクスポート機能、既存のExcelデータのリストビューへのインポート機能など、この他にも追加した方がよさそうなことはたくさんある。Excel資産も少しずつ機能を増やしていったと思うが、Forguncyでも上に挙げたような機能を少しずつ追加していけばよいだろう。日々の業務を少しでも便利にするようなちょっとした機能をExcelからWebアプリに移行して、その機能を徐々に充実させていくのをForguncyは強力にサポートしてくれるはずだ。

「連載:Forguncy 3でカンタンWebアプリ開発」のインデックス

連載:Forguncy 3でカンタンWebアプリ開発

前のページへ 1|2|3|4       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。