CodeZine(コードジン)

特集ページ一覧

日本の帳票文化のWeb化に真正面から取り組んだらこうなった~Excel方眼紙イメージのWebアプリ作成ツール「Forguncy」

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/11/28 18:20

 日本には帳票文化という単なるレポート印字ではない、手書きでも印字でも通用するように縦横の罫線をきちっと定義した独特の文化があります。この帳票文化をWeb画面で再現するのはほぼ不可能と思われていました。今回紹介する「Forguncy(フォーガンシー)」は、Web画面定義をExcel方眼紙ライクの操作性で行えるようにし、さらに再現度高くWebアプリとして実行する仕組みを整えることで、この帳票文化のWeb化という難題に真正面から取り組んだ製品です。

 Excel方眼紙という言葉になじみのない方向けに、それがどういったものかを少しだけ説明すると、「Excelの列方向の幅を行の高さと同じに変更して、Excelのセルをすべて正方形にした状態のシート」をグリッドの見た目からExcel方眼紙と呼びます。Excel方眼紙は主に上流工程のドキュメントや画面イメージの作成に使われ、根強い人気があります。また、実際にアプリを作成できなくても、Excel方眼紙で現場の要求に即したシートを作成して事務作業の省力化に寄与している方も数多くいます。

 Forguncyは、Excel方眼紙で作成した画面イメージから、Webサーバやデータベースも含めて簡単にWebアプリ化できるので、次のような用途に最適な製品です。

  • Excelファイルでやりとりしていた社内手続きを社内向け小規模Webアプリに
  • 現場で活用していたExcelファイルを部門内サブシステムに
  • Excelで作成された画面仕様書から大規模Webアプリのプロトタイプに

 今回は、手元に簡単なExcelで作った一覧表から、Forguncyを使って「最小手順でWebアプリ化する方法」をみていきたいと思います。

Forguncyの構成

システム構成

図1 Forguncyの構成
図1 Forguncyの構成

 Forguncyは、開発環境とサーバー環境の2つから構成されています。Excel方眼紙ライクな開発環境でデザインした画面はその場で実行してデバッグした後に、Forguncyサーバーに発行してWebアプリとして公開します。ForguncyサーバーはWebアプリやデータベースがあらかじめ含まれており、Webインフラの高度な専門的知識がなくてもサーバー環境が構築できます。

 ForguncyサーバーのWeb機能はどのように実現しているかは憶測になってしまいますが、オープンソースとしてMicrosoft Katanaプロジェクトを利用していると書かれているので、Katanaプロジェクトにより実現しているのかもしれません。また、データベースとしてはSQL Server Compact 4.0が採用されているようです。

画面構成

 Forguncyを起動すると、見慣れたExcelのようなリボンインターフェースに最初から方眼紙状にセル幅を調整したシートが表示されます。

図2 Forguncyの画面構成
図2 Forguncyの画面構成

 しかし似ているのは[ホーム]タブのリボンだけであり、[作成][挿入][データ][ユーザー認証][発行]の各タブにはForguncyの特徴的なリボンが並んでいます。

図3 Forguncyのリボン
図3 Forguncyのリボン

 Forguncyでアプリを作っていくときに重要な概念に「テーブル」と「ページ」があります。「テーブル」はデザインなしの一覧表、「ページ」はテーブルの内容を表示するためのExcel方眼紙上のデザインに相当します。

 Forguncyのリボンインターフェースからも分かるように、テーブルやページはForguncyで新規に作成することもできますが、既存のAccess、Excel、テキストファイルからインポートして作成することもできます。

ExcelシートからForguncyテーブルを作成

 都道府県の一覧が記載されたシートからForguncyテーブルを作成してみましょう。

図4 Excelシート
図4 Excelシート
(1)ファイル指定

  [データ]-[Excelからテーブル]メニューを選択して[外部データの取り込み]ダイアログを開いたら、先ほどのExcelファイルを指定します。

図5 外部データの取り込み
図5 外部データの取り込み
(2)シート指定

 テーブルへの取り込みはシート単位になるので、取り込みたいシートを指定します。このときにシート全体ではなくシートの選択範囲のみを取り込むこともできます。

図6 シート指定
図6 シート指定

 もちろん、1つのForguncyアプリで複数のテーブルを扱うこともできますので、テーブルへの取り込みをシート数分だけ繰り返せば、Excelファイルの複数シートを複数のテーブルにしてForguncyアプリ化することもできます。

(3)先頭行の取り扱い指定
図7 先頭行の取り扱い指定
図7 先頭行の取り扱い指定

 シートを指定したら先頭行がデータか列名かを指定します。もし、列名が複数行に渡っていたりするようなときは、シート指定時に取り込む範囲を指定すると良いでしょう。

(4)列指定

 ExcelでCSVファイルを取り込んだことのある方であればおなじみの取り込む列指定の機能はForguncyにも存在します。フィールド名の指定やデータ型の指定もできます。

図8 列指定
図8 列指定
(5)テーブル名の指定

 最後にテーブル名の指定が可能です。Forguncyではテーブルとページに同じ名前は付けられないので、どちらかといえば裏に隠れるテーブルの方をページとかぶらない名前にしておくと良いでしょう。

図9 テーブル名の指定
図9 テーブル名の指定
(6)テーブルの確認

 Excelシートからテーブルに取り込みが完了すれば、ナビゲーションウィンドウのテーブルグループに取り込んだテーブル名が表示されます。また、Excelシート風な表示でテーブルの内容も確認できます。

図10 Forguncyテーブルの確認
図10 Forguncyテーブルの確認

ForguncyテーブルからForguncyページを作成

 テーブルが生成できたならば、同じExcelシートからページを作成すれば……と思いましたが、テーブルからページを生成というそのものずばりなものがありましたので、まずはそちらを使ってみましょう。

(1)テーブル指定

 [作成]-[テーブルからページを生成]メニューを選択して、変換したいテーブルを指定します。

図11 テーブル指定
図11 テーブル指定

 ここでは[一覧ページ]のみをチェックして[OK]ボタンをクリックします。

(2)ページの確認

 自動生成された一覧ページを確認してみましょう。

図12 Forguncyページの確認
図12 Forguncyページの確認
(3)列の変更

 自動生成された一覧ページでは、行削除フィールドがあるのでそこを計算フィールドに変更します。

図13 列の変更
図13 列の変更

 計算方法の指定をしていくときの「=」を入力後、列をクリックしつつ数式を完成する感覚はまさにExcelそのものの操作感であり、完成度の高さがうかがえます。

Forguncyアプリの実行

 テーブルとページが揃ったら実行して、Webブラウザでの表示を確認してみましょう。

図14 Forguncyアプリの実行
図14 Forguncyアプリの実行

 元のExcelシートからテーブル化して微調整などを経てここに至るまで、ほぼExcelと同等の操作感で操作してきましたし、そもそもWebアプリ的な設定も知識も使うことなく無事にWebアプリが完成しました。あとは、これをForguncyサーバーが動いているところに発行してあげれば当初の目的は完成してしまいます。

詳細ページ作成時の注意点

 テーブルの値を1行1ページとして詳細ページ表示するときには、テーブルから一覧ページを作成した時にはなかった注意点があります。

図15 詳細ページのデザイン例
図15 詳細ページのデザイン例

 このようなデザインをした場合、テーブルのデータが複数あったときに、どのデータを表示するかをどのように指定したらよいでしょうか。

 標準的な手法としては、一覧を表示して各データにリンクを設定し、そこから各レコードの単票を表示する方法がありますが、今回はForguncy特有のセル型である「レコードナビゲーション」型を使ってページを作成します。

図16 レコードナビゲーション型
図16 レコードナビゲーション型

 しかし、これだけでは実行してもテーブルに結びつけているのにレコード数は0になってしまいます。

図17 レコード数が正しくない実行例
図17 レコード数が正しくない実行例

 その対策には、同じページ内に一覧を追加しておくことです。

図18 レコード数が正しい実行例
図18 レコード数が正しい実行例

 しかしこれでは見た目が悪すぎるので、一覧を表示している範囲を非表示にします。

図19 非表示の指定
図19 非表示の指定

 これで実行すれば想定した感じのページとして表示できます。

図20 Forguncyアプリの表示確認
図20 Forguncyアプリの表示確認

ExcelシートからForguncyページを作成

 次に、Excelシートからテーブルではなくページを作成する手順をみてみましょう。

(1)ファイル指定

 [データ]-[Excelからページ]メニューを選択して[外部データの取り込み]ダイアログを開いたら、先ほどのExcelファイルを指定します。

図21 Excelからページ
図21 Excelからページ
(2)シート指定

 テーブルへの取り込みはシート単位になるので、取り込みたいシートを指定します。このときにシート全体ではなくシートの選択範囲のみを取り込むこともできます。

図22 シート指定
図22 シート指定

 今回、「都道府県単位」シートのみを取り込んでみたら、そのシートでは「市町村区単位」シートを参照していたので、追加で「市町村区単位」シートも取り込みました。「市町村区」シートのように実際に値が入っているシートの場合、データやテーブルではなくシート自体に設定されます。

図23 値があるシートをページとした例
図23 値があるシートをページとした例

 一方、値ではなく他のページへの場合は少々動作が違っていました。他ページへの参照があるページでは、編集画面上でもページ間の参照が定義されているので安心して実行してみましたが正しい表示にはなりませんでした。

図24 シート間参照の実行例
図24 シート間参照の実行例

 どうやら、Forguncyでセルに設定できる数式では、シートをまたがったセル参照などが無効になるようです。編集画面では定義上のエラーとなっていないので、もしかしたら今後実行時にも正しく表示できるようになるかもしれませんが、シート間を数式で結びつけているような場合は、テーブル経由に変更するなどの工夫が必要なようです。

まとめ

 Forguncyが内蔵しているWeb機能やDB機能などの構成要素を見るとForguncyが想定しているターゲットが元々大規模を想定せずに気軽に使えるツールを目指しているというのが理解できます。このような流れは何もForguncyだけの話ではなく、例えばLightSwitchやProject Sienaのように同様なアプローチをしている開発環境も登場しています。

 Forguncyがそれらのツールよりも1歩抜き出ていると思えるのが、2015年には外部データベースとの接続など大規模な開発にも使えるForguncy Proが登場する予定だということです。Forguncyで作成したプロトタイプを元に受託業者にForguncy Proでの作成を外部委託するという新しい商流も生まれてくる事が予想できます。

 このようにForguncyは単なるExcel方眼紙ライクな開発環境という面以上にさまざまな可能性を秘めた製品であるといえるでしょう。

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 初音玲(ハツネアキラ)

     国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。  個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。  Microsoft MVP for Windows Development...

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5