(57)【特許請求の範囲】
【請求項１】
サーバとクライアントコンピュータとを含む情報処理システムであって、
前記サーバは、
フォーム情報とフィールドデータとを用いてオーバレイ出力処理を行うことにより得られるＰＤＬ情報に基づいて、帳票ページを生成する帳票生成手段と、
前記オーバレイ出力処理を行う際に、前記生成される帳票ページに含まれるフィールドのレイアウトに関する属性情報を取得する属性取得手段と、
前記生成される帳票ページと、前記取得される属性情報とに基づいて、前記生成される帳票ページをウェブブラウザ上で表示及び編集するための閲覧画面を表示させ且つ前記属性情報を用いて前記表示される帳票ページを編集するための制御プログラムを含む画面データを生成する閲覧画面生成手段と、
を備え、
前記クライアントコンピュータは、前記制御プログラムを実行することにより、
ウェブブラウザ上で表示した前記閲覧画面において前記帳票ページのフィールドの値がユーザにより編集された場合、前記画面データに含まれる前記属性情報と前記編集されたフィールドの値とに基づいて、前記サーバの前記帳票生成手段にて再度オーバレイ出力処理を行う必要があるか否かを判断する判断手段と、
前記判断手段で再度オーバレイ出力処理を行う必要があると判断した場合、前記帳票生成手段が前記フォーム情報と前記編集されたフィールドの値とを用いて再度オーバレイ出力処理を行って帳票ページを再生成するように、前記サーバにリクエストを送信する送信手段と、
前記判断手段で再度オーバレイ出力処理を行う必要がないと判断した場合、前記閲覧画面において表示される前記帳票ページのフィールドを当該編集された値に更新する更新手段と、
して機能する、ことを特徴とする情報処理システム。
【請求項２】
前記レイアウトに関する属性情報は、前記帳票ページのフィールドの文字列のレイアウトに関して複数行の表示を許可するか否かの情報を含み、
前記編集されたフィールドが前記複数行の表示を許可する場合には、前記判断手段は、前記帳票生成手段にて再度オーバレイ出力処理を行う必要があると判断する、ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記フィールドの文字列が変更された際に、該フィールドが前記複数行の表示を許可する場合であっても、等幅フォントを使用し、かつ、変更された文字列の文字幅に文字数を乗じて得られる値が所定の値よりも小さい場合には、前記判断手段は、前記帳票生成手段にて再度オーバレイ出力処理を行う必要がないと判断する、ことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記フィールドの文字列が変更された際に、該フィールドが前記複数行の表示を許可しない場合には、前記判断手段は、前記帳票生成手段にて再度オーバレイ出力処理を行う必要がないと判断する、ことを特徴とする請求項２または３に記載の情報処理システム。
【請求項５】
前記レイアウトに関する属性情報は、前記帳票ページのフィールドの値が同じ場合に、該値が同じフィールドの表示を省略するか否かの情報を含み、
前記値が同じフィールドの表示を省略する場合に、該値が同じフィールドのうち少なくとも１つの値が変更された際には、前記判断手段は、前記帳票生成手段にて再度オーバレイ出力処理を行う必要があると判断する、ことを特徴とする請求項１ないし４のいずれか１項に記載の情報処理システム。
【請求項６】
前記帳票ページは、ＳＶＧ形式の帳票ページである、
ことを特徴とする請求項１ないし５のいずれか１項に記載の情報処理システム。
【請求項７】
帳票のフォーム情報とフィールドデータとを用いてオーバレイ出力処理を行うことにより得られるＰＤＬ情報に基づいて、帳票ページを生成する帳票生成手段と、
前記オーバレイ出力処理を行う際に、前記生成される帳票ページに含まれるフィールドのレイアウトに関する属性情報を取得する属性取得手段と、
前記生成される帳票ページと、前記取得される属性情報とに基づいて、前記生成される帳票ページをウェブブラウザ上で表示及び編集するための閲覧画面を表示させ且つ前記属性情報を用いて前記表示される帳票ページを編集するための制御プログラムを含む画面データを生成する閲覧画面生成手段と、
前記生成された画面データをクライアントコンピュータに送信する送信手段と、
を備えるサーバであって、
前記クライアントコンピュータは、前記サーバから前記画面データを受信し、前記画面データに含まれる制御プログラムを実行することにより、ウェブブラウザ上で表示した前記閲覧画面において前記帳票ページのフィールドの値がユーザにより編集された場合、前記画面データに含まれる前記属性情報と前記編集されたフィールドの値とに基づいて、前記サーバの前記帳票生成手段にて再度オーバレイ出力処理を行う必要があるか否かを判断し、前記判断において再度オーバレイ出力処理を行う必要があると判断した場合、前記帳票生成手段が前記フォーム情報と前記編集されたフィールドの値とを用いて再度オーバレイ出力処理を行って帳票ページを再生成するように、前記サーバにリクエストを送信する一方、前記判断において再度オーバレイ出力処理を行う必要がないと判断した場合、前記閲覧画面において表示される前記帳票ページのフィールドを当該編集された値に更新する、
ことを特徴とするサーバ。
【請求項８】
サーバとクライアントコンピュータとを含む情報処理システムにおいて実行される制御方法であって、
前記サーバでは、
フォーム情報とフィールドデータとを用いてオーバレイ出力処理を行うことにより得られるＰＤＬ情報に基づいて、帳票ページを生成する帳票生成工程と、
前記オーバレイ出力処理を行う際に、前記生成される帳票ページに含まれるフィールドのレイアウトに関する属性情報を取得する属性取得工程と、
前記生成される帳票ページと、前記取得される属性情報とに基づいて、前記生成される帳票ページをウェブブラウザ上で表示及び編集するための閲覧画面を表示させ且つ前記属性情報を用いて前記表示される帳票ページを編集するための制御プログラムを含む画面データを生成する閲覧画面生成工程と、
を実行し、
前記クライアントコンピュータは、前記制御プログラムを実行することにより、
ウェブブラウザ上で表示した前記閲覧画面において前記帳票ページのフィールドの値がユーザにより編集された場合、前記画面データに含まれる前記属性情報と前記編集されたフィールドの値とに基づいて、前記サーバの前記帳票生成工程にて再度オーバレイ出力処理を行う必要があるか否かを判断する判断工程と、
前記判断工程で再度オーバレイ出力処理を行う必要があると判断した場合、前記帳票生成工程にて、前記フォーム情報と前記編集されたフィールドの値とを用いて再度オーバレイ出力処理を行って帳票ページを再生成するように、前記サーバにリクエストを送信する送信工程と、
前記判断工程で再度オーバレイ出力処理を行う必要がないと判断した場合、前記閲覧画面において表示される前記帳票ページのフィールドを当該編集された値に更新する更新工程と、
を有することを特徴とする情報処理システムの制御方法。
【請求項９】
請求項１ないし７のいずれか１項に記載の情報処理システムが備える各手段として、コンピュータを機能させるためのプログラム。
【請求項１０】
請求項１ないし７のいずれか１項に記載の情報処理システムの前記サーバが備える各手段として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、制御方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
ペーパーレス化による業務の効率化や省資源化を目的として、紙媒体の情報を文書データに置き換える企業が増加している。例えば、社内で運用されている業務帳票もその対象となることが多く、特に基幹系システムが出力する帳票は大量のページ数を出力するため運用コストが莫大なものになることから、帳票の電子化が積極的に行われている。また、帳票文書の作成方法として、帳票の雛型となるフォーム情報に対して、フィールドデータをオーバレイ処理する（フォームに対してフィールドデータを流し込んで適用する）ことによって、ＰＤＦ形式などの帳票文書データ（帳票イメージ）を作成する方法が提案されている。
【０００３】
また、サーバーコンピュータ側で業務データの管理や各種処理を行う形態として、クラウドコンピューティングシステムが普及し始めている。ユーザは、クライアントコンピュータのブラウザからインターネットを介してクラウドサーバコンピュータのＷｅｂページにアクセスし、Ｗｅｂページ上で電子化された帳票文書データ（帳票ページ）を閲覧する。さらに、業務フローに応じて、閲覧している帳票文書データを編集・印刷することが考えられる。  
【０００４】
特許文献１は、クライアントのブラウザが、帳票出力確認画面に帳票イメージ（ＰＤＦ）を表示し、修正画面ボタンが押されると、修正プログラムをダウンロードして修正画面を表示し、データの修正を行えるようにするシステムを開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１９０４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１が開示するシステムでは、ユーザが帳票出力確認画面で閲覧した帳票ページ（ＰＤＦ）に対して修正を行った場合、サーバに修正データを送信する。そして、サーバがフォームデータ上に修正された帳票データを重ね合わせて、出力データを生成し、出力データをイメージ化する必要がある。すなわち、修正が行われる度にサーバに修正データを送信し、サーバが修正データを用いて再度オーバレイ出力処理を実行するため、処理に時間を要してしまう。一方、帳票ページのデータをユーザが編集した場合に、帳票ページのレイアウトに影響することがあり得る。例えば、ユーザが文字列の修正を行い、修正後の文字列の容量が修正前の文字列の容量よりも多くなるような場合に、文字列が表示される領域の高さを大きくし、領域内に文字列を改行することで表示することも考えられる。このような場合には、修正データを用いて再度オーバレイ出力処理を実行する必要がある。
【０００７】
本発明は、帳票ページが修正された場合に、オーバレイ出力処理を再度実行するか否かを適切に判断し、編集作業を容易に行うことができる情報処理システムの提供を目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施形態の情報処理システムは、サーバとクライアントコンピュータとを含む情報処理システムであって、前記サーバは、フォーム情報とフィールドデータとを用いてオーバレイ出力処理を行うことにより得られるＰＤＬ情報に基づいて、帳票ページを生成する帳票生成手段と、前記オーバレイ出力処理を行う際に、前記生成される帳票ページに含まれるフィールドのレイアウトに関する属性情報を取得する属性取得手段と、前記生成される帳票ページと、前記取得される属性情報とに基づいて、前記生成される帳票ページをウェブブラウザ上で表示及び編集するための閲覧画面を表示させ且つ前記属性情報を用いて前記表示される帳票ページを編集するための制御プログラムを含む画面データを生成する閲覧画面生成手段と、を備え、前記クライアントコンピュータは、前記制御プログラムを実行することにより、ウェブブラウザ上で表示した前記閲覧画面において前記帳票ページのフィールドの値がユーザにより編集された場合、前記画面データに含まれる前記属性情報と前記編集されたフィールドの値とに基づいて、前記サーバの前記帳票生成手段にて再度オーバレイ出力処理を行う必要があるか否かを判断する判断手段と、前記判断手段で再度オーバレイ出力処理を行う必要があると判断した場合、前記帳票生成手段が前記フォーム情報と前記編集されたフィールドの値とを用いて再度オーバレイ出力処理を行って帳票ページを再生成するように、前記サーバにリクエストを送信する送信手段と、前記判断手段で再度オーバレイ出力処理を行う必要がないと判断した場合、前記閲覧画面において表示される前記帳票ページのフィールドを当該編集された値に更新する更新手段と、して機能する。
【発明の効果】
【０００９】
本発明の情報処理システムによれば、帳票ページが編集された場合に、オーバレイ出力処理を再度実行するか否かを適切に判断し、編集作業を容易に行うことができる。これにより、帳票ページが変更された場合に、再度オーバレイ出力処理を実行することを抑制し、ブラウザ上での編集作業のパフォーマンス低下（遅延）を抑制できる。また、帳票ページの編集がレイアウトに影響する場合には、フォーム情報の設定を反映した帳票ページの作成を実行できる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態のシステム構成例を示す図である。
【図２】帳票生成サーバとクライアント装置を実現する装置のハードウェア構成例を示す図である。
【図３】帳票生成サーバで動作するソフトウェアモジュールの構成例を示す図である。
【図４】帳票生成サーバによるオーバレイ出力処理を説明する図である。
【図５】編集可能な帳票閲覧画面を生成する処理を説明する図である。
【図６】ログイン画面の一例を示す図である。
【図７】帳票選択画面の一例を示す図である。
【図８】オーバレイ出力処理を説明するフローチャートである。
【図９】オーバレイ情報ファイルの一例を示す図である。
【図１０】最適化処理が行われた帳票ページの一例を示す図である。
【図１１】帳票ページの最適化処理を説明するフローチャートである。
【図１２】編集可能な帳票閲覧画面の一例を示す図である。
【図１３】編集可能な帳票閲覧画面上の編集処理を説明するフローチャートである。
【図１４】編集操作が行われた帳票閲覧画面の一例を示す図である。
【図１５】編集されたデータに関する更新情報の一例を示す図である。
【図１６】編集前のフィールドデータの一例を示す図である。
【図１７】編集操作が行われた帳票閲覧画面の一例を示す図である。
【図１８】編集操作が行われた帳票閲覧画面の一例を示す図である。
【図１９】オーバレイ情報ファイルの一例を示す図である。
【図２０】最適化処理が行われた帳票ページの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面などを参照して説明する。
（第１実施形態）
図１は、本実施形態のシステム構成例を示す図である。
図１に示す情報処理システムは、帳票生成サーバ１０１とクライアント装置１０２を備える。帳票生成サーバ１０１は、本実施形態の情報処理装置である。帳票生成サーバ１０１は、オーバレイ出力処理を実行する。すなわち、帳票生成サーバ１０１は、テキストデータであるフィールドデータファイルと、所定のフォーム情報を含むフォーム情報ファイルとを重ね合わせて、帳票ページを生成する。そして、帳票生成サーバ１０１は、クライアント装置１０２からのリクエスト（要求）に応じて、仮想プリンタに指示して、帳票ページに対応する印刷データを電子ファイルとして生成する。
【００１２】
また、帳票生成サーバ１０１は、帳票閲覧画面データの生成処理を実行する。帳票閲覧画面データは、帳票ページの閲覧及び編集を行うための閲覧画面（帳票閲覧画面）を表示させるためのデータである。本実施形態では、帳票閲覧画面データは、少なくとも、オーバレイ出力処理時に作成されるフィールド図形のレイアウトに関する情報であるオーバレイ情報と、編集可能な帳票ページと、帳票閲覧プログラムとを含む。帳票閲覧プログラムは、帳票ページの閲覧及び編集を制御するための制御プログラムである。本実施形態では、帳票閲覧プログラムは、ネットワークを介して配信できる、ウェブブラウザ上で動作するウェブアプリケーションである。帳票閲覧プログラムは、例えば、ウェブページを表現するマッシュアップ言語（ＨＴＭＬ）及びウェブブラウザ上で動作するプログラミング言語であるＪａｖａ（登録商標）Ｓｃｒｉｐｔにより動作するアプリケーションプログラム（Ｊａｖａ（登録商標）プログラム）である。帳票閲覧プログラムは、ウェブブラウザ上で動作するウェブアプリケーション以外の、コンピュータシステム上で実行するアプリケーションでも良い。また、帳票生成サーバ１０１が、帳票ページの電子帳票ファイルと、オーバレイ時に決まるフィールド図形に関する情報のみを生成し、クライアント装置１０２が、電子帳票ファイルを使用して、帳票の閲覧・編集操作を実行できるアプリケーションを備える構成をとってもよい。帳票生成サーバ１０１は、クライアント装置１０２からリクエストに応じてオーバレイ出力処理、及び帳票閲覧画面データの生成処理（閲覧画面生成）を実行する。
【００１３】
プリンタ１０３は、クライアント装置１０２からリクエストを受信して印刷データを紙に印字する処理を行う。帳票生成サーバ１０１とクライアント装置１０２とプリンタとは、ネットワーク１００を介して通信可能に接続されている。ネットワーク１００は、例えば、インターネット、ＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等である。また、ネットワーク１００は、これらの組み合わせにより実現されてもよい。なお、クライアント装置１０２から帳票生成サーバ１０１への通信手段とクライアント装置１０２からプリンタ１０３への通信手段とが異なっていてもよい。
【００１４】
図２は、帳票生成サーバとクライアント装置を実現する装置のハードウェア構成を示す図である。
図２に示す装置は、それぞれ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１乃至Ｉ／Ｆ２０７を備える。ＣＰＵ２０１は、内部バスで接続される各デバイス（後述のＲＯＭ、ＲＡＭ他）を直接または間接的に制御し、本発明を実現するためのプログラムを実行する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）が記憶されている。
【００１５】
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３はＣＰＵ２０１のワーク領域として利用されたり、本発明を実現するためのソフトウェアモジュールをロードするための一時記憶装置として利用されたりする。ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２０４には、基本ソフトウェアであるＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）やソフトウェアモジュールが記憶されている。ＨＤＤ２０４に代えてＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を設けるようにしてもよい。
【００１６】
入力装置２０５は、ユーザの操作入力に応じた情報を入力する。入力装置２０５は、例えば、不図示のキーボードやポインティングデバイスなどである。出力装置２０６は、情報を出力する。出力装置２０６は、ディスプレイが接続される。Ｉ／Ｆ２０７は、ネットワーク１００に接続するためのインタフェースである。装置が起動後、ＣＰＵ２０１によりＢＩＯＳが実行され、ＯＳがＨＤＤ２０４からＲＡＭ２０３に実行可能にロードされる。ＣＰＵ２０１は、ＯＳの動作に従って各種ソフトウェアモジュールをＨＤＤ２０４からＲＡＭ２０３に随時、実行可能にロードする。各種ソフトウェアモジュールは、ＣＰＵ２０１によって実行され動作する。また、Ｉ／Ｆ２０７は、ＯＳの動作に従ってＣＰＵ２０１により制御され、外部装置との通信を実現している。
【００１７】
図３は、帳票生成サーバ上で動作するソフトウェアモジュールの構成例を示す図である。
各ソフトウェアモジュールは、図２に示すＨＤＤ２０４に記憶されており、ＣＰＵ２０１によってＲＡＭ２０３にロードされ実行される。帳票生成サーバ１０１は、アクセス制御部３０１乃至オーバレイ情報ＤＢ（データベース）３０９を備える。アクセス制御部３０１は、クライアント装置１０２からのリクエストに応じて、ユーザ認証を行う。
【００１８】
ページ生成部３０２は、クライアント装置１０２にレスポンスを返すためのＷｅｂページを生成する。ページ生成部３０２は、帳票閲覧プログラムであるウェブアプリケーションに必要なＨＴＭＬ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔなどのファイルも生成し、クライアント装置１０２に返す。データアクセス部３０３は、各ＤＢ（３０５乃至３０９）へのアクセス処理を行う。
【００１９】
帳票生成部３０４は、データアクセス部３０３を介して、フォーム情報ＤＢ３０６からフォーム情報ファイルを読み出す。また、帳票生成部３０４は、データアクセス部３０３を介して、フィールドデータＤＢ３０７からフィールドデータファイルを読み出す。帳票生成部３０４は、読み出したフォーム情報ファイルが示すフォーム情報と、フィールドデータファイルが示すフィールドデータとを重ね合わせて、帳票ページを生成する。そして、帳票生成部３０４は、仮想プリンタなどのソフトウェアを利用して、帳票ページの電子ファイルを生成する。帳票印刷部３１０は、クライアント装置１０２からの印刷ファイル生成リクエストを受け取り、帳票ページの電子ファイルを印刷可能なフォーマットに変換する。
【００２０】
帳票データＤＢ（データベース）３０５には、帳票データが格納される。帳票データは、帳票名、所有者などの情報を示し、当該帳票がどのフォーム情報ファイルとフィールドデータファイルとから生成されるかを表す情報を有する。また、帳票データは、当該帳票のオーバレイ出力処理の結果である帳票ページを示す情報を有する。
【００２１】
フォーム情報ＤＢ３０６には、フォーム情報ファイルが格納される。フィールドデータＤＢ３０７には、フィールドデータファイルが格納される。帳票ページＤＢ３０８には、帳票生成部３０４によって生成された帳票ページファイルが格納される。オーバレイ情報ＤＢ３０９には、帳票オーバレイ処理時に生成されたオーバレイ情報ファイルが格納される。
【００２２】
図４は、帳票生成サーバによる帳票オーバレイ出力処理を説明する図である。
オーバレイ出力処理とは、原稿用紙形式の枠線などの情報を記録するフォーム情報とテキスト形式のデータ（フィールドデータ）とを重ね合わせることである。オーバレイ出力処理の結果を紙ではなく、電子ファイルとして出力することも可能である。フォーム情報は、専用のフォーム情報設計システムを利用して作成される。フォーム情報は、フィールドデータに依存しない固定的な図形（フォーム図形）と、受け取ったフィールドデータを指定した出力書式に従って表示する図形（フィールド図形）とから構成されている。フィールド図形を作成するには、予めフィールドデータを受け取るための項目（フィールド）を作成する必要がある。フィールドは、フォーム情報設計システムにて表示された専用の画面から作成される。フィールド図形が作成されると、作成元であるフィールドとの関連付けが内部的におこなわれる。
【００２３】
表形式のフィールド図形（表図形）４０２の場合、フィールドデータをレコード単位に受け取る必要があるため、レコードフィールド４０３が作成される。計算列フィールドは、他のフィールド図形のデータの演算結果からフィールドデータを生成する形式のフィールドである。また、集計フィールドは、指定した集計方法で集計し、フィールドデータを生成する形式のフィールドである。フィールド図形４０４の場合、どのフィールドとどのような集計方法を用いるかが指定されている必要があるため、集計フィールド４０５が作成される。
【００２４】
帳票生成サーバ１０１が、フィールド図形が定義されたフォーム情報ファイル４０１と、対応するフィールドデータファイル４０６とを読み込む。そして、帳票生成サーバ１０１は、読み込んだフォーム情報ファイル４０１とフィールドデータファイル４０６とを重ね合わせることでオーバレイ出力処理を実行する。図４の４０７は、オーバレイ出力処理結果の例を示す。
【００２５】
図５は、帳票閲覧画面データを生成する（閲覧画面生成）処理を説明する図である。
ステップＳ５０１において、クライアント装置１０２が、クライアント装置１０２のウェブブラウザで表示されているログイン画面上でのユーザの操作に応じて、帳票生成サーバ１０１にログインのリクエストを送信する。
【００２６】
図６は、ログイン画面の一例を示す図である。
ユーザは、ログイン画面６０１のユーザ名入力テキストボックス６０２とパスワード入力テキストボックス６０３にユーザ名とパスワードを入力し、ログインボタン６０４を押下する。これにより、クライアント装置１０２が、帳票生成サーバ１０１にログインのリクエストを送信する。
【００２７】
図５の説明に戻る。ステップＳ５０２において、帳票生成サーバ１０１のアクセス制御部３０１が、クライアント装置１０２から受信したログインリクエストの内容に基づいてログイン処理を行う。アクセス制御部３０１が、Ｂａｓｉｃ認証を行い、ユーザ名とパスワードが有効であることを確認した場合に、処理がステップＳ５０３に進む。なお、Ｂａｓｉｃ認証は、一般的な認証処理であるので、その説明を省略する。ステップＳ５０３において、帳票生成サーバ１０１のページ生成部３０２が、ログインしたユーザの情報に応じて帳票選択画面を生成する。
【００２８】
図７は、帳票選択画面の一例を示す図である。
帳票選択画面７０１において、領域７０２には、現在ログインしたユーザのユーザ名が表示される。ドロップダウンリスト７０３には、現在ログインしたユーザが所有する帳票一覧が表示される。ドロップダウンリスト７０３に表示される情報は、ページ生成部３０２がデータアクセス部３０３を介して帳票データＤＢ３０５から抽出した、ログインしたユーザが所有する帳票の帳票名である。
【００２９】
帳票操作ボタン７０４は、ドロップダウンリスト７０３で選択された帳票名に該当する帳票に対して、プレビューを実行するためのボタンである。帳票操作ボタン７０５は、ドロップダウンリスト７０３で選択された帳票名に該当する帳票に対して、編集可能なプレビューを実行するためのボタンである。帳票操作ボタン７０６は、ドロップダウンリスト７０３で選択された帳票名に該当する帳票に対して、印刷操作を実行するためのボタンである。編集可能プレビューボタン７０５が押下された後の処理は後述するが、プレビューボタン７０４と印刷ボタン７０６が押下された後の処理の説明は省略する。
【００３０】
図５の説明に戻る。ステップＳ５０４において、帳票生成サーバ１０１のアクセス制御部３０１が、ステップＳ５０３において生成された帳票選択画面７０１を、ネットワーク１００を介してクライアント装置１０２に返す。ステップＳ５０５において、クライアント装置１０２が、帳票生成サーバ１０１から帳票選択画面７０１を受け取り、ウェブブラウザが画面表示する。
【００３１】
ステップＳ５０６において、ユーザは、帳票選択画面７０１内のドロップダウンリスト７０３から、操作したい帳票の帳票名を選択する。続いて、ステップＳ５０７において、ユーザが、帳票選択画面７０１内の編集可能プレビューボタン７０５を押下すると、クライアント装置１０２が、帳票生成サーバ１０１に編集可能な帳票閲覧画面の生成リクエストを送信する。編集可能な帳票閲覧画面の生成リクエストは、閲覧対象帳票を特定できる情報を有する。
【００３２】
ステップＳ５０８において、帳票生成サーバ１０１の帳票生成部３０４が、データアクセス部３０３を介して、フォーム情報ＤＢ３０６から、閲覧対象帳票に関連するフォーム情報ファイルを取得する。また、帳票生成部３０４は、データアクセス部３０３を介して、フィールドデータＤＢ３０７から、閲覧対象帳票に関連するフィールドデータファイルを取得する。ステップＳ５０９において、帳票生成サーバ１０１の帳票生成部３０４が、ステップＳ５０８で取得したフォーム情報ファイルとフィールドデータファイルとを用いて、オーバレイ出力処理を行う。
【００３３】
図８は、図５のステップＳ５０９におけるオーバレイ出力処理を説明するフローチャートである。
ステップＳ８０１において、帳票生成部３０４が、ステップＳ５０８において取得したフォーム情報ファイルとフィールドデータファイルを用いて、出力する帳票ページのレイアウト構成を計算する。続いて、ステップＳ８０２において、帳票生成部３０４が、ステップＳ８０１で計算されたレイアウト構成に従い、各図形（フィールドデータに依存しないフォーム図形及びフィールドデータに依存するフィールド図形）の描画命令を順次実行する。
【００３４】
ステップＳ８０３において、帳票生成部３０４が、ステップＳ８０２で実行した描画命令がフィールド図形の描画命令であるかを判断する。実行した描画命令がフィールド図形の描画命令でない場合は、処理がステップＳ８０６に進む。実行した描画命令がフィールド図形の描画命令である場合は、処理がステップＳ８０４に進む。
【００３５】
ステップＳ８０４において、帳票生成部３０４が、ステップＳ８０２で実行した描画命令の対象フィールド図形の情報を取得する。取得する情報は、対象フィールド図形のフィールド名、フィールド図形のタイプ（レコードフィールド、集計フィールド、など）、及び対象フィールド図形に関する各種属性情報である。取得する各種属性情報は、図形（データ）の描画位置、図形名、表の内側であるか否か、表における行番号、複数行の表示を許すか否か、等である。取得対象となるフィールド図形の情報は、ステップＳ５０８で取得したフォーム情報ファイルに含まれている。
【００３６】
ステップＳ８０５において、帳票生成部３０４が、ステップＳ８０４で取得した情報をオーバレイ情報ファイルに書き込む。オーバレイ情報ファイルが存在しない場合、新規作成を行う。続いて、帳票生成部３０４が、データアクセス部３０３を介して、生成されたオーバレイ情報ファイルをオーバレイ情報ＤＢ３０９に格納する。そして、帳票生成部３０４は、生成されたオーバレイ情報ファイルを特定する情報を帳票データＤＢ３０５の中の該当帳票レコードに追加する。
【００３７】
図９は、オーバレイ情報ファイルの一例である。
本実施形態では、オーバレイ情報ファイルはＪＳＯＮフォーマットである。オーバレイ情報ファイル９０１には、ステップＳ８０４で取得したフィールド図形情報が、フィールド図形ごとに記載されている。この例では、９１０、９２０、９３０、９４０、及び９５０の５つのフィールド図形に関するフィールド図形情報が記載されている。ｆｉｅｌｄ  ｎａｍｅレコード（９１１、９２１、９３１、９４１、及び９５１）は、フィールド図形が関連付けられているフィールドのフィールド名を示す。
【００３８】
ｆｉｅｌｄ  ｔｙｐｅレコード（９１２、９２２、９３２、９４２、及び９５２）は、フィールド図形が関連付けられているフィールドの種類（レコードフィールドや集計フィールド等）を示す。ｆｉｅｌｄ  ｆｉｇ  ｎａｍｅレコード（９１３、９２３、９３３、９４３、及び９５３）は、フィールド図形名を示す。ｐｏｓｉｔｉｏｎレコード（９１４、９２４、９３４、９４４、及び９５４）は、フィールド図形の描画位置を示す。ｔａｂｌｅ  ｆｉｅｌｄレコード（９１５、９２５、９３５、９４５、及び９５５）は、フィールド図形が表の内側に定義されているかを示す。例えば、表の内側に定義されている場合には、９１５、９２５、９３５、及び９４５のようにｙｅｓと記述される。また、フィールド図形が表の外側に定義されている場合には、９５５のようにｎｏと記述される。
【００３９】
ｔａｂｌｅ  ｌｉｎｅ  ｎｕｍｂｅｒレコード（９１６、９２６、９３６、９４６、及び９５６）は、フィールド図形が表の何番目の行に定義されているかを示す。表の外側のフィールド図形の場合には、９５６のようにｔａｂｌｅ  ｌｉｎｅ  ｎｕｍｂｅｒレコードの値は、‐１と記述される。ｍｕｌｔｉ  ｌｉｎｅレコード（９１７、９２７、９３７、９４７、及び９５７）は、フィールド図形に出力されるデータを表示する際に複数行で表示することを許可するか否かを示す。複数行で表示することを許可する場合は、９１７及び９２７のようにｙｅｓと記述され、複数行で表示することを許可しない場合は、９３７、９４７、及び９５７のようにｎｏと記述される。
【００４０】
図８の説明に戻る。ステップＳ８０６において、帳票生成部３０４が、全ての描画命令が完了したかを判断する。完了していない描画命令がある場合は、処理がステップＳ８０２に戻り、次の描画命令が実行される。全ての描画命令が完了した場合は、処理がステップＳ８０７に進む。ステップＳ８０７において、帳票生成部３０４が、描画処理の結果であるＰＤＬ情報を利用して、仮想プリンタを介してＰＤＦ形式の帳票ページを生成する。ＰＤＬ情報は、プリンタに対して描画を指示するための情報であって、ページ記述言語で記述される。
【００４１】
図５の説明に戻る。ステップＳ５１０において、帳票生成部３０４が、ステップＳ８０７で生成したＰＤＦ形式の帳票ページをＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）形式の帳票ページに変換する。ＰＤＦ形式の帳票ページは、ウェブブラウザ上で直接編集できないので、編集できる形式（本実施形態の場合はＳＶＧ形式）に変更する。
【００４２】
次に、帳票生成部３０４が、データアクセス部３０３を介して、ステップＳ５１０で生成されたＳＶＧ形式の帳票ページを帳票ページＤＢ３０８に格納する。そして、帳票生成部３０４は、生成されたＳＶＧ形式の帳票ページを特定する情報を帳票データＤＢ３０５の中の該当帳票レコードに追加する。
【００４３】
次に、ステップＳ５１１において、帳票生成サーバ１０１が、ステップＳ５０７でリクエストした編集可能な帳票閲覧画面のＵＲＬをクライアント装置１０２に返却する。返却するＵＲＬは、ステップＳ５１０で生成したＳＶＧ形式の帳票ページを特定する情報を含む。本実施形態の場合、返却するＵＲＬの中に帳票ページと関連する帳票データの帳票名が含まれている。ステップＳ５１２において、クライアント装置１０２が、ステップＳ５１１で返却されたＵＲＬを使用して、編集可能な帳票閲覧画面にリダイレクトするリクエスト（リダイレクトリクエスト）を帳票生成サーバ１０１に送信する。
【００４４】
続いて、ステップＳ５１３において、帳票生成サーバ１０１のページ生成部３０２が、ステップＳ５１２で送信されたリダイレクトリクエストの内容に応じて編集可能な帳票閲覧画面のデータ（帳票閲覧画面データ）を生成する。生成された帳票閲覧画面データは、リクエスト対象となった帳票の帳票ページと、帳票ページを閲覧、編集、印刷操作を制御するための制御プログラム（Ｊａｖａ（登録商標）Ｓｃｒｉｐｔプログラム）と、編集操作時に必要なオーバレイ情報とを含む。ページ生成部３０２は、リダイレクトリクエスト中の帳票名に基づき、リクエスト対象の帳票に関連する帳票ページと、オーバレイ情報ファイルとを、データアクセス部３０３を介して帳票ページＤＢ３０８、オーバレイ情報ＤＢ３０９から取得する。そして、ページ生成部３０２は、取得した各データを帳票閲覧画面データに含める。
【００４５】
ステップＳ５１４において、帳票生成サーバ１０１が、ステップＳ５１３で生成した帳票閲覧画面データをクライアント装置１０２に返却する。ステップＳ５１５において、クライアント装置１０２が、帳票生成サーバ１０１からのレスポンスを受け取り、レスポンスに含まれる帳票閲覧画面データの最適化処理を行う。帳票閲覧画面データは、ＨＴＭＬ形式のファイル、ＳＶＧ形式の帳票ページ、オーバレイ情報ファイル、及びＪａｖａ（登録商標）Ｓｃｒｉｐｔプログラムを含むが、最適化処理は、ＳＶＧ形式の帳票ページに対して実行する。
【００４６】
図１０は、最適化処理が行われた帳票ページの一例を示す図である。
図１０（Ａ）に示す帳票ページ１６１０は、最適化処理が行われる前の帳票ページを示す。ＳＶＧ形式のｔｅｘｔタグ（テキスト要素）１６１１及び１６１２は、各フィールド図形のデータの値及び描画位置座標を示す。ｔｅｘｔタグ１６１１では、１つのフィールド図形のデータの値が１つのｔｅｘｔタグとして出力される。一方、ｔｅｘｔタグ１６１２のように、ＰＤＬ情報を介してＳＶＧ形式の帳票ページを作成する際に、１つのフィールド図形情報が複数のｔｅｘｔタグに分割されて出力される場合もある。また、各ｔｅｘｔタグは、帳票特有の情報（フィールド図形名など）を有していない。帳票の編集処理を行う際に、各ｔｅｘｔタグは、フィールド図形やそのレイアウトに関する属性情報等の帳票固有の情報との関連付けが必要なため、帳票ページの最適化処理（属性付与）が実行される。
【００４７】
図１０（Ｂ）に示す帳票ページ１６２０は、最適化処理が行われた後の帳票ページを示す。ｇタグ（グループタグ、ｇ要素）１６２１及び１６２２は、各ｔｅｘｔタグをフィールド図形ごとにまとめる。さらに、帳票固有の情報は、ｇタグに属性として付与され、ｔｅｘｔタグと帳票固有の情報が紐付けられる。この例では、ｇタグ１６２１には、フィールド図形名をｉｄ属性１６２３として付与する。また、ｇタグ１６２１には、表の内側であるか否か、及び複数行の表示を許すか否かをｃｌａｓｓ属性１６２４として付与する。さらに、ｇタグ１６２１には、表における行番号をａｔｔｒ属性１６２５として付与する。
【００４８】
図１１は、帳票ページの最適化処理を説明するフローチャートである。
ステップＳ１７０１において、クライアント装置１０２が、ステップＳ５１４で帳票生成サーバ１０１から返却された帳票閲覧画面データに含まれるオーバレイ情報ファイル９０１を取得する。ステップＳ１７０２において、クライアント装置１０２が、ステップＳ１７０１で取得したオーバレイ情報ファイル９０１を読み込み、フィールド図形情報を１つ取得する。
【００４９】
ステップＳ１７０３において、クライアント装置１０２が、ＳＶＧ形式の帳票ページＳＶＧのｔｅｘｔタグを読み込む。ｔｅｘｔタグが複数ある場合は、複数読み込まれる。ステップＳ１７０４乃至ステップＳ１７０８において、クライアント装置１０２が、ステップＳ１７０３で読み込んだｔｅｘｔタグごとにステップＳ１７０５乃至ステップＳ１７０７の処理を実行する。
【００５０】
ステップＳ１７０５において、クライアント装置１０２が、ステップＳ１７０３で読み込んだｔｅｘｔタグがフィールド図形に含まれるか否かを判断する。具体的には、ステップＳ１７０２で読み込んだフィールド図形情報のｐｏｓｉｔｉｏｎレコードが示すフィールド図形の矩形内に、ｔｅｘｔタグにより描画される文字列の先頭座標（ｔｅｘｔタグのｘ、ｙ属性の値）が含まれるか否かを判断する。ｔｅｘｔタグがフィールド図形に含まれない場合は、処理がステップＳ１７０８に進む。ｔｅｘｔタグがフィールド図形に含まれる場合は、処理がステップＳ１７０６に進む。ステップＳ１７０６において、クライアント装置１０２が、ｔｅｘｔタグを囲むｇタグを生成する。
【００５１】
ステップＳ１７０７において、クライアント装置１０２が、ステップＳ１７０６で生成したｇタグに対して各種属性を付与する。具体的には、ステップＳ１７０２で読み込んだフィールド図形情報のｆｉｅｌｄ  ｆｉｇ  ｎａｍｅレコードの値（フィールド図形名）を、ｇタグのｉｄ属性の値として付与する。また、フィールド図形情報のｔａｂｌｅ  ｆｉｅｌｄレコードの値がｙｅｓの場合、ｇタグのｃｌａｓｓ属性の値をｔａｂｌｅ＿ｆｉｅｌｄとして付与する。さらに、フィールド図形情報のｔａｂｌｅ  ｌｉｎｅ  ｎｕｍｂｅｒレコードの値を、ｇタグのａｔｔｒ属性の値としてａｔｔｒ＝”ｔａｂｌｅ＿ｌｉｎｅ＿ｎｕｍｂｅｒ：ｎ“のように付与する。ｎには取得した行番号が記述される。また、フィールド図形情報のｍｕｌｔｉ  ｌｉｎｅレコードの値がｙｅｓの場合、ｇタグのｃｌａｓｓ属性の値を“ｍｕｌｔｉ＿ｌｉｎｅ”として付与する。
【００５２】
ステップＳ１７０８において、ステップＳ１７０３で読み込んだｔｅｘｔタグで未処理のものがまだある場合は、処理がステップＳ１７０４に戻り、該ｔｅｘｔタグに対してループ処理が実行される。ステップＳ１７０９において、クライアント装置１０２が、ステップＳ１７０１で取得したオーバレイ情報ファイル９０１に未処理のフィールド図形情報が存在するかを判断する。未処理のフィールド図形情報が存在する場合は、処理がステップＳ１７０２に戻り、次のフィールド図形情報が読み込まれる。未処理のフィールド図形情報が存在しない場合は、処理がステップＳ１７１０に進む。
【００５３】
ステップＳ１７１０において、クライアント装置１０２が、ｇタグのマージ処理を行う。ＳＶＧ形式の帳票ページにおいて、図１０（Ａ）のｔｅｘｔタグ１６１２のように、１つのフィールド図形情報が複数のｔｅｘｔタグに分割されて出力される場合があるため、ｉｄ属性に同じフィールド図形名をもつｇタグが複数存在する可能性がある。このため、マージ処理において、同じフィールド図形名を持つｇタグが１つにまとめられる。
【００５４】
以上が帳票ページの最適化処理の説明である。なお、最適化処理は、ステップＳ５１５においてクライアント装置１０２が帳票生成サーバ１０１から帳票閲覧画面データを受け取った後に実行するのではなく、帳票ページが帳票閲覧画面で編集された際に、その都度実行してもよい。また、クライアント装置１０２ではなく帳票生成サーバ１０１が、例えば、帳票生成部３０４等で最適化処理を予め実行してもよい。
【００５５】
図５の説明に戻る。ステップＳ５１６において、クライアント装置１０２が、ステップＳ５１５で最適化処理を実行した帳票閲覧画面データに基づいて、編集可能な帳票閲覧画面をウェブブラウザに表示する。以上が図５を用いた編集可能な帳票閲覧画面データを生成する処理の説明である。
【００５６】
図１２は、本実施形態における編集可能な帳票閲覧画面を示す図である。
帳票閲覧画面１００１中の領域１００２は、ＳＶＧ形式の帳票ページを表示する領域である。領域１００２の中に横方向のフリック操作を行うと、前後の帳票ページへの切り替えができる。領域１００３と領域１００４には、レコードフィールドの「商品名」レコードの描画結果が表示される。また、領域１００５と領域１００６には、レコードフィールドの「金額」レコードの描画結果が表示される。また、領域１００７には、集計フィールドの「合計」レコードの描画結果が表示される。領域１００３と領域１００４の値と座標情報は、最適化処理が行われた後のＳＶＧ形式の帳票ページ（図１０（Ｂ））のｇタグ１６２１とｇタグ１６２２に囲まれたｔｅｘｔタグで記述されている。ユーザが領域１００２でクリック操作を行うと、編集可能な帳票閲覧画面内の帳票閲覧プログラムが動作し、図１３を参照して説明する編集処理を実行する。
【００５７】
図１３は、本実施形態における帳票閲覧画面上での編集操作に応じた編集処理を説明するフローチャートである。
ステップＳ１１０１において、ユーザが、編集可能な帳票閲覧画面１００１の領域１００２内でクリック操作を行う。続いて、ステップＳ１１０２において、帳票閲覧画面データに含まれる帳票閲覧プログラムが、ステップＳ１１０１でクリックされた位置が編集可能なフィールドの領域内であるかを判断する。
【００５８】
クリックされた位置が編集可能なフィールドの領域内であるかの判断は、具体的には、下記のように実行する。まず、帳票閲覧プログラムが、クリックされた位置に存在するＳＶＧ形式の帳票ページのタグ要素を特定する。クリックされた位置に存在するタグ要素の取得には、ウェブブラウザが提供する標準のＪａｖａ（登録商標）ＳｃｒｉｐｔＡＰＩを利用する。また、要素の特定ができればこれに限定されず、例えば、ｊＱｕｅｒｙ等の外部ライブラリを使用してもよい。
【００５９】
続いて、帳票閲覧プログラムが、クリックされたタグ要素がｔｅｘｔタグか否かを判断する。ｔｅｘｔタグである場合、帳票閲覧プログラムが、該ｔｅｘｔタグにｉｄ属性が付与されているか否かを確認する。クリックされたタグ要素がｔｅｘｔタグであり、かつフィールド図形に含まれる場合、図１１のステップＳ１７０７においてｔｅｘｔタグのｉｄ属性の値としてフィールド図形名が付与されている。フィールド図形ではなく、フォーム図形等のデータを示すｔｅｘｔタグであった場合、ｔｅｘｔタグにはｉｄ属性が付与されていない。すなわち、クリックされたタグ要素がｔｅｘｔタグであり、かつ該ｔｅｘｔタグにｉｄ属性が付与されている場合、クリックされた位置が編集可能なフィールドの領域内であると判断する。
【００６０】
なお、フィールドの種類に応じて、クリックされた位置が編集可能なフィールドの領域内であるか否かを判断してもよい。具体的には、オーバレイ情報ファイル９０１のｆｉｅｌｄ  ｔｙｐｅレコードの値を最適化処理（図１１のステップＳ１７０７）でＳＶＧ形式の帳票ページのｇタグの属性として付与する。そして、例えば、集計フィールドの編集は行わないようにしてもよい。本実施形態では集計フィールドも編集可能とする。
【００６１】
クリックされた位置が編集可能なフィールドの領域内である場合、処理がステップＳ１１０３に進む。クリックされた位置が編集可能なフィールドの領域内でない場合、処理は終了する。ステップＳ１１０３において、帳票閲覧プログラムが、編集ダイアログ１２０１を表示する。本実施形態の場合、編集可能な帳票閲覧画面１００１の領域１００３乃至１００７がクリックされた場合に、編集ダイアログ１２０１が表示される。図１４（Ａ）は、編集ダイアログの表示例である。
【００６２】
ステップＳ１１０４において、ユーザが、編集ダイアログ１２０１のテキストボックス１２０２内に新しい値を入力し、確認ボタン１２０３をクリックする。この例では、「ＸＸＸカメラ（約１６００万画素光学８倍ズーム  グレー）」という値が入力されたものとする。ステップＳ１１０５において、帳票閲覧プログラムが、帳票ページの再作成（再オーバレイ）が必要か否かを判断する。
【００６３】
具体的には、帳票閲覧プログラムが、ステップＳ１１０４においてユーザが入力した値が、ステップＳ１１０２で特定したｔｅｘｔタグ（クリックされたｔｅｘｔタグ）の値（文字列）と等しいか否かを確認する。値が等しい場合、帳票ページの再作成は不要と判断する。値が等しくない場合、帳票閲覧プログラムが、特定したｔｅｘｔタグに付与されたｃｌａｓｓ属性の値としてｔａｂｌｅ＿ｆｉｅｌｄ及びｍｕｌｔｉ＿ｌｉｎｅが記述されているか否かを確認する。ｔａｂｌｅ＿ｆｉｅｌｄ及びｍｕｌｔｉ＿ｌｉｎｅがともに記述されている場合、帳票ページの再作成が必要と判断する。ｔａｂｌｅ＿ｆｉｅｌｄ及びｍｕｌｔｉ＿ｌｉｎｅがともに記述されていない場合、帳票ページの再作成は不要と判断する。
【００６４】
ｃｌａｓｓ属性の値としてｔａｂｌｅ＿ｆｉｅｌｄ及びｍｕｌｔｉ＿ｌｉｎｅが記述されている場合、以下の設定があることを示している。すなわち、フォーム情報ファイル４０１のフィールド図形情報において、表の内側にあるフィールド図形は、データに応じて文字を折り返し、複数行で表示する設定がされていることを示す。このような表示を行うには、各文字の各フォントに対する文字幅の情報が必要となるが、ＳＶＧ形式の帳票ページには、それらの情報は含まれていない。すなわち、ユーザが入力した値（文字列）により、該文字列の幅がフィールド図形の矩形幅を超える事があり得るが、各文字の各フォントに対する文字幅の情報がないため、どの文字で矩形幅を超えるかを判断することができない。
【００６５】
また、文字幅の情報をオーバレイ情報に含ませることも考えられるが、ユーザが入力する文字は事前にわからないため、帳票システムで対応する全ての文字の全てのフォントの情報を持つ必要がある。これは膨大な量のデータとなるため、パフォーマンスやメモリ等の処理効率を考慮すると現実的ではない。従って、本実施形態では、ステップＳ１１０５において、ｔｅｘｔタグに付与されたｃｌａｓｓ属性の値としてｔａｂｌｅ＿ｆｉｅｌｄ及びｍｕｌｔｉ＿ｌｉｎｅがともに記述されている場合には、帳票ページの再作成が必要と判断する。これにより、フォーム情報ファイル４０１の設定を実現することができる。
【００６６】
なお、本実施形態では、ｃｌａｓｓ属性のみに基づいて帳票ページの再作成が必要か否かを判断しているが、これに限定されず、他の条件を組み合わせて判断してもよい。例えば、フィールド図形情報に描画フォントとして固定幅フォント（等幅フォント）の使用が記述されている場合には、次のような条件が考えられる。固定幅フォントを使用する場合、全ての文字の文字幅が同じになるため、ユーザが入力した文字列の文字数をカウントし、文字幅×文字数（文字幅に文字数を乗じて得られる値）を文字列幅とする。そして、該文字列幅とフィールド図形の矩形幅（所定の値）とを比較し、矩形幅を超えていれば帳票ページの再作成が必要であると判断する。これにより、帳票ページの再作成の手間をさらに削減することが可能となる。
【００６７】
ステップＳ１１０５で、帳票ページの再作成が不要である場合、処理がステップＳ１１０６に進む。帳票ページの再作成が必要である場合、処理がステップＳ１１０７に進む。ステップＳ１１０６において、帳票閲覧プログラムが、ステップＳ１１０２で特定したｔｅｘｔタグの値を、ステップＳ１１０４でユーザが入力した値に更新（置き換え、反映）する。ステップＳ１１０７において、帳票閲覧プログラムが、更新情報の作成を行う。更新情報は、ユーザが入力した値を反映した帳票ページを再作成するために必要な情報である。
【００６８】
図１５は、更新情報の一例である。
１３０２は、帳票閲覧画面１００１において帳票編集により変更されたフィールドの情報を示す。１３０３は、変更されたフィールドのフィールド名を示す。１３０４は、変更されたフィールドの表における行番号を示す。１３０５は、ユーザにより変更されたフィールドの値を示す。すなわち、１３０５は、ステップＳ１１０４においてユーザが入力した値である。それ以外の情報は、ステップＳ１１０２において特定したｔｅｘｔタグを囲むｇタグの情報が取得される。
【００６９】
図１３の説明に戻る。ステップＳ１１０８において、帳票閲覧プログラムが、帳票生成サーバ１０１に帳票閲覧画面の再生成するリクエストを送信する。リクエストの中に、ステップＳ１１０７で帳票閲覧プログラムが作成した更新情報１３０１が含まれている。帳票生成サーバ１０１は、帳票閲覧画面の再生成リクエストを受信し、リクエストの中の更新情報の情報に基づいてフィールドデータＤＢ３０７に格納されている該当帳票のフィールドデータを更新する。
【００７０】
図１６は、更新前のフィールドデータ１４０１の一例である。
フィールドデータは、１行目にフィールド名１４０２及び１４０３が記述され、２行目以降に表の各行のデータが記述されている。すなわち、レコード１４０４が表の１行目のデータであり、レコード１４０５が２行目のデータである。ステップＳ１１０８において、帳票閲覧プログラムから閲覧画面の再生成のリクエストを受信した帳票生成サーバ１０１は、リクエストに含まれる更新情報１３０１のフィールド名１３０３及び表の行番号１３０４から、更新すべきデータの箇所を特定する。続いて、帳票生成サーバ１０１は、更新情報１３０１に含まれるユーザが入力した値１３０５を用いて特定した箇所のデータを上書きする。そして、帳票生成サーバ１０１は、図５のステップＳ５０８以降の処理を実行する。
【００７１】
図１４（Ｂ）は、再生成された帳票閲覧画面の一例である。
フィールド図形１２０５は、データの値が複数行に表示されるため行高が増し、帳票ページに表示される表１２０４の行数が１行となる。なお、表の２行目以降のデータは、後続の帳票ページ（不図示）に続いて表示される。
【００７２】
上述したように、本実施形態によれば、帳票ページが編集された場合に、オーバレイ出力処理を再度実行するか否かを適切に判断し、編集作業を容易に行うことができる。これにより、帳票ページの編集がレイアウトに影響する場合には、フォーム情報の設定を反映した帳票ページの作成を実行できる。
【００７３】
（第２実施形態）
本実施形態では、ユーザにより帳票の編集操作が行われた際に、帳票ページの再生成（再オーバレイ）が必要ない場合について説明する。例えば、フォーム情報ファイル４０１のフィールド図形情報において、表の内側にあるフィールド図形は、データに応じて複数行で表示することを許可しない設定であった場合を考える。なお、これ以外の設定は、第１実施形態と同様の場合を考える。
【００７４】
図１７（Ａ）は、最適化処理が行われた後の帳票ページを示す。
本実施形態では、フォーム情報ファイル４０１のフィールド図形情報において表の内側にあるフィールド図形は、データに応じて複数行で表示することを許可しない設定である。このため、最適化処理が行われた後の帳票ページ１５０１のｔｅｘｔタグのｃｌａｓｓ属性１５０２には、ｍｕｌｔｉ＿ｌｉｎｅが付与されていない。したがって、帳票閲覧画面上で編集操作が行われた場合に、編集処理のステップＳ１１０５において、帳票閲覧プログラムが、帳票ページの再生成は不要であると判断し、帳票閲覧画面の再生成は行われない。
【００７５】
図１７（Ｂ）は、帳票閲覧画面上でユーザによる編集操作が行われた場合に、編集処理のステップＳ１１０６で表示される、ユーザが編集した後の帳票閲覧画面の一例である。
表１５０３の行数は、第１実施形態の図１４（Ｂ）と異なり２行のままであり、フィールド図形１５０４のデータの値はユーザが入力した値が途中で切れて表示される。これはフォーム情報ファイル４０１の設定に基づいて表示した結果であり、本実施形態では帳票ページを再度オーバレイ出力処理は実行されない。
【００７６】
上述したように、本実施形態によれば、帳票ページが編集された場合に、オーバレイ出力処理を再度実行するか否かを適切に判断し、編集作業を容易に行うことができる。これにより、帳票ページが変更された場合に、再度オーバレイ出力処理を実行することを抑制し、ブラウザ上での編集作業のパフォーマンス低下（遅延）を抑制できる。
【００７７】
（第３実施形態）
本実施形態では、ユーザにより帳票の編集操作が行われた際に、帳票ページの再作成（再オーバレイ）が必要な場合のその他の例について説明する。
図１８（Ａ）及び図１８（Ｂ）は、本実施形態における編集可能な帳票閲覧画面の一例である。図１８（Ａ）の帳票閲覧画面１００１では、フォーム情報ファイル４０１の設定に従い、帳票閲覧画面の「購入日付」フィールド１８０１において、「購入日付」が同じ値を有するフィールド図形が省略されている。すなわち、フィールド図形の値が同じ値を有する場合に、表において先頭以降の値が省略して描画される設定が反映されている。具体的には、フィールド図形１８０３及び１８０４のデータの値は、フィールド図形１８０２のデータの値と同じ「２０１４／１１／０５」であり、描画が省略される。
【００７８】
ここで、帳票閲覧画面において、フィールド図形１８０２の値を「２０１４／１１／２５」に変更すると、フィールド図形１８０２のデータと、フィールド図形１８０３及び１８０４のデータとが異なることになる。このような場合においても、帳票閲覧プログラムが、編集処理のステップＳ１１０５において再度オーバレイ出力処理が必要であると判断し、帳票生成サーバ１０１において帳票閲覧画面の再生成が実行される。編集処理のフローチャートは図１３を用いて説明した第１実施形態の場合と同様であるため、説明は省略する。以下で、再度オーバレイ出力処理を行う場合の処理について、図８を用いて説明する。なお、第１実施形態と共通の部分についてはその説明を省略し、差異部分についてのみ説明する。
【００７９】
ステップＳ８０４において、帳票生成部３０４が、ステップＳ８０２で実行した描画命令の対象フィールド図形の情報を取得する。ここで、フォーム情報ファイルから対象フィールド図形の属性情報の１つである「同じ値の省略時描画設定」が設定されているか否かも取得される。ステップＳ８０５において、帳票生成部３０４が、ステップＳ８０４で取得した「同じ値の省略時描画設定」を含む情報をオーバレイ情報ファイルに書き込む。
【００８０】
図１９は、オーバレイ情報ファイルの一例である。
オーバレイ情報ファイル９０１のレコード１９０１及び１９０２には、「同じ値の省略時描画設定」が書き込まれている。最適化処理のステップＳ１７０７（図１１）において、クライアント装置１０２が、オーバレイ情報ファイルから取得したレコード１９０１または１９０２に基づき、最適化処理の対象であるＳＶＧ形式の帳票ページのｇタグに対してａｔｔｒ属性を付与する。
【００８１】
図２０は、最適化処理が行われた後の帳票ページを示す。
最適化処理が行われた後の帳票ページ１６２０には、最適化処理のステップＳ１７０７において、ａｔｔｒ属性２００１の値が「ｓａｍｅ＿ｄａｔａ：ｏｍｉｔ」として付与されている。
【００８２】
帳票閲覧画面上でユーザにより帳票の編集操作が行われた際に、編集処理（図１１）のステップＳ１１０５において、帳票閲覧プログラムが、帳票ページの再作成（再オーバレイ）が必要か否かを判断する。具体的には、第１実施形態の場合と同様に、帳票閲覧プログラムが、ステップＳ１１０２で特定した編集対象のｔｅｘｔ要素のａｔｔｒ属性の値が「ｓａｍｅ＿ｄａｔａ：ｏｍｉｔ」であるか否かを確認する。ａｔｔｒ属性の値が「ｓａｍｅ＿ｄａｔａ：ｏｍｉｔ」である場合に、帳票閲覧プログラムが、再度帳票ページを作成する（再度オーバレイ出力処理を実行する）必要があると判断する。
【００８３】
ステップＳ１１０８において、帳票閲覧プログラムが、帳票生成サーバ１０１に帳票閲覧画面の再生成するリクエストを送信する。帳票生成部３０４が、受信したリクエストの中に含まれる更新情報に基づいてフィールドデータＤＢ３０７に格納されている該当帳票のフィールドデータを更新する。続いて、再度帳票ページの作成を行うが、このとき、フォーム情報ファイル４０１に定義されたフィールドの設定に従い、データのソートを行っても良い。本実施形態では、「購入日付」フィールド１８０１に昇順設定がされているものとする。そして、再度オーバレイ出力処理を実行する際には、新しくユーザにより入力された値である「２０１４／１１／２５」でフィールドデータを更新したうえで、「購入日付」のデータで昇順にソートしつつ帳票ページの作成を実行するものとする。
【００８４】
図１８（Ｂ）は、上述した設定により再度オーバレイ出力処理を実行し、クライアント装置１０２に返却された帳票閲覧画面の一例である。
図１８（Ａ）に示したフィールド図形１８０２のデータの値（日付）が、フィールド図形１８０５のデータの値よりも後の日付に変更されたので、再度オーバレイ出力処理を実行した際のソート処理により、表の行１８０６がページの最後に表示される。
【００８５】
上述したように、本実施形態によれば、帳票ページが編集された場合に、オーバレイ出力処理を再度実行するか否かを適切に判断し、編集作業を容易に行うことができる。帳票ページの編集がレイアウトに影響する場合には、フォーム情報の設定を反映した帳票ページの作成を実行できる。
【００８６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８７】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００８８】
１０１    帳票生成サーバ
１０２    クライアント装置
１０３    プリンタ
【図１】
0006508978.tif 000002
【図２】
0006508978.tif 000003
【図３】
0006508978.tif 000004
【図４】
0006508978.tif 000005
【図５】
0006508978.tif 000006
【図６】
0006508978.tif 000007
【図７】
0006508978.tif 000008
【図８】
0006508978.tif 000009
【図９】
0006508978.tif 000010
【図１０】
0006508978.tif 000011
【図１１】
0006508978.tif 000012
【図１２】
0006508978.tif 000013
【図１３】
0006508978.tif 000014
【図１４】
0006508978.tif 000015
【図１５】
0006508978.tif 000016
【図１６】
0006508978.tif 000017
【図１７】
0006508978.tif 000018
【図１８】
0006508978.tif 000019
【図１９】
0006508978.tif 000020
【図２０】
0006508978.tif 000021