(57)【要約】      （修正有）【課題】変更された値に応じてウェブブラウザがグラフの表示を更新する。【解決手段】情報システムは、ウェブブラウザを有するクライアント装置と、ウェブブラウザに表示される帳票を提供する帳票生成サーバと、を含む情報処理システムであって、帳票生成サーバは、変更された帳票の出力データの位置を特定し、出力データの変更に伴い、表示中のグラフを更新するプログラムを提供する提供手段と、提供手段によって提供されたプログラムを実行したクライアント装置のウェブブラウザが、変更された出力データに関連するグラフを特定し、特定されたグラフに含まれるフィールドと、位置のフィールドとが一致するかを判定する判定手段と、判定手段によって一致すると判定されたことに伴い、ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更手段と、を有する。【選択図】図１９
2019106013.tif 000002
【特許請求の範囲】
【請求項１】
ウェブブラウザを有するクライアント装置と、
前記ウェブブラウザにより前記クライアント装置の画面上に表示される帳票を提供する帳票生成サーバであって、前記帳票は表とグラフとを含み、前記グラフは前記表に含まれる出力データと前記出力データの要素であるフィールドとに対応して作成されることを特徴とする帳票を提供する帳票生成サーバと、
を含む情報処理システムであって、
前記帳票生成サーバは、
前記ウェブブラウザにより表示される画面上でユーザが指定した、出力データの位置を特定し、前記出力データの変更に伴い、前記画面に表示中のグラフを更新するプログラムを提供する提供手段を有し、
前記提供手段によって提供されたプログラムを実行した前記クライアント装置のウェブブラウザは、
変更された前記出力データに関連するグラフを特定し、
特定されたグラフに含まれるフィールドと、前記位置のフィールドとが同一であるかを判定する判定手段と、
前記判定手段によって同一であると判定されたことに伴い、
ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更手段として機能することを特徴する情報処理システム。
【請求項２】
前記判定手段によって同一でないと判定された場合、
前記変更手段によって前記グラフの表示を更新せず処理を終了することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記プログラムは、
前記帳票に含まれる表とグラフの配置の情報を含む第一の出力ページ情報と、
前記画面上に描画される描画要素と前記描画要素の描画位置の情報とを含み、前記第一の出力ページ情報を前記第一の出力ページ情報とは異なるファイル形式に変更したことで生成される第二の出力ページ情報と、
を含むことを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記第一の出力ページ情報は、
特定の出力ページにおける、前記帳票に含まれる表の配置の情報である第一のページブロックと、
前記第一のページブロックに関連するグラフの配置の情報と、前記グラフの識別子と、を含む第二のページブロックと、
を含むことを特徴とする請求項３に記載の情報処理システム。
【請求項５】
前記判定手段は、
前記画面に表示中である帳票の前記第一の出力ページ情報に、前記第二のページブロックが含まれることを確認した後に、
前記第二のページブロックに含まれる前記グラフの識別子に基づいて、前記グラフのフィールドを含むグラフ属性を特定し、
特定されたグラフ属性に含まれるフィールドと、前記位置のフィールドとが同一であるかを判定することを特徴とする請求項４に記載の情報処理システム。
【請求項６】
前記判定手段によって、前記画面に表示中である帳票の前記第一の出力ページ情報に、前記第二のページブロックが含まれていないことが確認された場合、
前記変更手段は、
前記ユーザ操作によって変更された出力データに基づいて、前記帳票に含まれる表の表示を変更することを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記提供手段によって提供されたプログラムを実行した前記クライアント装置のウェブブラウザは、
ユーザが指定した、出力データの位置に、前記フィールドが存在するかを判定する第二の判定手段を更に有し、
前記第二の判定手段によって、前記位置に前記フィールドが存在すると判定された場合、
ユーザ操作によって前記出力データを変更するためのダイアログを表示し、
前記第二の判定手段によって、前記位置に前記フィールドが存在しないと判定された場合、
前記ダイアログを表示することなく処理を終了することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理システム。
【請求項８】
前記情報処理システムは、
前記表の配置の情報を含む第一の出力ページ情報と、前記画面上に描画される描画要素の描画位置の情報を含む第二の出力ページ情報と、を用いて、前記描画要素の描画位置が前記表の配置に含まれるかを判定する第三の判定手段と、
前記第三の判定手段によって、前記描画要素の描画位置が前記表の配置に含まれることが判定されたことに伴い、前記第二の出力ページ情報に含まれる描画要素に対して、前記フィールドのフィールド名と識別情報を付与する付与手段と、
を更に有し、
前記第二の判定手段は、
前記付与手段によって付与されたフィールド名を用いて、ユーザが指定した、出力データの位置に、前記フィールドが存在するかを判定することを特徴とする請求項７に記載の情報処理システム。
【請求項９】
前記グラフは、
前記第一の出力ページ情報が、前記第二のページブロックを含むことが確認された後に、
前記第二のページブロックに含まれる前記グラフの識別子に基づいて、前記グラフのフィールドを含むグラフ属性を特定し、
前記付与手段によって前記フィールド名と識別情報とが付与された前記第二の出力ページ情報と、前記グラフ属性と、を用いて生成されることを特徴とする請求項８に記載の情報処理システム。
【請求項１０】
前記ウェブブラウザは、
前記画面上に描画される描画要素と前記描画要素の描画位置の情報とを含む第二の出力ページ情報が存在しない場合、
前記表と前記グラフの配置の情報と、前記描画要素とを含む第一の出力ページ情報に基づいて、前記グラフを生成する生成手段を更に有することを特徴とする請求項１乃至９のいずれか一項に記載の情報処理システム。
【請求項１１】
ウェブブラウザを有するクライアント装置と、
前記ウェブブラウザにより前記クライアント装置の画面上に表示される帳票を提供する帳票生成サーバであって、前記帳票は表とグラフとを含み、前記グラフは前記表に含まれる出力データと前記出力データの要素であるフィールドとに対応して作成されることを特徴とする帳票を提供する帳票生成サーバと、
を含む情報処理システムの制御方法であって、
前記帳票生成サーバは、
前記ウェブブラウザにより表示される画面上でユーザが指定した、出力データの位置を特定し、前記出力データの変更に伴い、前記画面に表示中のグラフを更新するプログラムを提供する提供ステップを有し、
前記提供ステップによって提供されたプログラムを実行した前記クライアント装置のウェブブラウザは、
変更された前記出力データに関連するグラフを特定し、
特定されたグラフに含まれるフィールドと、前記位置のフィールドとが同一であるかを判定する判定ステップと、
前記判定ステップによって同一であると判定されたことに伴い、
ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更ステップとして機能することを特徴する情報処理システムの制御方法。
【請求項１２】
ウェブブラウザによりクライアント装置の画面上に帳票を表示するクライアント装置の制御方法であって、
前記帳票は表とグラフとを含み、前記グラフは前記表に含まれる出力データと前記出力データの要素であるフィールドとに対応して作成されることを特徴とし、
前記ウェブブラウザにより表示される画面上でユーザが指定した、出力データの位置を特定し、前記出力データの変更に伴い、前記画面に表示中のグラフを更新するプログラムを実行した前記クライアント装置のウェブブラウザは、
変更された前記出力データに関連するグラフを特定し、
特定されたグラフに含まれるフィールドと、前記位置のフィールドとが同一であるかを判定する判定ステップと、
前記判定ステップによって同一であると判定されたことに伴い、
ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更ステップとして機能することを特徴するクライアント装置の制御方法。
【請求項１３】
コンピュータを、
ウェブブラウザによりクライアント装置の画面上に帳票を表示するクライアント装置として機能させるプログラムであって、
前記帳票は表とグラフとを含み、前記グラフは前記表に含まれる出力データと前記出力データの要素であるフィールドとに対応して作成されることを特徴とし、
前記ウェブブラウザにより表示される画面上でユーザが指定した、出力データの位置を特定し、前記出力データの変更に伴い、前記画面に表示中のグラフを更新するプログラムを実行した前記クライアント装置のウェブブラウザは、
変更された前記出力データに関連するグラフを特定し、
特定されたグラフに含まれるフィールドと、前記位置のフィールドとが同一であるかを判定する判定手段と、
前記判定手段によって同一であると判定されたことに伴い、
ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更手段として機能することを特徴するクライアント装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、帳票を表示する情報処理システム、制御方法とそのプログラムに関する。
【背景技術】
【０００２】
帳票の作成方法としては、以下の方法があった。すなわち、帳票の雛型となるフォームファイルを、専用のアプリケーション（フォームファイル編集エディタ）を用いて作成しておき、フォームファイルに対して、フィールドデータをオーバレイする。つまり、フォームファイル内の各フィールドに、対応するフィールドデータを流し込んで適用する。これにより、帳票（例えばＰＤＦ形式のファイル）を作成する。帳票を印刷する際には、サーバにおいてオーバレイを実行して作成した帳票を、クライアント装置がプリンターに印刷させる。
【０００３】
このように、もともと帳票は印刷して使用される形態がほとんどであった。しかし、近年、紙の省資源化を目的としてタブレットデバイスやＰＣ等のデバイスに帳票を表示し、必要な出力ページのみを印刷する形態も多くなってきている。具体的には、保険帳票をタブレットデバイスやＰＣ等のデバイスで顧客に提示する形態がある。
【０００４】
デバイスに表示される帳票には表だけでなく、グラフが含まれることがある。例えば保険帳票の場合、顧客への保険帳票のスムーズな説明や、商品の視覚的インパクトを目的として、表データをグラフで表示する形態がある。その場合、説明の最中に商品の価格（例えば保険料）を割引価格に変更し、その保険料をグラフに反映させたいという要望がある。特許文献１は、作成目的に応じてグラフ種別を決定し、決定した種別のグラフを作成するグラフ作成プログラムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特願２０１２−２８６５４２
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし特許文献１の技術では、データの変更に伴い、サーバでグラフの画像を再作成する必要がある。グラフの再作成の度にクライアント装置がサーバに対して問い合わせるのはネットワーク帯域の観点から必ずしも良いとは言えない。
【０００７】
また、汎用的なユーザー操作を受けて、Ｗｅｂブラウザーにより表示される帳票を変化させることが難しいという問題があった。
【０００８】
本発明では、変更された値に応じてウェブブラウザが帳票の表示を更新することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は上記課題を鑑みたものであり、以下の手段を有することを特徴とする情報処理システムである。すなわち、ウェブブラウザを有するクライアント装置と、前記ウェブブラウザに表示される帳票を提供する帳票生成サーバと、を含む情報処理システムであって、前記帳票生成サーバは、変更された前記帳票の出力データの位置を特定し、前記出力データの変更に伴い、表示中のグラフを更新するプログラムを提供する提供手段と、前記提供手段によって提供されたプログラムを実行した前記クライアント装置のウェブブラウザは、変更された前記出力データに関連するグラフを特定し、特定されたグラフに含まれるフィールドと、前記位置のフィールドとが一致するかを判定する判定手段と、前記判定手段によって一致すると判定されたことに伴い、ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更手段と、を有する。
【発明の効果】
【００１０】
本願発明により、変更された値に応じてウェブブラウザが帳票の表示を更新することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る情報処理システムの構成例を示す図。
【図２】本実施形態に係るハードウェア構成例を示す図。
【図３】本実施形態に係る、帳票生成サーバが有する機能を示す図。
【図４】オーバレイ処理の概念図。
【図５】ウェブ帳票閲覧情報を生成する処理のシーケンス図。
【図６】ログイン画面を示す図。
【図７】帳票選択画面を示す図。
【図８】オーバレイ処理のシーケンス図。
【図９】出力ページ情報の一例を示す図。
【図１０】複合フォームファイル１００１を構成するフォームファイルの一例を示す図。
【図１１】グラフ１００７のグラフ属性の一例を示す図。
【図１２】フィールドデータの一例を示す図。
【図１３】ＳＶＧ形式の出力ページの構成例を示す図。
【図１４】実施例１における、グラフ生成処理のシーケンス図。
【図１５】（ａ）は実施例１のグラフ生成処理を実行するためのプログラムの一を示す図、（ｂ）は実施例１における、識別情報の付与処理を実行するためのプログラムの一例を示す図、（ｃ）は実施例１における、識別情報の付与処理を実行する処理を示すシーケンス図。
【図１６】実施例１における、識別情報が付与された後の出力ページ（ＳＶＧ）の一例を示す図。
【図１７】ウェブ帳票閲覧情報に基づいて生成された画面表示の一例を示す図。
【図１８】実施例１の生成されたＳＶＧ形式のグラフの構成例を示す図。
【図１９】実施例１における、グラフ更新処理のシーケンス図。
【図２０】実施例１における、グラフ更新処理を実行するためのプログラムの一例を示す図。
【図２１】実施例１における、更新後の画面表示の一例を示す図。
【図２２】実施例２における、ウェブ帳票閲覧情報に基づいて生成された画面表示の一例を示す図。
【図２３】実施例２における、出力ページ情報の一例を示す図。
【図２４】実施例２における、グラフ生成処理のシーケンス図。
【発明を実施するための形態】
【００１２】
以下、図面を用いて本発明に係る実施形態を説明する。まず、本明細書で使用する用語について説明する。
【００１３】
＜用語説明＞
・フォームファイル
帳票のテンプレートとなる情報を定義したファイル。専用のフォームファイル設計エディタで編集される。フォームファイルには、自社住所等の固定的な文字列や、自社企業ロゴの画像等の定義も含まれる。本実施例における帳票とは、データ（後述のフィールドデータ）を出力して表示するためのグラフや表を指す。
【００１４】
・フィールド
可変データ（後述のフィールドデータ）を受け取る要素であり、フォームファイルに定義される。フィールドが有する名前によって、フィールドデータと関連付けられる。
【００１５】
・フィールドオブジェクト
フォームファイルに定義され、フィールドに流し込まれた可変データ（後述のフィールドデータ）を出力するためのオブジェクト。フォントサイズ等の見た目は、フィールドではなくフィールドオブジェクトに設定される。フィールドとフィールドオブジェクトはフォームファイル内で関連付けられている。
【００１６】
・フィールドデータ
フォームファイルのフィールドに流し込まれるテキスト形式のデータ。例えば、フィールドが「国」であれば、それに流し込まれるに流し込まれる「日本」、「イタリア」等の個々の生データがフィールドデータである。
【００１７】
・フィールドデータファイル
複数のフィールドデータを集めたファイル。
【００１８】
・グラフ属性
グラフオブジェクトが持つグラフに関する属性である。グラフオブジェクトとは、フィームファイルに定義されるグラフを描画するためのオブジェクトであり、フィールドオブジェクトの一種である。グラフオブジェクトは、グラフで使用するフィールドの定義や、グラフ種類、線グラフの色等の見た目を制御する情報定義を有し、フォームファイルに格納される。
【００１９】
・オーバレイ
フィールドにフィールドデータを流し込み、フィールドオブジェクトに定義されたフォントサイズ等を考慮してレイアウト処理を行い、フォームファイルとフィールドデータを重ね合わせて、出力ページを出力すること。オーバレイしたデータを紙ではなく、電子ファイルとして出力することも可能であり、本明細書において、印刷することやＰＤＦ等の文書生成を実行することを「オーバレイ」と称する。
【００２０】
・出力ページ
オーバレイした結果、出力される印刷物もしくは文書の各ページ。形式はＰＤＦやＳＶＧ等がある。
【００２１】
・出力データ
オーバレイした結果、出力ページに出力されたデータ。
【００２２】
・出力ページ情報
出力データを含む出力ページに関する情報。各出力データの出力座標等を持つ。後述のウェブ帳票閲覧情報構築の際に利用される情報。
【００２３】
図１は、本実施形態の情報処理システムの構成例を示す図である。図１に示す情報処理システムは、帳票生成サーバ１０１とクライアント装置１０２を備える。帳票生成サーバ１０１はオーバレイ処理やウェブ帳票閲覧情報の生成処理を実行する。具体的に帳票生成サーバ１０１は、テキストデータであるフィールドデータ４０６と所定のフォームファイル４０１とを重ね合わせて出力ページを生成し、プリンタドライバーに指示してその出力ページを電子ファイルとして生成する。そして帳票生成サーバ１０１は、生成された電子ファイルを用いて帳票を閲覧できるウェブ帳票閲覧情報を生成する。ウェブ帳票閲覧情報とは、ネットワークを介して配信できるウェブブラウザ上で動作するウェブアプリケーションである。多くの場合、これらのウェブアプリケーションは、ウェブページを表現するマークアップ言語（ＨＴＭＬ）及びウェブブラウザ上で動作するプログラミング言語（ＪａｖａＳｃｒｉｐｔ（登録商標））により動作する。帳票生成サーバ１０１が出力ページ、及び出力ページ情報を格納したファイルのみを生成し、クライアント装置１０２がそのファイルを用いてウェブ帳票閲覧情報を表示する構成でも良い。
【００２４】
クライアント装置１０２は、帳票生成サーバ１０１からウェブ帳票閲覧情報、またはグラフ描画で必要な情報を受信し、表示する。さらにクライアント装置１０２は、ユーザ操作を検知し、検知されたユーザ操作に応じて、描画されたグラフを更新する。具体的にはタブレット端末やＰＣ等の端末が挙げられる。ユーザ操作は、クライアント装置１０２がタブレット端末である場合は表示画面に対するタッチ操作であり、ＰＣである場合はキーボードによる入力操作等である。以下の説明では説明の都合上、クライアント装置１０２がタブレット端末である場合を想定した例で説明する。プリンタ１０３は、クライアント装置１０２からリクエストを受信して帳票ファイルを印刷する。
【００２５】
各種装置１０１〜１０３はネットワーク１００により通信可能に接続されている。ネットワークはデータの送受信が可能であればどのような形態でもよい。また、クライアント装置１０２から帳票生成サーバ１０１への通信手段と、クライアント装置１０２からプリンタ１０３への通信手段は異なっていてもよい。
【００２６】
図２は、帳票生成サーバ１０１とクライアント装置１０２のハードウェア構成を示すブロック図である。今回は説明の都合上、帳票生成サーバ１０１を例に説明する。
【００２７】
ＣＰＵ２０１は、ＲＯＭ２０２、ＲＡＭ２０３などからプログラムを取り出してプログラムの命令を実行し、帳票生成サーバ１０１の制御を行うユニットである。後述のシーケンスはこのプログラムの命令が実行されることにより実現される。また、ＣＰＵ２０１は内部バスに接続される各ブロックを制御する。ＲＯＭ２０２は、アプリケーションプログラムおよびＯＳ、ＢＩＯＳを含む組込済みプログラム、およびデータ等が記録されている記憶装置である。
【００２８】
ＲＡＭ２０３は、ＣＰＵ２０１が命令を実行する際に使用するワークメモリである。ＲＯＭ２０２等に保存されたＯＳやアプリケーション等のプログラムがＲＡＭ２０３へとロードされ、そのプログラムの命令をＣＰＵ２０１が順次読みだすことで命令を実行する。
【００２９】
ＨＤＤ２０４は基本ソフトウェアであるＯＳやソフトウェアモジュールが記憶されている記憶装置であり、ＳＳＤ（ソリッドステートドライブ）などの間接記憶装置でもよい。
【００３０】
入力装置２０５は、不図示のキーボードやポインティングデバイスなどである。出力装置２０６にはディスプレイが接続される。Ｉ／Ｆ２０７は帳票生成サーバ１０１とネットワーク１００とを接続するためのインターフェースである。
【００３１】
帳票生成サーバ１０１の起動後、ＣＰＵ２０１によりＢＩＯＳが実行され、ＯＳがＨＤＤ２０４からＲＡＭ２０３に実行可能にロードされる。ＣＰＵ２０１はＯＳの動作に従って後述の各種ソフトウェアモジュールをＨＤＤ２０４からＲＡＭ２０３に随時、実行可能にロードする。
【００３２】
図３は、帳票生成サーバ１０１が有する機能を示す図である。なお各種機能のプログラムは、ＨＤＤ２０４に記憶されており、ＣＰＵ２０１によってＲＡＭ２０３にロードされることで実行される。
【００３３】
アクセス制御部３０１は、クライアント装置１０２からのリクエストに応じてユーザ認証を行う機能である。ウェブページ生成部３０２は、クライアント装置１０２にレスポンスとして返すウェブページを生成する機能である。ウェブ帳票閲覧情報であるウェブアプリケーションに必要なＨＴＭＬ、ＪａｖａＳｃｒｉｐｔなどのファイルもウェブページ生成部３０２が生成し、クライアント装置１０２に返す。データアクセス部３０３は、各帳票関連データ格納部３０５〜３１０にアクセスする機能である。
【００３４】
出力ページ生成部３０４は、データアクセス部３０３を介して、データベースから読み出したフォームファイル４０１とフィールドデータ４０６とを重ね合わせて、印刷データを生成する機能である。また、出力ページ生成部３０４は、生成した印刷データをプリンタドライバーなどのソフトウェアを用いて出力ページの電子ファイルを生成する。その電子ファイルをさらにＳＶＧ等、別のファイル形式に変換する機能も有する。
【００３５】
帳票関連データ格納部３０５は帳票関連データを格納する。帳票関連データは帳票名、所有者など帳票に関する情報である。また、帳票関連データ格納部３０５は、帳票とフォームファイル、フィールドデータとを関連付けて管理している。さらに帳票関連データ格納部３０５は、帳票と、オーバレイの結果である出力ページおよび後述の出力ページ情報とを関連付けて管理している。帳票関連データ格納部３０５を用いることで、例えば、ある出力ページがどのフォームファイルから生成されたのかを特定することができる。
【００３６】
フォーム格納部３０６はフォームファイルを格納する。フィールドデータ格納部３０７は、フィールドデータを格納する。出力ページ格納部３０８は、出力ページ生成部３０４が生成した出力ページを格納する。出力ページ情報格納部３０９は、オーバレイ処理で生成された出力ページ情報を格納する。帳票部品情報格納部３１０は帳票部品情報を格納する。帳票部品情報とは例えば、帳票の一部分を拡大するためのフォーカス機能等の情報が含まれるが、帳票部品情報の詳細な説明は省略する。
【００３７】
次に、一般的なオーバレイ処理について詳細に説明する。図４は、帳票生成サーバ１０１におけるオーバレイ処理の概要図である。フォームファイルは専用のフォームファイル設計エディタを用いて作成され、ファイルとして保存される。フォームファイルは、フィールドデータに依存しない固定的なオブジェクト（フォームオブジェクト）と、受け取ったフィールドデータを指定した出力書式に従って表示するフィールドオブジェクトから構成されていることが一般的である。フォームオブジェクトの例としては具体的に、帳票等を作成する際に用いられる会社のロゴや連絡先等の固定の情報を含むオブジェクトである。
【００３８】
フィールドオブジェクトを作成するには、予めフィールドデータを受け取るための要素であるフィールドを作成する必要がある。フィールドはフォームファイル設計エディタの専用画面から作成することができる。フィールドオブジェクトを作成すると、そのフィールドオブジェクトの作成元であるフィールドと関連付く。
【００３９】
例えば、表形式のフィールドオブジェクト（表オブジェクト）４０２を作成すると、その表オブジェクトの作成元であるレコードフィールド４０３と関連付く。レコードフィールド４０３とは、フィールドデータをレコード単位に受け取るためのフィールドである。また、フィールドオブジェクト４０４を作成すると、そのフィールドオブジェクト４０４の作成元である集計フィールト４０５と関連付く。集計フィールト４０５とは、どのような集計方法を実行してフィールドデータを生成するかを指定するフィールドである。
【００４０】
帳票生成サーバ１０１は、フィールドオブジェクトが定義されたフォームファイル４０１と、そのフィールドオブジェクトに対応するフィールドデータ４０６とを読み込む。そして帳票生成サーバ１０１は、読み込んだフォームファイル４０１とフィールドデータ４０６とを重ね合わせてオーバレイを実行し、オーバレイの出力結果４０７が出力される。以上が帳票生成サーバ１０１で実行さえるオーバレイ処理の一例である。
【００４１】
次に図１０と図１１を用いて、複合フォームファイルの編集処理を説明する。複合フォームファイルとは、幾つかのフォームファイルをまとめて１つの帳票ファイルとして出力するための情報である。複合フォームファイルを作成することで、複合フォームファイルに含まれる複数のフォームファイルを切り替えながら帳票を出力できるようになる。
【００４２】
まず図１０を用いて複合フォームファイルを構成するフォームファイルについて説明する。フォームファイル設計エディタを用いることで、複合フォームファイル１００１を作成し、保存することができる。今回、複合フォームファイル１００１は複数のフォームファイル（１００２および１００３）で構成されているものとして説明する。複合フォームファイルに定義された各フォームファイルの定義を「フェース」といい、図１０において表示されるフォームファイルを切り替える単位でもある。各フェースは、複合フォームファイルで一意となる名前（フェース名）を持つ。今回は、フォームファイル１００２のフェース名は「Ｆａｃｅ１」、フォームファイル１００３のフェース名は「Ｆａｃｅ２」であるものとする。
【００４３】
フォームファイル設計エディタを用いることで、複合フォームファイルに定義された各フォームファイルを画面で確認することが可能である。例えば図１０（ａ）において、「Ｆａｃｅ１」が選択されると、左ペインのフェース一覧ツリーのフォームファイル１００２のアイコンが反転表示となり選択中であることが明示される。一方の右ペインでは、Ｆａｃｅ１の中身が表示される。続いて、図１０（ｂ）において、「Ｆａｃｅ２」が選択されると、左ペインのフォームファイル１００３のアイコンが反転表示となり、右ペインではＦａｃｅ２の中身が表示される。
【００４４】
フォームファイル設計エディタでは、左ペインでフォームファイルを選択した状態で、さらにそのフォームファイルの中身を編集できる。例えば、フォームファイル１００３（Ｆａｃｅ２）の中身には、表オブジェクト１００６およびグラフ１００７が定義されている。表オブジェクト１００６は、「年齢区分」、「商品Ａ＿月額保険料」、「商品Ｂ＿月額保険料」という３つのフィールドと、それらフィールドから生成されたフィールドオブジェクトによって構成されている。フォームファイル１００３は、フィールドデータをレコード単位に受け取る形式になっており、１ページに６レコード分（６行分）のフィールドデータを表示する設定になっている。グラフ１００７には、表オブジェクト１００６のデータをグラフ化したものである。今回は、「年齢区分」フィールドに流し込まれたフィールドデータをグラフのＸ軸ラベルとして描画し、「商品Ａ＿月額保険料」フィールドと「商品Ｂ＿月額保険料」フィールドに流し込まれたフィールドデータに基づいてグラフが描画される。
【００４５】
次に、図１１を用いて、グラフ属性について説明する。グラフの設定は、フォームファイル設計エディタによるフォームウェア保存時に「グラフ属性」としてフォームファイル内に保持される。今回は、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）形式で示しているが、その形式には限定されない。
【００４６】
グラフ属性１１０１は、フォームファイルに含まれるグラフ１００７に関する属性を示している。グラフ属性１１０１は、「ａｔｔｒｉｂｕｔｅ＿ｉｄ」は、グラフ属性を区別するための識別子であるグラフ属性識別子１１０２であり、フォームファイル内で一意に識別される。「ｔｙｐｅ」はグラフ種類１１０３である。今回は、グラフ種類１１０３には折れ線グラフを指定する「ｌｉｎｅ」が設定されている。「ｓｅｒｉｅｓ」は、グラフにプロットする系列データ指定１１０４である。今回は、２つの系列データに関する詳細な設定がされる。「ｆｉｅｌｄ＿ｎａｍｅ」は系列データとして利用するフィールド名１１０５、「ｃｏｌｏｒ」は系列データを折れ線として表示する場合の色設定１１０６である。本例では「商品Ａ＿月額保険料」フィールドのデータを赤い折れ線で、「商品Ｂ＿月額保険料」フィールドのデータを青い折れ線でグラフ化する設定されている。
【００４７】
「ｌａｂｅｌ」はグラフのＸ軸ラベルに使用するラベルフィールド名１１０７で、今回は「年齢区分」フィールドが設定されている。オーバレイ処理では、読み込まれたフィールドデータが「年齢区分」、「商品Ａ＿月額保険料」、「商品Ｂ＿月額保険料」の３つのフィールドに流し込まれる。グラフ１００７の場合、そのグラフ属性１１０１と表オブジェクト１００６を構成する、３つのフィールドに関連付くフィールドオブジェクトに従って生成される。このようにしてフォームファイルに連動した表とグラフを含む帳票が生成される。
【００４８】
次に、図１２を用いて複合フォームファイルに流し込むためのフィールドデータ４０６を説明する。図１２はフィールドデータの一例を示す。フォームファイル関連定義１２０１には、フォームファイル切り替え命令１２０２およびフェース切り替え命令１２０３が定義されている。帳票生成サーバ１０１はフィールドデータ４０６を読み込んだ際、フォームファイル関連定義１２０１に従って、各命令を解釈しデータを流しこむフォームファイルおよびフェースを特定する。図１２では、フォームファイル切り替え命令１２０２に「複合フォームファイル１」、フェース切り替え命令１２０３に「Ｆａｃｅ１」が設定されているため、「複合フォームファイル１」の「Ｆａｃｅ１」のフォームファイルに定義された表Ａに対してデータブロック１２０４が流し込まれる。表Ａとは、図１０（ａ）の右ペインに記載の表に相当する。
【００４９】
さらにその下には、フォームファイル切り替え命令１２０６に「複合フォーム１」、フェース切り替え命令１２０７に「Ｆａｃｅ２」が設定されているため、「複合フォーム１」のフォームファイルに定義された表Ｂに対してデータブロック１２０５が流し込まれる。表Ｂとは、図１０（ｂ）の右ペインに記載の表に相当する。このようにして、複合フォームファイルとそこに流し込まれるフィールドデータがオーバレイされて帳票が生成される。
【００５０】
［実施例１］
実施例１では、ウェブブラウザが、変更された値に応じて帳票の表示を更新するための処理について説明する。
【００５１】
まず図５を用いて、ウェブ帳票閲覧情報を生成する処理について説明する。図５は、ウェブ帳票閲覧情報を生成するためのシーケンス図である。まず、クライアント装置１０２のウェブブラウザは、ユーザの操作により、帳票生成サーバ１０１へのログイン操作を受け付ける（Ｓ５０１）。その際のログイン画面の一例を図６に示す。ユーザは、ログイン画面６０１のユーザ名入力テキストボックス６０２とパスワード入力テキストボックス６０３にユーザ名とパスワードを入力し、ログインボタン６０４を押下することで、帳票生成サーバ１０１に対してログインのリクエストを送信する。
【００５２】
帳票生成サーバ１０１のアクセス制御部３０１はクライアント装置１０２から受信したログインリクエストの内容に応じて、ログイン処理を行う（Ｓ５０２）。アクセス制御部３０１はＢａｓｉｃ認証を行い、ユーザ名とパスワードが有効であることが判断された場合、Ｓ５０３の処理に進む。有効でないと判断された場合は、不図示の処理によってクライアント装置１０２に対してエラーを返す。
【００５３】
帳票生成サーバ１０１のウェブページ生成部３０２はログインしたユーザの情報に応じて、帳票選択画面を生成する（Ｓ５０３）。帳票選択画面７０１の一例を図７に示す。７０２は、現在ログインしたユーザのユーザ名を表示する領域である。７０３は、現在ログインユーザが所有する帳票一覧を表示するドロップダウンリストである。ドロップダウンリスト７０３に表示される内容は、ウェブページ生成部３０２がデータアクセス部３０３を介して帳票関連データ格納部３０５の帳票関連データから抽出した、ログインユーザが所有する帳票の帳票名である。
【００５４】
ボタン７０４〜７０８は帳票操作ボタンである。具体的に、ドロップダウンリスト７０３で選択された帳票に対して、ボタン７０４でプレビュー、ボタン７０５で編集可能なプレビュー、ボタン７０６で印刷操作、ボタン７０７でウェブフォーム編集、ボタン７０８でウェブ帳票閲覧を実行する。以降、ボタン７０８が押下された際の処理を中心に説明し、ボタン７０８以外のボタンが押下された後の処理については説明を省略する。
【００５５】
帳票生成サーバ１０１のアクセス制御部３０１は、Ｓ５０３で生成された帳票選択画面７０１を、ネットワーク１００経由でクライアント装置１０２に送信する（Ｓ５０４）。クライアント装置１０２は帳票生成サーバ１０１からのレスポンスである帳票選択画面７０１を受信し、ウェブブラウザに表示する（Ｓ５０５）。
【００５６】
ユーザは帳票選択画面７０１のドロップダウンリスト７０３から帳票名を選択し、クライアント装置１０２はそのユーザによる選択操作を受け付ける（Ｓ５０６）。ユーザは帳票選択画面７０１のボタン７０８を押下することにより帳票生成サーバ１０１に対して帳票処理リクエストを送信する（Ｓ５０７）。その際、処理対象の帳票を特定できる情報も送信される。
【００５７】
帳票生成サーバ１０１のアクセス制御部３０１はクライアント装置１０２から帳票処理リクエストを受信する（Ｓ５０８）。そして、帳票生成サーバ１０１の出力ページ生成部３０４は、データアクセス部３０３を介して処理対象の帳票に関連するフォームファイルおよびフィールドデータファイルを取得する。
【００５８】
帳票生成サーバ１０１のアクセス制御部３０１は、Ｓ５０８で受信した帳票処理リクエストがウェブ帳票閲覧情報の生成リクエストかを判定する（Ｓ５０９）。具体的には、受信したリクエストのｔｙｐｅパラメータを解析し、値が「ｗｅｂｖｉｅｗ」である場合に、ウェブ帳票閲覧情報の生成リクエストであると判定する。尚、リクエストのｔｙｐｅパラメータは、上記で説明したグラフの種類を示す「ｔｙｐｅ」とは異なるものであり、ｈｔｔｐ通信におけるｇｅｔリクエスト内部に設定するパラメータに一種である。
【００５９】
Ｓ５０９でウェブ帳票閲覧情報の生成リクエストであると判定された場合、帳票生成サーバ１０１の出力ページ生成部３０４は、ウェブ帳票向けの出力ページを生成するオーバレイ処理を行う（Ｓ５１０）。その際、Ｓ５０８で取得したフォームファイルおよびフィールドデータファイルを使用する。一方、Ｓ５０９においてウェブ帳票閲覧情報の生成リクエストではないと判定された場合、帳票生成サーバ１０１の出力ページ生成部３０４は、通常の出力ページを生成するオーバレイ処理を行う（Ｓ５１１）。一般的なフローになるため、Ｓ５１１より後の処理については説明を省略する。また、Ｓ５１０とＳ５１１の詳細については、図８で後述する。
【００６０】
出力ページ生成部３０４は、Ｓ５１０もしくはＳ５１１で生成されたＰＤＦ形式の出力ページをＳＶＧ（スケーラブル・ベクター・グラフィックス）形式の出力ページに変換する（Ｓ５１２）。ＰＤＦ形式からＳＶＧ形式に変換する理由としてまず、ＰＤＦ形式の出力ページは、文字列や矩形等の各描画要素が個々のオブジェクトとして独立して保持されておらず、より基本的な線や面の描画命令の集合で実現される。例えば、矩形の場合、原点の移動命令や線分の描画命令で矩形が構成され、矩形としてのオブジェクトをＰＤＦ形式では認識できない。そのため、ＰＤＦ形式のままでは、ウェブブラウザで各描画要素が編集しづらい。これを解消するためにＳ５１２では、各描画要素を独立して保存する、より編集しやすいＳＶＧ形式に出力ページを変換する。出力ページがＳＶＧ形式に変換された後、出力ページ生成部３０４はデータアクセス部３０３を介して生成されたＳＶＧ形式の出力ページを出力ページ格納部３０８に格納する。そして、ＳＶＧ形式の出力ページを特定できる情報（帳票名等）を、帳票関連データを格納する帳票関連データ格納部３０５のレコードに追加する。
【００６１】
帳票生成サーバ１０１は、ウェブ帳票閲覧情報のＵＲＬをクライアント装置１０２に送信する（Ｓ５１３）。送信するＵＲＬの中には、Ｓ５１２で生成したＳＶＧ形式の出力ページを特定できる情報が含まれる。今回はＵＲＬの中に、出力ページに関連する帳票関連データの帳票名が含まれているものとする。
【００６２】
クライアント装置１０２は、Ｓ５１３で受信したＵＲＬを使用してウェブ帳票閲覧情報にリダイレクトするリクエストを帳票生成サーバ１０１に送信する（Ｓ５１４）。帳票生成サーバ１０１のウェブページ生成部３０２は、Ｓ５１４のリダイレクトリクエストの内容に基づいてウェブ帳票閲覧情報を生成する（Ｓ５１５）。生成されるウェブ帳票閲覧情報には、ＳＶＧ形式の出力ページ、出力ページの閲覧、編集操作を制御するためのＪａｖａｓｃｒｉｐｔプログラム、画面を構成するＨＴＭＬが含まれる。ウェブページ生成部３０２が、Ｓ５１４のリダイレクトリクエストに含まれる帳票名を利用して、データアクセス部３０３を介してリクエスト対象帳票に関連する出力ページを出力ページ格納部３０８から取得する。処理対象の帳票の出力ページが複数ある場合は、複数ページ分の出力ページを取得する。クライアント装置１０２は、Ｊａｖａｓｃｒｉｐｔプログラムを用いて複数の出力ページとページ番号を関連付けて管理する。
【００６３】
帳票生成サーバ１０１は、Ｓ５１５で生成したウェブ帳票閲覧情報をクライアント装置１０２に返却する（Ｓ５１６）。クライアント装置１０２は、帳票生成サーバ１０１からのレスポンスを受け取り、ウェブ帳票閲覧情報に基づいて画面表示をウェブブラウザに表示する（Ｓ５１７）。複数の出力ページがある場合、１ページ目を最初に表示する。Ｓ５１７においては、後続のＳ５１８以降を実行する際に必要な情報を取得し終わるまでウェブブラウザ上に、ウェブ帳票閲覧情報をロード中であることを示すアイコンを描画する。
【００６４】
クライアント装置１０２は帳票生成サーバ１０１に対し、出力ページ情報の取得リクエストを送信する（Ｓ５１８）。取得リクエストは、画面を構成するＪａｖａｓｃｒｉｐｔプログラムを用いてＡｊａｘ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ  ＋  ＸＭＬ）が実行され、帳票生成サーバ１０１が開示するＲＥＳＴ（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）インターフェースに対して行われる。クライアント装置１０２は、帳票生成サーバ１０１のＲＥＳＴインターフェースに対して、帳票名を指定して各種情報取得リクエストを送信する。
【００６５】
帳票生成サーバ１０１は、受信した取得リクエストに含まれる帳票名をもとに、データアクセス部３０３を介してリクエスト対象帳票に関連する各種情報を取得する（Ｓ５１９）。具体的には、出力ページ情報を出力ページ情報格納部３０９から取得し、グラフ属性をフォーム格納部３０６から取得する。グラフ属性は、後述のＳ８１５にて帳票生成サーバ１０１がフォーム格納部３０６に帳票名と関連付けて保存したものである。
【００６６】
帳票生成サーバ１０１は、Ｓ５１９で取得した各種情報をレスポンスとしてクライアント装置１０２に送信する（Ｓ５２０）。クライアント装置１０２は、取得した出力ページ情報およびグラフ属性を、帳票名と紐付けた状態でＲＡＭ２０３に保存する（Ｓ５２１）。これにより、クライアント装置１０２のＪａｖａｓｃｒｉｐｔプログラムは、帳票名をキーとして特定の帳票に関連付けられた出力ページ情報およびグラフ属性にアクセス可能となる。
【００６７】
クライアント装置１０２のＪａｖａｓｃｒｉｐｔプログラムは、現在表示されているページの番号を特定する（Ｓ５２２）。通常初回に表示する際には１ページ目が表示される。画面のロード中にユーザの操作によってページ遷移がされた場合、Ｊａｖａｓｃｒｉｐｔプログラムはそれを検知して、ＲＡＭ２０３で保持している現在表示中のページ番号情報を更新する。
【００６８】
クライアント装置１０２のＪａｖａｓｃｒｉｐｔプログラムは、グラフ生成処理またはグラフの更新処理を実行する。グラフ生成処理とグラフの更新処理は、本ステップで帳票生成サーバ１０１から配信されたＪａｖａｓｃｒｉｐｔプログラムにより制御される。Ｊａｖａｓｃｒｉｐｔプログラムは、クライアント装置１０２のＲＡＭ２０３にブラウザプロセスと共にロードされ、ウェブブラウザ上に読み込まれたＨＴＭＬの操作やサーバへのリクエスト等を行う。
【００６９】
グラフの生成処理については図１４で後述し、グラフ更新処理については図１９で後述する。以上が、ウェブ帳票閲覧情報を生成する処理である。図１７に、図５の処理で生成された画面表示１７０１の一例を示す。図５のシーケンスで生成されたＳＶＧ形式のグラフ１７０２が表示されている。表１７０３の出力データ１７０４が、グラフ１７０２上で折れ線グラフとしてプロットされている。
【００７０】
次に図８を用いてＳ５１０およびＳ５１１のオーバレイ処理を説明する。図８は帳票生成サーバ１０１における、フォームファイルおよびフィールドデータを用いたオーバレイ処理の動作を示したフローチャートである。Ｓ５１０とＳ５１１とでは基本的な処理が同じであるため、差分を説明しつつ両方の処理を図８で説明する。
【００７１】
帳票生成サーバ１０１は、処理の対象であるフィールドデータを読み込む（Ｓ８０１）。フィールドデータの一例は図１２に示した通りである。帳票生成サーバ１０１は、読み込んだフィールドデータに、フォームファイル切り替え命令１２０２が含まれているかを判定する（Ｓ８０２）。フォームファイル切り換え命令１２０２が含まれていないと判定された場合、Ｓ８０５に進む。フォームファイル切り換え命令１２０２が含まれていないと判定された場合、Ｓ８０３に進む。
【００７２】
Ｓ８０２におけるフォームファイル切り替え命令１２０２に基づいて、帳票生成サーバ１０１はカレントフォームファイル情報を更新する（Ｓ８０３）。カレントフォームファイル情報とは、現在処理対象であるフォームファイルを覚えておくためのバッファ領域に格納される情報であり、帳票生成サーバ１０１のＲＡＭ２０３で管理される。帳票生成サーバ１０１は、フォームファイル切り替え命令で指定された切り替え先のフォームファイルをカレントフォームファイル情報として管理する。
【００７３】
帳票生成サーバ１０１は、Ｓ８０３でカレントフォームファイル情報として確保したＲＡＭ２０３の領域に設定した切り替え先のフォームファイルをＲＡＭ２０３に読み込む（Ｓ８０４）。帳票生成サーバ１０１は、読み込んだフィールドデータにフェース切り替え命令１２０３が含まれているかを判定する（Ｓ８０５）。含まれていないと判定された場合はＳ８０８に進み、含まれていると判定された場合はＳ８０６に進む。
【００７４】
帳票生成サーバ１０１は、カレントフェース情報を更新する（Ｓ８０６）。帳票生成サーバ１０１は、フェース切り替え命令で指定された切り替え先のフェースをカレントフェース情報として管理する。なお、複合フォームファイルではない通常のフォームファイルの場合も、仮想的なフェースがあるものとしてＳ８０６では処理する。帳票生成サーバ１０１は、Ｓ８０６でカレントフェースとした切り替え先のフォームファイルをＲＡＭ２０３に読み込む（Ｓ８０７）。
【００７５】
帳票生成サーバ１０１はレイアウト処理を行う（Ｓ８０８）。レイアウト処理とは、読み込んだフィールドデータをフィールドに流し込み、フィールドに紐づくフィールドオブジェクトに設定された文字サイズ等の各種属性に基づいて、文字列および矩形枠線等の関連する各種オブジェクトの配置を決める処理である。
【００７６】
帳票生成サーバ１０１は、このレイアウト処理がウェブ帳票向けの処理かを判定する（Ｓ８０９）。ウェブ帳票閲覧情報を構成する出力ページと、それ以外の用途に用いられる出力ページとで異なるオーバレイ処理を実行する必要があるため、Ｓ８０９の処理が行われる。Ｓ８０９における判定は、Ｓ５０９における判定結果に基づいて行われる。つまり、Ｓ５１０のオーバレイ処理を実行する場合はＳ８１１の処理に進み、Ｓ５１１のオーバレイ処理を実行する場合はＳ８１０の処理に進む。
【００７７】
Ｓ８０９においてウェブ帳票向けのレイアウト処理ではないと判定された場合、帳票生成サーバ１０１は１ページ毎に描画処理を行う（Ｓ８１０）。Ｓ８０８で実行されたレイアウト処理の結果に従い、文字列等の各種オブジェクトを実際に描画する。具体的には、ＷｉｎｄｏｗｓのＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）が提供するＴｅｘｔＯｕｔ等の関数を用いて各種オブジェクトを描画する。
【００７８】
Ｓ８０９においてウェブ帳票向けのレイアウト処理であると判定された場合、帳票生成サーバ１０１は１ページ毎に描画処理を行う（Ｓ８１１）。Ｓ８１０と基本的に同じ処理ではあるが、フォームファイルのグラフ１００７を描画しないようにする。
【００７９】
帳票生成サーバ１０１は、１ページ分の描画が完了したかを判定する（Ｓ８１２）。Ｓ８０８〜Ｓ８１１における各処理は、各ページの切れ目を意識して実行されているわけではない。１ページ分の描画が完了したかどうかの判定は、フィールドデータのオーバフロー検知により行う。具体的には、フィールドデータを表に流し込んでレイアウト・描画を繰り返す際、フォームファイルに定義された表の最大行数を超えるフィールドデータの読み込みを検知した際に、１ページ分の描画を完了したと判定する。
【００８０】
１ページの描画が完了していない場合は、Ｓ８０８に戻りレイアウト処理を継続する。１ページの描画が完了したと判断された場合には、Ｓ８１３に進む。
【００８１】
帳票生成サーバ１０１は、このオーバレイ処理がウェブ帳票向けのオーバレイ処理かを判定する（Ｓ８１３）。処理内容はＳ８０９と同様で、Ｓ５０９における判定結果に基づいて行われる。Ｓ８１３でウェブ帳票向けのオーバレイ処理ではないと判定された場合は、Ｓ８１６に進む。
【００８２】
Ｓ８１３でウェブ帳票向けのオーバレイ処理であると判定された場合は、帳票生成サーバ１０１が出力ページ情報を生成する（Ｓ８１４）。Ｓ８１４では具体的に、帳票生成サーバ１０１が、現在処理中のフォームファイルおよびフェースの名前、および現在の出力ページ数を元に、出力ページ情報に対して後述のページブロック９１２〜９１３の情報を追記する。さらに帳票生成サーバ１０１は、Ｓ８０８のレイアウト処理で算出した各出力データに関する情報を、後述の出力データ情報ブロック９０６に追記する。具体的に帳票生成サーバ１０１は、出力データごとに「フィールド名」、「出力データ識別子」、「位置・サイズ情報」を追記する。１ページ中に同じフィールドに関連付く出力データが複数存在する場合があるため、後述の「出力データ識別子」は各出力データで一意になるように生成される。また、帳票生成サーバ１０１は、Ｓ８０８のレイアウト処理の結果、現在の出力ページにグラフを出力した場合、出力ページ情報９０１のページブロック９１２に出力グラフ情報９０７を追記する。出力したグラフの属性識別子は、フォームファイルのグラフ属性１１０１から特定し、グラフ属性識別子９０８として追記する。さらに、フォームファイル内のグラフ属性１１０１から関連するフィールド（本実施例では「商品Ａ＿月額保険料」、「商品Ｂ＿月額保険料」、「年齢区分」）を特定し、そのフィールドに紐づく出力データが出力されたページの番号を後述の出力グラフデータ範囲９１０に追記する。
【００８３】
帳票生成サーバ１０１は、データアクセス部３０３を介して生成された出力ページ情報を、出力ページを格納する出力ページ情報格納部３０９に格納する（Ｓ８１５）。そして、その出力ページ情報を特定する情報を、帳票関連データを格納する帳票関連データ格納部３０５に格納する。
【００８４】
帳票生成サーバ１０１は、フィールドデータの読み込みが完了したかを判定する（Ｓ８１６）。完了していればオーバレイ処理は終了し、完了していなければＳ８０１に戻りフィールドデータを読み込み、オーバレイ処理を続行する。以上がＳ５１０およびＳ５１１のオーバレイ処理である。
【００８５】
図９を用いて、Ｓ８１４で生成された出力ページ情報について説明する。図９は出力ページ情報の一例である。出力ページ情報はウェブ帳票閲覧情報を生成する際、またはグラフ描画を行う際に用いられる情報であり、図８のオーバレイ処理で追記される情報が記載されている。今回は、出力ページ情報のファイル形式はＪＳＯＮフォーマットであるものとして説明するが、そのファイル形式には限定されない。
【００８６】
出力ページ情報９０１は複数のページブロック９１２〜９１３から構成される。ページブロック９１２とページブロック９１３は、各ページの出力ページに関する情報をまとめたブロックである。例えば、出力ページ情報９０１の１つ目のページブロック９１２は、ページ番号９０３、利用フォームファイル名９０４および利用フェース名９０５を有する。利用フォームファイル名９０４はその出力ページで利用されたフォームファイルの名前である。利用フェース名９０５はその出力ページで利用されたフェースの名前である。今回は、１ページ目に対し、フォームファイル「ｆｏｒｍ＿ａ」（フェース「ｆａｃｅ１」）が出力されていることがわかる。
【００８７】
出力データ情報ブロック９０６は、各出力ページに出力された出力データの情報である。フィールドデータは各フィールドに流し込まれ、関連付くフィールドオブジェクトの文字色やフォント属性に従って出力ページ上に描画される。出力データは、その描画された結果要素である。出力データ情報ブロック９０６には各出力データに情報が羅列される。出力データ情報ブロック９０６の１要素は、出力データに関連付く「フィールド名」（ｆｉｅｌｄ＿ｎａｍｅ）、「出力データ識別子」（ｉｄ）、出力データの描画位置やサイズを特定する「位置・サイズ情報」（ｌｅｆｔ，ｔｏｐ，ｗｉｄｔｈ，ｈｅｉｇｈｔ）を有する。
【００８８】
出力グラフ情報９０７は出力ページに出力されるグラフに関する情報である。今回は、ページブロック９１２で特定されるページにのみグラフが存在しないため、例えば２つ目のページブロック９１３には出力グラフ情報が存在しないことが図９からわかる。出力グラフ情報９０７は、グラフ属性識別子９０８（ａｔｔｒｉｂｕｔｅ＿ｉｄ）、出力グラフ識別子９０９（ｉｄ）、出力グラフデータ範囲９１０（ｔａｒｇｅｔ＿ｐａｇｅ＿ｒａｎｇｅ）、出力グラフ位置９１１（ｌｅｆｔ，ｔｏｐ，ｗｉｄｔｈ，ｈｅｉｇｈｔ）を有する。グラフ属性識別子９０８は、グラフ属性１１０１を識別するグラフ属性識別子１１０２と対応しており、どのグラフ属性に従って生成されたかを特定することができる。出力グラフデータ範囲９１０は、このグラフで使用された出力データのページ番号である。複数ページにまたがる場合、ページ番号はカンマ区切りで羅列される。今回は「１．２」と記載されていることから、出力グラフ情報９０７で特定されるグラフは１ページ目と２ページ目の出力データを用いて描写されることがわかる。以上が出力データ情報に関する説明である。
【００８９】
図１３を用いて、ＳＶＧ形式に変換された出力ページについて説明する。図１３はＳＶＧ形式に変換された出力ページの一例である。上記で述べた通り、ウェブ帳票閲覧情報を生成する際に出力ページはＳＶＧ形式に変換される（Ｓ５１２）。出力ページＳＶＧ１３０１では、各描画要素が独立したオブジェクトとしてタグ形式で表現されている。ＳＶＧタグ１３０２には出力ページ全体の様々な描画要素が混在して収められる。テキストタグ１３０３は文字列要素であり、実際の描画文字列は＜ｔｅｘｔ＞タグで囲まれ、その描画座標がタグ属性（ｘおよびｙ）で指定される。例えば、「＜ｔｅｘｔ  ｘ＝”８０５”  ｙ＝”１４６”＞１０代＜／ｔｅｘｔ＞」については、描画座標（８０５、１４６）で特定される部分に「１０代」と描画することを意味する。テキストタグ１３０３以外にも、罫線タグ１３０４や矩形タグ１３０５により罫線や矩形描画を行う。以上がＳＶＧ形式の出力ページに関する説明である。
【００９０】
次に図１４と図１５（ａ）を用いて、ウェブ帳票閲覧情報を生成する際にクライアント装置１０２のＪａｖａｓｃｒｉｐｔプログラムによって実行されるグラフ生成処理について説明する。図１４はグラフ生成処理のフロー図であり、図１５（ａ）はグラフ生成処理を行うためのＪａｖａｓｃｒｉｐｔプログラムの一例である。以下、説明の都合上、グラフ生成処理を実行する主体がＪａｖａｓｃｒｉｐｔプログラム（以下、プログラム）、またはそれを構成するプログラム（１５０１〜１５１０）であるものとして説明する。実際は、クライアント装置１０２のＲＯＭ２０２等に保存されたＯＳやアプリケーション等のプログラムがＲＡＭ２０３へとロードされ、そのプログラムの命令を順次読みだして実行するＣＰＵ２０１が主体である。
【００９１】
プログラム１５０１は、帳票名に紐付いてＲＡＭ２０３に保存された出力ページ情報９０１を取得する（Ｓ１４０１）。プログラム１５０２は、現在表示中の出力ページに存在するグラフを取得する（Ｓ１４０２）。具体的にプログラム１５０２は、Ｓ１４０１で取得した出力ページ情報９０１に記載のページブロック９１２と、出力グラフ情報９０７を確認する。
【００９２】
プログラム１５０３は、現在表示中の出力ページに１つ以上グラフが存在するかを判定する（Ｓ１４０３）。具体的にプログラム１５０３は、Ｓ１４０１で取得した出力ページ情報において、出力グラフ情報があるかを確認する。出力グラフ情報があればｅｘｉｓｔメソッドの戻り値が真となり、グラフが存在すると判定される。出力グラフ情報が存在しないと判定された場合はグラフ生成処理を終了する。
【００９３】
出力グラフ情報があると判定された後、プログラム１５０４は、グラフ属性１１０１を取得する（Ｓ１４０４）。具体的にプログラム１５０４は、ＲＡＭ２０３に保存された複数のグラフ属性から、出力グラフ情報９０７のグラフ属性識別子９０８で特定されるグラフ属性を取得する。フォームファイルには複数のグラフが定義可能であるため、ＲＡＭ２０３に保存されたグラフ属性が複数である場合もある。今回、グラフ属性識別子９０８で特定されたグラフ属性は、グラフ属性１１０１（図１１）であるものとする。
【００９４】
プログラム１５０５は、取得したグラフ属性１１０１に基づいて関連するフィールドを特定する（Ｓ１４０５）。具体的にプログラム１５０５は、Ｓ１４０４で取得したグラフ属性１１０１に記載された、フィールド名１１０５およびラベルフィールド名１１０７に定義されたフィールド名を確認し、フィールドを特定する。
【００９５】
プログラム１５０６は、グラフに表示する出力データを含むページを特定する（Ｓ１４０６）。具体的にプログラム１５０６は、Ｓ１４０１で取得した出力ページ情報９０１の出力グラフデータ範囲９１０に記載されたページ番号値（９１０）を取得することで、グラフ表示に必要な出力データを含むページを特定する。今回は出力グラフデータ範囲９１０より１ページ目と２ページ目の出力ページが特定される。
【００９６】
プログラム１５０７は、Ｓ１４０６で特定されたページの、Ｓ５１２でＳＶＧ形式に変換された出力ページＳＶＧ１３０１を特定する（Ｓ１４０７）。具体的には、ＲＡＭ２０３に格納されている出力ページＳＶＧ１３０１を取得する。プログラム１５０８は、取得した出力ページＳＶＧ１３０１のテキストタグ１３０３に識別情報を付与する（Ｓ１４０８）。
【００９７】
Ｓ１４０８の処理を実行する前は、出力ページＳＶＧ１３０１のテキストタグ１３０３を確認することで文字列の有無は判断できる。しかし、その文字列がフィールドオブジェクトから生成され、フィールドに関連する出力データかどうかは判断できない。Ｓ１４０８の処理は、出力ページＳＶＧ１３０１の文字列がフィールドに関連のある出力データかどうかを判断しやすくするための処理である。テキストタグへの識別情報の付与処理については、図１５（ｂ）で後述する。
【００９８】
Ｓ１４０８は出力データの座標情報に基づいて識別情報が付与されるが、その形態に限定されない。文字列がどのフィールドに関連付いているかをプログラムが判断できればよく、出力ページＳＶＧ１３０１の走査時に座標情報をもとにリアルタイムで判断しても良い。プログラム１５０８は出力ページＳＶＧ１３０１を走査し、Ｓ１４０５で取得したフィールド名１１０５およびラベルフィールド名１１０７に関連のある出力データと判断したテキストタグ１３０３に識別情報を付与する。
【００９９】
プログラム１５０９は、Ｓ１４０８で付与した識別情報をもとにテキストタグ１３０３を特定し、出力データの値を取得する（Ｓ１４０９）。具体的にプログラム１５０９は、目的のフィールド名（例えばｌａｂｅｌＦｉｅｌｄＮａｍｅ変数の値である「年齢区分」等）をｆｉｅｌｄ＿ｎａｍｅ属性に持つテキストタグ１３０３を全て検出する。テキストタグの検索は、ウェブブラウザにロードされたＨＴＭＬやＳＶＧの各タグ要素を操作するためのＡＰＩをプログラム１５０９が呼び出すことで行われる。これらのテキストタグ要素操作ＡＰＩは国際的な標準化団体等で標準化されており、各ウェブブラウザに標準的に実装されている。
【０１００】
プログラム１５０９は、各タグの値（例えば「１０代」や「￥１，０２０」）とｉｄ（出力データ識別子）の値を取得し、フィールド名と紐付けた形でＲＡＭ２０３に保持する。プログラム１５０９は出力データの値の取得処理（Ｓ１４０９）を、３つのフィールド名に対して行う。例えば、Ｘ軸ラベルのデータとして、「年齢区分」フィールドに関連づく出力データを出力ページのテキストタグから取得する。系列１のデータとして、「商品Ａ＿月額保険料」フィールドに関連づく出力データを出力ページのテキストタグから取得する。系列２のデータとして、「商品Ｂ＿月額保険料」フィールドに関連づく出力データを出力ページのテキストタグから取得する。
【０１０１】
プログラム１５１０は、プログラム１５０９で取得した３つの（フィールドの）出力データ群を用いてグラフを生成する（Ｓ１４１０）。その際プログラム１５１０は、実データの他にもグラフのタイプ（棒グラフ、線グラフなど）を決定するためにグラフ属性１１０１も用いる。グラフ属性１１０１はＲＡＭ２０３に読み込まれている。本実施例では、プログラム１５１０はＳ１４１０で生成したグラフもＳＶＧ形式で出力するものとするが、ウェブブラウザで表示でき、プログラムからの容易な操作が可能であれば別のファイル形式でも構わない。
【０１０２】
また、本実施例では出力ページＳＶＧ１３０１とは別にＳＶＧ形式のグラフを生成し（Ｓ１４１０）、ウェブブラウザに重ねて表示するよう制御するが、出力ページＳＶＧ１３０１に対して要素としてグラフＳＶＧを追加する形態でもかまわない。出力データの値やグラフ属性１１０１に基づいて、グラフの各要素を描画していくが、ＳＶＧの各タグ要素をプログラムから直接出力するのは一般的ではない。グラフ生成用にデータを可視化する専用のｊａｖａｓｃｒｉｐｔライブラリ等を使用するのが一般的である。本実施例でもライブラリを使用するため、プログラムからはＳＶＧ要素を直接生成はしない。以上がグラフの生成処理に関する説明である。図１８に、図１４の処理で生成されたグラフ１７０２の一例を示す。Ｘ軸ラベルの値１８０１や折れ線要素１８０２等が独立したタグ要素として記載されており、プログラムから操作可能な状態であることが分かる。
【０１０３】
図１５（ｂ）と図１５（ｃ）を用いて、テキストタグへの識別情報の付与処理を説明する。図１５（ｂ）（プログラム１５１１）と図１５（ｃ）のフローは、プログラム１５０８から呼び出されることによって実行される。上記でも述べた通りプログラム１５０８は、Ｓ１４０８において、取得した出力ページＳＶＧ１３０１のテキストタグ１３０３に識別情報を付与する処理を行う。
【０１０４】
まず、プログラム１５１２は、Ｓ１４０６で特定したページ全ての出力データ情報ブロック９０６を特定する（Ｓ１５０１）。各ページが有する出力データ情報ブロック９０６を特定するためには、Ｓ１４０１で特定した出力ページ情報と一致するページ番号９０３を確認することで行う。
【０１０５】
プログラム１５１２は出力データ情報ブロック９０６の各出力データを走査し、プログラム１５１２の関数に指定されたフィールド名（ｆｉｅｌｄＮａｍｅ）と合致するフィールド名の出力データ情報を、出力データ情報ブロック９０６の中から特定する（Ｓ１５０２）。今回は、出力データ情報ブロック９０６に記載されたフィールド名情報（ｆｉｅｌｄ＿ｎａｍｅ）が特定される。特定された出力データ情報のリストはＲＡＭ２０３に保持される（変数名：ｏｕｔｐｕｔＤａｔａＩｎＴａｒｇｅｔＰａｇｅＲａｎｇｅ）。
【０１０６】
プログラム１５１３は、プログラム１５１２で保持したリストの各出力データに対して処理を行う（Ｓ１５０３）。その処理においてプログラム１５１４は、出力ページＳＶＧ１３０１のテキストタグ１３０３を走査し、各テキストタグ１３０３に対して処理を行う（Ｓ１５０４）。プログラム１５１４に記載の変数ｅｌｅｍはテキストタグの要素を示す。変数ｅｌｅｍのメソッドを呼び出すことで、テキストタグの要素への属性追加等が行える。テキストタグの要素に属性を追加する処理については後述する。プログラム１５１５は、テキストタグ１３０３で表される文字列の開始位置座標（変数ｘおよび変数ｙ）をＲＡＭ２０３に保持する（Ｓ１５０５）。
【０１０７】
プログラム１５１６は、ＲＡＭ２０３に保持した開始位置座標が、プログラム１５１２で取得した出力データ情報の外接矩形内に含まれるかを判定する（Ｓ１５０６）。具体的に、出力データの外接矩形の大きさは、出力データ情報ブロック９０６の出力データ情報であるｌｅｆｔ，ｔｏｐ，ｗｉｄｔｈ，ｈｅｉｇｈｔの値から求められる。Ｓ１５０６で含まれていないと判定された場合は、識別情報の付与処理を終了する。
【０１０８】
Ｓ１５０６で含まれていると判定された場合、プログラム１５１７は、変数ｅｌｅｍの属性追加メソッド（ａｔｔｒ）を呼び出すことで、テキストタグの要素に対して２つの属性を追加する（Ｓ１５０７）。１つはｆｉｅｌｄ＿ｎａｍｅ属性であり、出力データ情報ブロック９０６内の出力データのフィールド名情報（ｆｉｅｌｄ＿ｎａｍｅ）を値として設定する。もう１つはｉｄ属性で、出力データ情報ブロック９０６の出力データのＩＤ情報（ｉｄ）を値として設定する。
【０１０９】
図１６は、プログラム１５０８（または図１５の（ｂ）（ｃ）で示された処理）により識別情報が付与された後の出力ページＳＶＧ１３０１の一例である。フィールドに関連付いた出力データであると判断されたテキストタグ１３０３には１６０１〜１６０３に示すように、識別子としてフィールド名情報（ｆｉｅｌｄ＿ｎａｍｅ）およびＩＤ情報（ｉｄ）が付与されている。同じフィールドに関連付いた出力データが１ページに複数出力される場合も考慮して、１６０１〜１６０３では一意のＩＤ情報が付与されている。ＩＤ情報はオーバレイ処理で流し込まれた順にインクリメントして生成される。以上が識別情報の付与処理である。
【０１１０】
次に図１９と図２０を用いて、図５のグラフ更新処理の詳細を説明する。図１９は、クライアント装置１０２のＪａｖａｓｃｒｉｐｔプログラムが行うグラフ更新処理のシーケンス図である。図２０は、図１９の処置を実行するためのＪａｖａｓｃｒｉｐｔプログラムの一例である。
【０１１１】
まず、プログラム２００１は、ユーザが画面表示１７０１に対してタッチ操作を行ったかどうかを判断する（Ｓ１９０１）。タッチ操作が行われなかったと判定された場合、グラフ更新処理は終了する。タッチ操作が行われたと判定された場合、プログラム２００１がウェブブラウザから呼び出される。変数ｅｖｅｎｔには、ウェブブラウザが設定したタッチ操作に関する情報が格納される。
【０１１２】
プログラム２００２は、画面表示１７０１におけるタッチ箇所の要素情報を位置情報（変数ｘおよびｙ）として変数ｔｏｕｃｈＯｂｊｅｃｔに格納する（Ｓ１９０２）。プログラム２００３は、現在表示されている画面表示１７０１の出力ページＳＶＧ１３０１を、帳票名と現在のページ番号から特定する（Ｓ１９０３）。出力ページＳＶＧ１３０１はＲＡＭ２０３に格納されており、後述のプログラム２００８は、ＲＡＭ２０３の出力ページＳＶＧ１３０１にアクセスできる状態となる。
【０１１３】
プログラム２００４は、タッチ箇所に出力データが存在するか判定する（Ｓ１９０４）。出力データが存在しないと判定された場合は、グラフ更新処理を終了する。Ｓ１９０４における判定方法としては具体的に、タッチ操作された箇所の位置情報（変数ｘおよびｙ）でも判定できるが、今回はタッチ操作された要素情報を使って判定するものとする。つまり、変数ｔｏｕｃｈＯｂｊｅｃｔにはタッチされた座標に存在するＳＶＧ構成要素（例えばテキストタグ１６０１）に関する情報がウェブブラウザにより格納される。プログラム２００４は、変数ｔｏｕｃｈＯｂｊｅｃｔにテキストタグ１６０１が格納されており、さらに、そのテキストタグ１６０１がｆｉｅｌｄ＿ｎａｍｅ属性を持っていたら、タッチ箇所に出力データが存在すると判定する。ｆｉｅｌｄ＿ｎａｍｅ属性は、Ｓ１４０８で付与された属性である。
【０１１４】
Ｓ１９０４で出力データが存在すると判定された後、プログラム２００５は、不図示の出力データ更新ダイアログをユーザに対して表示し、出力データ更新ダイアログで入力された値を用いて出力ページＳＶＧ１３０１を更新する（Ｓ１９０５）。今回であれば、出力ページＳＶＧ１３０１が更新される。
【０１１５】
クライアント装置１０２が出力データ更新ダイアログを表示している最中は、グラフ更新処理は中断されユーザからの入力操作を待機する状態となる。表示される出力データ更新ダイアログのテキストエリアには、Ｓ１９０４で特定された出力データの値をデフォルト値として表示する。ユーザはテキストエリアに対して任意の値を入力し、ＯＫボタンを押下することで、この出力ページＳＶＧ１３０１の値を更新する処理が実行される。
【０１１６】
プログラム２００６は、帳票名に紐づく出力ページ情報９０１を取得する（Ｓ１９０６）。プログラム２００７は、Ｓ１９０６で取得した出力データ情報に関連するグラフが存在するかどうか判定する（Ｓ１９０７）。具体的にプログラム２００７は、Ｓ１９０６で取得した出力ページ情報９０１を確認し、現在ページのページブロック９１２〜９１３に出力グラフ情報９０７があるかを判定する。出力グラフ情報９０７がないと判定された場合は、グラフ更新処理を終了する。
【０１１７】
Ｓ１９０７において、取得した出力データ情報に出力グラフ情報９０７が存在するかを判定された場合、Ｓ１９０８に進む。出力グラフ情報９０７が存在しないと判定された場合は、Ｓ１９０５において更新された出力ページＳＶＧ１３０１を用いて、表１７０３が更新され、グラフの更新処理が終了する。
【０１１８】
Ｓ１９０７において出力グラフ情報９０７が存在すると判定された場合、プログラム２００８は、出力グラフ情報９０７に含まれる出力グラフ識別子９０９に基づいて、グラフ属性１１０１を特定する（Ｓ１９０８）。
【０１１９】
プログラム２００７は、グラフ属性に含まれるフィールド名と、出力ページＳＶＧ１３０１で特定されたタッチ箇所のｆｉｅｌｄ＿ｎａｍｅ属性の設定値とが一致するかを判定する（Ｓ１９０９）。一致すると判定された場合はＳ１９１０の処理に進む。一致しないと判定された場合は、グラフ更新処理を終了する。
【０１２０】
Ｓ１９０９の処理内容としては具体的に、出力ページ情報９０１のｆｉｅｌｄ＿ｎａｍｅ属性の値が、グラフ属性１１０１の系列データとして利用されるフィールド名１１０５もしくはラベルフィールド名１１０７と一致するかどうかを判断する。今回であれば、グラフ属性１１０１のフィールド名は「商品Ａ＿月額保険料」や「商品Ｂ＿月額保険料」、「年齢区分」であり、出力データ情報のｆｉｅｌｄ＿ｎａｍｅ属性の値がこのいずれかであるかを判定する。
【０１２１】
プログラム２００８は、更新された出力ページＳＶＧ１３０１を取得し、プログラム２００９は、Ｓ１９０５で更新された出力データＳＶＧを用いて、グラフ１７０２を更新する（Ｓ１９１０）。
【０１２２】
図２１は、図１９および図２０で示したグラフ更新処理によって更新されたグラフを含む画面表示の一例である。表１７０３の出力データ２１０１がユーザにより変更された場合を示す。そして、その出力データ値に連動し、グラフ１７０２の折れ線グラフの対応するプロット２１０２も更新される。以上がグラフ更新処理に関する説明である。
【０１２３】
本実施例では、グラフ全体を再作成するのではなく、変更したい一部分のみを更新し、ユーザ操作に応じてグラフ表示を変化させるために、ベクター形式（ＳＶＧ）のグラフを用いる。ＳＶＧはＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）と呼ばれる国際的に標準化された仕様に基づいており、クライアントのウェブブラウザ上に配信・ロードされたｊａｖａｓｃｒｉｐｔ（登録商標）プログラムから各要素を容易に操作できる。必要なデータが揃ってさえいれば、ＳＶＧ形式のグラフを操作するためのｊａｖａｓｃｒｉｐｔプログラムはウェブブラウザに配信された後、帳票生成サーバ１０１と通信することなく動作する。以上の構成により、クライアント装置１０２と帳票生成サーバ１０１間でやり取りを行うことなく、ユーザ操作に応じて帳票を変化させる事ができる。
【０１２４】
［実施例２］
本実施例では、フォームファイルに表オブジェクト１００６が存在せず、グラフ１００７のみが存在する場合の処理について説明する。
【０１２５】
図２２は、本実施例におけるウェブ帳票閲覧情報に基づいた画面表示の一例である。グラフオブジェクトのみが存在するフォームファイルを用いてオーバレイ処理を実行すると、出力ページにはグラフ１７０２のみが存在する。表オブジェクトにフィールドデータが流し込まれた結果である出力データ（図１７における１７０４）が、実施例２の出力ページＳＶＧ上に存在しない場合、実施例１のＳ１４０９のように出力ページＳＶＧのテキストタグから出力データの値を取得することはできない。
【０１２６】
本実施例では、出力ページＳＶＧ上に出力データが存在しない本実施例において、出力データを保持する処理を説明する。保持する出力データに対する変更を受け付けて、関連するグラフの表示を更新する処理については、図１９（実施例１）のＳ１９０６以降と同様なので説明は省略する。また、実施例２に記載されていない部分については、実施例１に記載されていることと同様である。
【０１２７】
図２３は、本実施例における出力ページ情報２３００の一例である。本実施例では、Ｓ８１４における出力ページ情報の生成処理が実施例１と異なる。実施例１のＳ８１４の処理に対して本実施例では、帳票生成サーバ１０１が出力ページ情報２３００の出力データ情報ブロック２３０２に、「フィールド名」（ｆｉｅｌｄ＿ｎａｍｅ）、「出力データ識別子」（ｉｄ）、「実データ」（ｄａｔａ）２３０１を出力する。帳票生成サーバ１０１は、グラフに関連するフィールド（系列データもしくはＸ軸ラベルの指定されたフィールド）についてはオーバレイ処理の際に、グラフで利用したデータを出力データとみなして実データ２３０１を出力する。なお、実際に出力データの描画処理を行うわけではないので、出力データ情報ブロック９０６（実施例１）のように「位置・サイズ情報」（ｌｅｆｔ，ｔｏｐ，ｗｉｄｔｈ，ｈｅｉｇｈｔ）については出力データ情報ブロック２３０２に出力しない。
【０１２８】
図２４は、本実施例におけるグラフ生成処理のシーケンス図である。実施例１（図１４）の場合とは異なり、グラフで利用する出力データの値は出力ページＳＶＧではなく、出力ページ情報２３００に存在する。つまり、出力ページＳＶＧのテキストタグに識別情報を付与し、付与された識別情報で特定されたテキストタグから出力データの値を取得する処理（図１４のＳ１４０６〜Ｓ１４０９）は、本実施例では不要となる。なお、上記で説明済みの処理については図２４で同じ符番を振り、詳細な説明は省略する。
【０１２９】
帳票生成サーバ１０１は、グラフに関連する各出力データの値の取得処理を行う（Ｓ２４０１）。具体的に帳票生成サーバ１０１は、Ｓ１４０５で特定したフィールド（以下、関連フィールド）から生成された出力データの情報を、出力ページ情報２３００から検索する。帳票生成サーバ１０１は、出力ページ情報２３００の出力データ情報ブロック２３０２のうち、「フィールド名」（ｆｉｅｌｄ＿ｎａｍｅ）がグラフの関連フィールドのフィールド名と一致するものを特定し、その「実データ」（ｄａｔａ）２３０１の値を取得する。Ｓ１４０１において取得した出力データを用いてグラフを生成する。以上が実施例２におけるグラフ生成処理である。
【０１３０】
尚、実施例２の出力ページＳＶＧに出力データが存在しないため、Ｓ１９０５のようにタッチ操作からの出力データを更新する処理も行えない。これについては、図２２の画面表示にオプション選択ユーザインターフェース２２０１等を設けることでユーザの操作を受け付け、ユーザの操作内容に応じてグラフを更新することもできる。オプション選択ユーザインターフェース２２０１についてはｊａｖａｓｃｒｉｐｔプログラムによって実現できる。ユーザの操作により例えば、「１５％」というオプションがオプション選択ユーザインターフェース２２０１で選択された場合、ｊａｖａｓｃｒｉｐｔプログラムは、グラフに表示する各出力データの値を１５％にしてグラフを更新する。
【０１３１】
［その他の実施例］
上記の実施例において、画面表示に対するユーザ操作である「タッチ操作」について詳細に説明しなかったが、スワイプやタップ等の具体的な操作形態については問わない。
【０１３２】
上記の実施例では説明の都合上、クライアント装置１０２に表示されるテーブルが「帳票」であるものとして説明したが、テーブル（あるいは表）の形態であればどのような形態でもよい。
【０１３３】
また、本発明の目的は以下の処理を実行することによっても達成される。即ち、上述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１３４】
１０１  帳票生成サーバ
４０６  フィールドデータ
９０１  出力ページ情報
１００１  複合フォームファイル
１００６  表オブジェクト
１００７  グラフ
１１０１  グラフ属性
１３０１  出力ページＳＶＧ
１５０１  Ｊａｖａｓｃｒｉｐｔプログラム
１５１１  Ｊａｖａｓｃｒｉｐｔプログラム
【図１】
2019106013.tif 000003
【図２】
2019106013.tif 000004
【図３】
2019106013.tif 000005
【図４】
2019106013.tif 000006
【図５】
2019106013.tif 000007
【図６】
2019106013.tif 000008
【図７】
2019106013.tif 000009
【図８】
2019106013.tif 000010
【図９】
2019106013.tif 000011
【図１０】
2019106013.tif 000012
【図１１】
2019106013.tif 000013
【図１２】
2019106013.tif 000014
【図１３】
2019106013.tif 000015
【図１４】
2019106013.tif 000016
【図１５】
2019106013.tif 000017
【図１６】
2019106013.tif 000018
【図１７】
2019106013.tif 000019
【図１８】
2019106013.tif 000020
【図１９】
2019106013.tif 000021
【図２０】
2019106013.tif 000022
【図２１】
2019106013.tif 000023
【図２２】
2019106013.tif 000024
【図２３】
2019106013.tif 000025
【図２４】
2019106013.tif 000026