Webを基本に。つくる場所も、使う言語も、自由に。
当初は、WebAssemblyを使ったブラウザー版だけを作る予定でした。ただ、帳票をじっくり設計し、ファイルを開いたり保存したりする作業には、パソコン上で動くデザイナーもあった方が使いやすい。そう考えて、Windows・Mac・Linuxでの利用を見据え、WPF・Java・Pythonのデザイナーを用意しました。
そこで、「せっかく各言語で帳票を描画できるのなら、設計だけでなく、帳票の作成・プレビュー・印刷までできるようにしよう」と考えました。デザイナー・エンジン・プレビュアーが揃えば、それぞれの言語で帳票機能を備えたデスクトップアプリケーションを作れます。パソコン内で完結させることも、REST APIでサーバーと連携させることもできます。
さらに、ここまで帳票エンジンを揃えたなら、Webアプリケーションでも使えるはずです。当初はWebAssemblyに任せる予定だった帳票処理も、システム全体をJavaなどの同じ言語で統一したい場合があります。そこで、Java・Python・.NETのエンジンを直接使い、サーバー側で帳票を生成する方式にも対応しました。
こうして、WebAssemblyの帳票エンジンを各言語から薄いラッパーを通して使う基本構成に、Pure Java版・Pure Python版・WPF/.NET版が加わり、現在のReports Webの構成になりました。
帳票デザインと完成した印刷データは、それぞれ共通形式です。ブラウザーとパソコンの間でデザインを引き継いだり、帳票を作成する環境と閲覧する環境を分けたりして使えます。
Webから始まり、パソコンへ。同じ言語で完結する開発へ。
そのつながりを、ここから図でご紹介します。