JP2019106013A - 情報処理システム、制御方法とそのプログラム - Google Patents

情報処理システム、制御方法とそのプログラム Download PDF

Info

Publication number
JP2019106013A
JP2019106013A JP2017238086A JP2017238086A JP2019106013A JP 2019106013 A JP2019106013 A JP 2019106013A JP 2017238086 A JP2017238086 A JP 2017238086A JP 2017238086 A JP2017238086 A JP 2017238086A JP 2019106013 A JP2019106013 A JP 2019106013A
Authority
JP
Japan
Prior art keywords
graph
information
field
output
output data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017238086A
Other languages
English (en)
Inventor
加藤 豊
Yutaka Kato
豊 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2017238086A priority Critical patent/JP2019106013A/ja
Priority to US16/215,367 priority patent/US20190179877A1/en
Publication of JP2019106013A publication Critical patent/JP2019106013A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】変更された値に応じてウェブブラウザがグラフの表示を更新する。【解決手段】情報システムは、ウェブブラウザを有するクライアント装置と、ウェブブラウザに表示される帳票を提供する帳票生成サーバと、を含む情報処理システムであって、帳票生成サーバは、変更された帳票の出力データの位置を特定し、出力データの変更に伴い、表示中のグラフを更新するプログラムを提供する提供手段と、提供手段によって提供されたプログラムを実行したクライアント装置のウェブブラウザが、変更された出力データに関連するグラフを特定し、特定されたグラフに含まれるフィールドと、位置のフィールドとが一致するかを判定する判定手段と、判定手段によって一致すると判定されたことに伴い、ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更手段と、を有する。【選択図】図19

Description

本発明は、帳票を表示する情報処理システム、制御方法とそのプログラムに関する。
帳票の作成方法としては、以下の方法があった。すなわち、帳票の雛型となるフォームファイルを、専用のアプリケーション(フォームファイル編集エディタ)を用いて作成しておき、フォームファイルに対して、フィールドデータをオーバレイする。つまり、フォームファイル内の各フィールドに、対応するフィールドデータを流し込んで適用する。これにより、帳票(例えばPDF形式のファイル)を作成する。帳票を印刷する際には、サーバにおいてオーバレイを実行して作成した帳票を、クライアント装置がプリンターに印刷させる。
このように、もともと帳票は印刷して使用される形態がほとんどであった。しかし、近年、紙の省資源化を目的としてタブレットデバイスやPC等のデバイスに帳票を表示し、必要な出力ページのみを印刷する形態も多くなってきている。具体的には、保険帳票をタブレットデバイスやPC等のデバイスで顧客に提示する形態がある。
デバイスに表示される帳票には表だけでなく、グラフが含まれることがある。例えば保険帳票の場合、顧客への保険帳票のスムーズな説明や、商品の視覚的インパクトを目的として、表データをグラフで表示する形態がある。その場合、説明の最中に商品の価格(例えば保険料)を割引価格に変更し、その保険料をグラフに反映させたいという要望がある。特許文献1は、作成目的に応じてグラフ種別を決定し、決定した種別のグラフを作成するグラフ作成プログラムが開示されている。
特願2012−286542
しかし特許文献1の技術では、データの変更に伴い、サーバでグラフの画像を再作成する必要がある。グラフの再作成の度にクライアント装置がサーバに対して問い合わせるのはネットワーク帯域の観点から必ずしも良いとは言えない。
また、汎用的なユーザー操作を受けて、Webブラウザーにより表示される帳票を変化させることが難しいという問題があった。
本発明では、変更された値に応じてウェブブラウザが帳票の表示を更新することを目的とする。
本発明は上記課題を鑑みたものであり、以下の手段を有することを特徴とする情報処理システムである。すなわち、ウェブブラウザを有するクライアント装置と、前記ウェブブラウザに表示される帳票を提供する帳票生成サーバと、を含む情報処理システムであって、前記帳票生成サーバは、変更された前記帳票の出力データの位置を特定し、前記出力データの変更に伴い、表示中のグラフを更新するプログラムを提供する提供手段と、前記提供手段によって提供されたプログラムを実行した前記クライアント装置のウェブブラウザは、変更された前記出力データに関連するグラフを特定し、特定されたグラフに含まれるフィールドと、前記位置のフィールドとが一致するかを判定する判定手段と、前記判定手段によって一致すると判定されたことに伴い、ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更手段と、を有する。
本願発明により、変更された値に応じてウェブブラウザが帳票の表示を更新することができる。
本実施形態に係る情報処理システムの構成例を示す図。 本実施形態に係るハードウェア構成例を示す図。 本実施形態に係る、帳票生成サーバが有する機能を示す図。 オーバレイ処理の概念図。 ウェブ帳票閲覧情報を生成する処理のシーケンス図。 ログイン画面を示す図。 帳票選択画面を示す図。 オーバレイ処理のシーケンス図。 出力ページ情報の一例を示す図。 複合フォームファイル1001を構成するフォームファイルの一例を示す図。 グラフ1007のグラフ属性の一例を示す図。 フィールドデータの一例を示す図。 SVG形式の出力ページの構成例を示す図。 実施例1における、グラフ生成処理のシーケンス図。 (a)は実施例1のグラフ生成処理を実行するためのプログラムの一を示す図、(b)は実施例1における、識別情報の付与処理を実行するためのプログラムの一例を示す図、(c)は実施例1における、識別情報の付与処理を実行する処理を示すシーケンス図。 実施例1における、識別情報が付与された後の出力ページ(SVG)の一例を示す図。 ウェブ帳票閲覧情報に基づいて生成された画面表示の一例を示す図。 実施例1の生成されたSVG形式のグラフの構成例を示す図。 実施例1における、グラフ更新処理のシーケンス図。 実施例1における、グラフ更新処理を実行するためのプログラムの一例を示す図。 実施例1における、更新後の画面表示の一例を示す図。 実施例2における、ウェブ帳票閲覧情報に基づいて生成された画面表示の一例を示す図。 実施例2における、出力ページ情報の一例を示す図。 実施例2における、グラフ生成処理のシーケンス図。
以下、図面を用いて本発明に係る実施形態を説明する。まず、本明細書で使用する用語について説明する。
<用語説明>
・フォームファイル
帳票のテンプレートとなる情報を定義したファイル。専用のフォームファイル設計エディタで編集される。フォームファイルには、自社住所等の固定的な文字列や、自社企業ロゴの画像等の定義も含まれる。本実施例における帳票とは、データ(後述のフィールドデータ)を出力して表示するためのグラフや表を指す。
・フィールド
可変データ(後述のフィールドデータ)を受け取る要素であり、フォームファイルに定義される。フィールドが有する名前によって、フィールドデータと関連付けられる。
・フィールドオブジェクト
フォームファイルに定義され、フィールドに流し込まれた可変データ(後述のフィールドデータ)を出力するためのオブジェクト。フォントサイズ等の見た目は、フィールドではなくフィールドオブジェクトに設定される。フィールドとフィールドオブジェクトはフォームファイル内で関連付けられている。
・フィールドデータ
フォームファイルのフィールドに流し込まれるテキスト形式のデータ。例えば、フィールドが「国」であれば、それに流し込まれるに流し込まれる「日本」、「イタリア」等の個々の生データがフィールドデータである。
・フィールドデータファイル
複数のフィールドデータを集めたファイル。
・グラフ属性
グラフオブジェクトが持つグラフに関する属性である。グラフオブジェクトとは、フィームファイルに定義されるグラフを描画するためのオブジェクトであり、フィールドオブジェクトの一種である。グラフオブジェクトは、グラフで使用するフィールドの定義や、グラフ種類、線グラフの色等の見た目を制御する情報定義を有し、フォームファイルに格納される。
・オーバレイ
フィールドにフィールドデータを流し込み、フィールドオブジェクトに定義されたフォントサイズ等を考慮してレイアウト処理を行い、フォームファイルとフィールドデータを重ね合わせて、出力ページを出力すること。オーバレイしたデータを紙ではなく、電子ファイルとして出力することも可能であり、本明細書において、印刷することやPDF等の文書生成を実行することを「オーバレイ」と称する。
・出力ページ
オーバレイした結果、出力される印刷物もしくは文書の各ページ。形式はPDFやSVG等がある。
・出力データ
オーバレイした結果、出力ページに出力されたデータ。
・出力ページ情報
出力データを含む出力ページに関する情報。各出力データの出力座標等を持つ。後述のウェブ帳票閲覧情報構築の際に利用される情報。
図1は、本実施形態の情報処理システムの構成例を示す図である。図1に示す情報処理システムは、帳票生成サーバ101とクライアント装置102を備える。帳票生成サーバ101はオーバレイ処理やウェブ帳票閲覧情報の生成処理を実行する。具体的に帳票生成サーバ101は、テキストデータであるフィールドデータ406と所定のフォームファイル401とを重ね合わせて出力ページを生成し、プリンタドライバーに指示してその出力ページを電子ファイルとして生成する。そして帳票生成サーバ101は、生成された電子ファイルを用いて帳票を閲覧できるウェブ帳票閲覧情報を生成する。ウェブ帳票閲覧情報とは、ネットワークを介して配信できるウェブブラウザ上で動作するウェブアプリケーションである。多くの場合、これらのウェブアプリケーションは、ウェブページを表現するマークアップ言語(HTML)及びウェブブラウザ上で動作するプログラミング言語(JavaScript(登録商標))により動作する。帳票生成サーバ101が出力ページ、及び出力ページ情報を格納したファイルのみを生成し、クライアント装置102がそのファイルを用いてウェブ帳票閲覧情報を表示する構成でも良い。
クライアント装置102は、帳票生成サーバ101からウェブ帳票閲覧情報、またはグラフ描画で必要な情報を受信し、表示する。さらにクライアント装置102は、ユーザ操作を検知し、検知されたユーザ操作に応じて、描画されたグラフを更新する。具体的にはタブレット端末やPC等の端末が挙げられる。ユーザ操作は、クライアント装置102がタブレット端末である場合は表示画面に対するタッチ操作であり、PCである場合はキーボードによる入力操作等である。以下の説明では説明の都合上、クライアント装置102がタブレット端末である場合を想定した例で説明する。プリンタ103は、クライアント装置102からリクエストを受信して帳票ファイルを印刷する。
各種装置101〜103はネットワーク100により通信可能に接続されている。ネットワークはデータの送受信が可能であればどのような形態でもよい。また、クライアント装置102から帳票生成サーバ101への通信手段と、クライアント装置102からプリンタ103への通信手段は異なっていてもよい。
図2は、帳票生成サーバ101とクライアント装置102のハードウェア構成を示すブロック図である。今回は説明の都合上、帳票生成サーバ101を例に説明する。
CPU201は、ROM202、RAM203などからプログラムを取り出してプログラムの命令を実行し、帳票生成サーバ101の制御を行うユニットである。後述のシーケンスはこのプログラムの命令が実行されることにより実現される。また、CPU201は内部バスに接続される各ブロックを制御する。ROM202は、アプリケーションプログラムおよびOS、BIOSを含む組込済みプログラム、およびデータ等が記録されている記憶装置である。
RAM203は、CPU201が命令を実行する際に使用するワークメモリである。ROM202等に保存されたOSやアプリケーション等のプログラムがRAM203へとロードされ、そのプログラムの命令をCPU201が順次読みだすことで命令を実行する。
HDD204は基本ソフトウェアであるOSやソフトウェアモジュールが記憶されている記憶装置であり、SSD(ソリッドステートドライブ)などの間接記憶装置でもよい。
入力装置205は、不図示のキーボードやポインティングデバイスなどである。出力装置206にはディスプレイが接続される。I/F207は帳票生成サーバ101とネットワーク100とを接続するためのインターフェースである。
帳票生成サーバ101の起動後、CPU201によりBIOSが実行され、OSがHDD204からRAM203に実行可能にロードされる。CPU201はOSの動作に従って後述の各種ソフトウェアモジュールをHDD204からRAM203に随時、実行可能にロードする。
図3は、帳票生成サーバ101が有する機能を示す図である。なお各種機能のプログラムは、HDD204に記憶されており、CPU201によってRAM203にロードされることで実行される。
アクセス制御部301は、クライアント装置102からのリクエストに応じてユーザ認証を行う機能である。ウェブページ生成部302は、クライアント装置102にレスポンスとして返すウェブページを生成する機能である。ウェブ帳票閲覧情報であるウェブアプリケーションに必要なHTML、JavaScriptなどのファイルもウェブページ生成部302が生成し、クライアント装置102に返す。データアクセス部303は、各帳票関連データ格納部305〜310にアクセスする機能である。
出力ページ生成部304は、データアクセス部303を介して、データベースから読み出したフォームファイル401とフィールドデータ406とを重ね合わせて、印刷データを生成する機能である。また、出力ページ生成部304は、生成した印刷データをプリンタドライバーなどのソフトウェアを用いて出力ページの電子ファイルを生成する。その電子ファイルをさらにSVG等、別のファイル形式に変換する機能も有する。
帳票関連データ格納部305は帳票関連データを格納する。帳票関連データは帳票名、所有者など帳票に関する情報である。また、帳票関連データ格納部305は、帳票とフォームファイル、フィールドデータとを関連付けて管理している。さらに帳票関連データ格納部305は、帳票と、オーバレイの結果である出力ページおよび後述の出力ページ情報とを関連付けて管理している。帳票関連データ格納部305を用いることで、例えば、ある出力ページがどのフォームファイルから生成されたのかを特定することができる。
フォーム格納部306はフォームファイルを格納する。フィールドデータ格納部307は、フィールドデータを格納する。出力ページ格納部308は、出力ページ生成部304が生成した出力ページを格納する。出力ページ情報格納部309は、オーバレイ処理で生成された出力ページ情報を格納する。帳票部品情報格納部310は帳票部品情報を格納する。帳票部品情報とは例えば、帳票の一部分を拡大するためのフォーカス機能等の情報が含まれるが、帳票部品情報の詳細な説明は省略する。
次に、一般的なオーバレイ処理について詳細に説明する。図4は、帳票生成サーバ101におけるオーバレイ処理の概要図である。フォームファイルは専用のフォームファイル設計エディタを用いて作成され、ファイルとして保存される。フォームファイルは、フィールドデータに依存しない固定的なオブジェクト(フォームオブジェクト)と、受け取ったフィールドデータを指定した出力書式に従って表示するフィールドオブジェクトから構成されていることが一般的である。フォームオブジェクトの例としては具体的に、帳票等を作成する際に用いられる会社のロゴや連絡先等の固定の情報を含むオブジェクトである。
フィールドオブジェクトを作成するには、予めフィールドデータを受け取るための要素であるフィールドを作成する必要がある。フィールドはフォームファイル設計エディタの専用画面から作成することができる。フィールドオブジェクトを作成すると、そのフィールドオブジェクトの作成元であるフィールドと関連付く。
例えば、表形式のフィールドオブジェクト(表オブジェクト)402を作成すると、その表オブジェクトの作成元であるレコードフィールド403と関連付く。レコードフィールド403とは、フィールドデータをレコード単位に受け取るためのフィールドである。また、フィールドオブジェクト404を作成すると、そのフィールドオブジェクト404の作成元である集計フィールト405と関連付く。集計フィールト405とは、どのような集計方法を実行してフィールドデータを生成するかを指定するフィールドである。
帳票生成サーバ101は、フィールドオブジェクトが定義されたフォームファイル401と、そのフィールドオブジェクトに対応するフィールドデータ406とを読み込む。そして帳票生成サーバ101は、読み込んだフォームファイル401とフィールドデータ406とを重ね合わせてオーバレイを実行し、オーバレイの出力結果407が出力される。以上が帳票生成サーバ101で実行さえるオーバレイ処理の一例である。
次に図10と図11を用いて、複合フォームファイルの編集処理を説明する。複合フォームファイルとは、幾つかのフォームファイルをまとめて1つの帳票ファイルとして出力するための情報である。複合フォームファイルを作成することで、複合フォームファイルに含まれる複数のフォームファイルを切り替えながら帳票を出力できるようになる。
まず図10を用いて複合フォームファイルを構成するフォームファイルについて説明する。フォームファイル設計エディタを用いることで、複合フォームファイル1001を作成し、保存することができる。今回、複合フォームファイル1001は複数のフォームファイル(1002および1003)で構成されているものとして説明する。複合フォームファイルに定義された各フォームファイルの定義を「フェース」といい、図10において表示されるフォームファイルを切り替える単位でもある。各フェースは、複合フォームファイルで一意となる名前(フェース名)を持つ。今回は、フォームファイル1002のフェース名は「Face1」、フォームファイル1003のフェース名は「Face2」であるものとする。
フォームファイル設計エディタを用いることで、複合フォームファイルに定義された各フォームファイルを画面で確認することが可能である。例えば図10(a)において、「Face1」が選択されると、左ペインのフェース一覧ツリーのフォームファイル1002のアイコンが反転表示となり選択中であることが明示される。一方の右ペインでは、Face1の中身が表示される。続いて、図10(b)において、「Face2」が選択されると、左ペインのフォームファイル1003のアイコンが反転表示となり、右ペインではFace2の中身が表示される。
フォームファイル設計エディタでは、左ペインでフォームファイルを選択した状態で、さらにそのフォームファイルの中身を編集できる。例えば、フォームファイル1003(Face2)の中身には、表オブジェクト1006およびグラフ1007が定義されている。表オブジェクト1006は、「年齢区分」、「商品A_月額保険料」、「商品B_月額保険料」という3つのフィールドと、それらフィールドから生成されたフィールドオブジェクトによって構成されている。フォームファイル1003は、フィールドデータをレコード単位に受け取る形式になっており、1ページに6レコード分(6行分)のフィールドデータを表示する設定になっている。グラフ1007には、表オブジェクト1006のデータをグラフ化したものである。今回は、「年齢区分」フィールドに流し込まれたフィールドデータをグラフのX軸ラベルとして描画し、「商品A_月額保険料」フィールドと「商品B_月額保険料」フィールドに流し込まれたフィールドデータに基づいてグラフが描画される。
次に、図11を用いて、グラフ属性について説明する。グラフの設定は、フォームファイル設計エディタによるフォームウェア保存時に「グラフ属性」としてフォームファイル内に保持される。今回は、JSON(JavaScript Object Notation)形式で示しているが、その形式には限定されない。
グラフ属性1101は、フォームファイルに含まれるグラフ1007に関する属性を示している。グラフ属性1101は、「attribute_id」は、グラフ属性を区別するための識別子であるグラフ属性識別子1102であり、フォームファイル内で一意に識別される。「type」はグラフ種類1103である。今回は、グラフ種類1103には折れ線グラフを指定する「line」が設定されている。「series」は、グラフにプロットする系列データ指定1104である。今回は、2つの系列データに関する詳細な設定がされる。「field_name」は系列データとして利用するフィールド名1105、「color」は系列データを折れ線として表示する場合の色設定1106である。本例では「商品A_月額保険料」フィールドのデータを赤い折れ線で、「商品B_月額保険料」フィールドのデータを青い折れ線でグラフ化する設定されている。
「label」はグラフのX軸ラベルに使用するラベルフィールド名1107で、今回は「年齢区分」フィールドが設定されている。オーバレイ処理では、読み込まれたフィールドデータが「年齢区分」、「商品A_月額保険料」、「商品B_月額保険料」の3つのフィールドに流し込まれる。グラフ1007の場合、そのグラフ属性1101と表オブジェクト1006を構成する、3つのフィールドに関連付くフィールドオブジェクトに従って生成される。このようにしてフォームファイルに連動した表とグラフを含む帳票が生成される。
次に、図12を用いて複合フォームファイルに流し込むためのフィールドデータ406を説明する。図12はフィールドデータの一例を示す。フォームファイル関連定義1201には、フォームファイル切り替え命令1202およびフェース切り替え命令1203が定義されている。帳票生成サーバ101はフィールドデータ406を読み込んだ際、フォームファイル関連定義1201に従って、各命令を解釈しデータを流しこむフォームファイルおよびフェースを特定する。図12では、フォームファイル切り替え命令1202に「複合フォームファイル1」、フェース切り替え命令1203に「Face1」が設定されているため、「複合フォームファイル1」の「Face1」のフォームファイルに定義された表Aに対してデータブロック1204が流し込まれる。表Aとは、図10(a)の右ペインに記載の表に相当する。
さらにその下には、フォームファイル切り替え命令1206に「複合フォーム1」、フェース切り替え命令1207に「Face2」が設定されているため、「複合フォーム1」のフォームファイルに定義された表Bに対してデータブロック1205が流し込まれる。表Bとは、図10(b)の右ペインに記載の表に相当する。このようにして、複合フォームファイルとそこに流し込まれるフィールドデータがオーバレイされて帳票が生成される。
[実施例1]
実施例1では、ウェブブラウザが、変更された値に応じて帳票の表示を更新するための処理について説明する。
まず図5を用いて、ウェブ帳票閲覧情報を生成する処理について説明する。図5は、ウェブ帳票閲覧情報を生成するためのシーケンス図である。まず、クライアント装置102のウェブブラウザは、ユーザの操作により、帳票生成サーバ101へのログイン操作を受け付ける(S501)。その際のログイン画面の一例を図6に示す。ユーザは、ログイン画面601のユーザ名入力テキストボックス602とパスワード入力テキストボックス603にユーザ名とパスワードを入力し、ログインボタン604を押下することで、帳票生成サーバ101に対してログインのリクエストを送信する。
帳票生成サーバ101のアクセス制御部301はクライアント装置102から受信したログインリクエストの内容に応じて、ログイン処理を行う(S502)。アクセス制御部301はBasic認証を行い、ユーザ名とパスワードが有効であることが判断された場合、S503の処理に進む。有効でないと判断された場合は、不図示の処理によってクライアント装置102に対してエラーを返す。
帳票生成サーバ101のウェブページ生成部302はログインしたユーザの情報に応じて、帳票選択画面を生成する(S503)。帳票選択画面701の一例を図7に示す。702は、現在ログインしたユーザのユーザ名を表示する領域である。703は、現在ログインユーザが所有する帳票一覧を表示するドロップダウンリストである。ドロップダウンリスト703に表示される内容は、ウェブページ生成部302がデータアクセス部303を介して帳票関連データ格納部305の帳票関連データから抽出した、ログインユーザが所有する帳票の帳票名である。
ボタン704〜708は帳票操作ボタンである。具体的に、ドロップダウンリスト703で選択された帳票に対して、ボタン704でプレビュー、ボタン705で編集可能なプレビュー、ボタン706で印刷操作、ボタン707でウェブフォーム編集、ボタン708でウェブ帳票閲覧を実行する。以降、ボタン708が押下された際の処理を中心に説明し、ボタン708以外のボタンが押下された後の処理については説明を省略する。
帳票生成サーバ101のアクセス制御部301は、S503で生成された帳票選択画面701を、ネットワーク100経由でクライアント装置102に送信する(S504)。クライアント装置102は帳票生成サーバ101からのレスポンスである帳票選択画面701を受信し、ウェブブラウザに表示する(S505)。
ユーザは帳票選択画面701のドロップダウンリスト703から帳票名を選択し、クライアント装置102はそのユーザによる選択操作を受け付ける(S506)。ユーザは帳票選択画面701のボタン708を押下することにより帳票生成サーバ101に対して帳票処理リクエストを送信する(S507)。その際、処理対象の帳票を特定できる情報も送信される。
帳票生成サーバ101のアクセス制御部301はクライアント装置102から帳票処理リクエストを受信する(S508)。そして、帳票生成サーバ101の出力ページ生成部304は、データアクセス部303を介して処理対象の帳票に関連するフォームファイルおよびフィールドデータファイルを取得する。
帳票生成サーバ101のアクセス制御部301は、S508で受信した帳票処理リクエストがウェブ帳票閲覧情報の生成リクエストかを判定する(S509)。具体的には、受信したリクエストのtypeパラメータを解析し、値が「webview」である場合に、ウェブ帳票閲覧情報の生成リクエストであると判定する。尚、リクエストのtypeパラメータは、上記で説明したグラフの種類を示す「type」とは異なるものであり、http通信におけるgetリクエスト内部に設定するパラメータに一種である。
S509でウェブ帳票閲覧情報の生成リクエストであると判定された場合、帳票生成サーバ101の出力ページ生成部304は、ウェブ帳票向けの出力ページを生成するオーバレイ処理を行う(S510)。その際、S508で取得したフォームファイルおよびフィールドデータファイルを使用する。一方、S509においてウェブ帳票閲覧情報の生成リクエストではないと判定された場合、帳票生成サーバ101の出力ページ生成部304は、通常の出力ページを生成するオーバレイ処理を行う(S511)。一般的なフローになるため、S511より後の処理については説明を省略する。また、S510とS511の詳細については、図8で後述する。
出力ページ生成部304は、S510もしくはS511で生成されたPDF形式の出力ページをSVG(スケーラブル・ベクター・グラフィックス)形式の出力ページに変換する(S512)。PDF形式からSVG形式に変換する理由としてまず、PDF形式の出力ページは、文字列や矩形等の各描画要素が個々のオブジェクトとして独立して保持されておらず、より基本的な線や面の描画命令の集合で実現される。例えば、矩形の場合、原点の移動命令や線分の描画命令で矩形が構成され、矩形としてのオブジェクトをPDF形式では認識できない。そのため、PDF形式のままでは、ウェブブラウザで各描画要素が編集しづらい。これを解消するためにS512では、各描画要素を独立して保存する、より編集しやすいSVG形式に出力ページを変換する。出力ページがSVG形式に変換された後、出力ページ生成部304はデータアクセス部303を介して生成されたSVG形式の出力ページを出力ページ格納部308に格納する。そして、SVG形式の出力ページを特定できる情報(帳票名等)を、帳票関連データを格納する帳票関連データ格納部305のレコードに追加する。
帳票生成サーバ101は、ウェブ帳票閲覧情報のURLをクライアント装置102に送信する(S513)。送信するURLの中には、S512で生成したSVG形式の出力ページを特定できる情報が含まれる。今回はURLの中に、出力ページに関連する帳票関連データの帳票名が含まれているものとする。
クライアント装置102は、S513で受信したURLを使用してウェブ帳票閲覧情報にリダイレクトするリクエストを帳票生成サーバ101に送信する(S514)。帳票生成サーバ101のウェブページ生成部302は、S514のリダイレクトリクエストの内容に基づいてウェブ帳票閲覧情報を生成する(S515)。生成されるウェブ帳票閲覧情報には、SVG形式の出力ページ、出力ページの閲覧、編集操作を制御するためのJavascriptプログラム、画面を構成するHTMLが含まれる。ウェブページ生成部302が、S514のリダイレクトリクエストに含まれる帳票名を利用して、データアクセス部303を介してリクエスト対象帳票に関連する出力ページを出力ページ格納部308から取得する。処理対象の帳票の出力ページが複数ある場合は、複数ページ分の出力ページを取得する。クライアント装置102は、Javascriptプログラムを用いて複数の出力ページとページ番号を関連付けて管理する。
帳票生成サーバ101は、S515で生成したウェブ帳票閲覧情報をクライアント装置102に返却する(S516)。クライアント装置102は、帳票生成サーバ101からのレスポンスを受け取り、ウェブ帳票閲覧情報に基づいて画面表示をウェブブラウザに表示する(S517)。複数の出力ページがある場合、1ページ目を最初に表示する。S517においては、後続のS518以降を実行する際に必要な情報を取得し終わるまでウェブブラウザ上に、ウェブ帳票閲覧情報をロード中であることを示すアイコンを描画する。
クライアント装置102は帳票生成サーバ101に対し、出力ページ情報の取得リクエストを送信する(S518)。取得リクエストは、画面を構成するJavascriptプログラムを用いてAjax(Asynchronous JavaScript + XML)が実行され、帳票生成サーバ101が開示するREST(Representational State Transfer)インターフェースに対して行われる。クライアント装置102は、帳票生成サーバ101のRESTインターフェースに対して、帳票名を指定して各種情報取得リクエストを送信する。
帳票生成サーバ101は、受信した取得リクエストに含まれる帳票名をもとに、データアクセス部303を介してリクエスト対象帳票に関連する各種情報を取得する(S519)。具体的には、出力ページ情報を出力ページ情報格納部309から取得し、グラフ属性をフォーム格納部306から取得する。グラフ属性は、後述のS815にて帳票生成サーバ101がフォーム格納部306に帳票名と関連付けて保存したものである。
帳票生成サーバ101は、S519で取得した各種情報をレスポンスとしてクライアント装置102に送信する(S520)。クライアント装置102は、取得した出力ページ情報およびグラフ属性を、帳票名と紐付けた状態でRAM203に保存する(S521)。これにより、クライアント装置102のJavascriptプログラムは、帳票名をキーとして特定の帳票に関連付けられた出力ページ情報およびグラフ属性にアクセス可能となる。
クライアント装置102のJavascriptプログラムは、現在表示されているページの番号を特定する(S522)。通常初回に表示する際には1ページ目が表示される。画面のロード中にユーザの操作によってページ遷移がされた場合、Javascriptプログラムはそれを検知して、RAM203で保持している現在表示中のページ番号情報を更新する。
クライアント装置102のJavascriptプログラムは、グラフ生成処理またはグラフの更新処理を実行する。グラフ生成処理とグラフの更新処理は、本ステップで帳票生成サーバ101から配信されたJavascriptプログラムにより制御される。Javascriptプログラムは、クライアント装置102のRAM203にブラウザプロセスと共にロードされ、ウェブブラウザ上に読み込まれたHTMLの操作やサーバへのリクエスト等を行う。
グラフの生成処理については図14で後述し、グラフ更新処理については図19で後述する。以上が、ウェブ帳票閲覧情報を生成する処理である。図17に、図5の処理で生成された画面表示1701の一例を示す。図5のシーケンスで生成されたSVG形式のグラフ1702が表示されている。表1703の出力データ1704が、グラフ1702上で折れ線グラフとしてプロットされている。
次に図8を用いてS510およびS511のオーバレイ処理を説明する。図8は帳票生成サーバ101における、フォームファイルおよびフィールドデータを用いたオーバレイ処理の動作を示したフローチャートである。S510とS511とでは基本的な処理が同じであるため、差分を説明しつつ両方の処理を図8で説明する。
帳票生成サーバ101は、処理の対象であるフィールドデータを読み込む(S801)。フィールドデータの一例は図12に示した通りである。帳票生成サーバ101は、読み込んだフィールドデータに、フォームファイル切り替え命令1202が含まれているかを判定する(S802)。フォームファイル切り換え命令1202が含まれていないと判定された場合、S805に進む。フォームファイル切り換え命令1202が含まれていないと判定された場合、S803に進む。
S802におけるフォームファイル切り替え命令1202に基づいて、帳票生成サーバ101はカレントフォームファイル情報を更新する(S803)。カレントフォームファイル情報とは、現在処理対象であるフォームファイルを覚えておくためのバッファ領域に格納される情報であり、帳票生成サーバ101のRAM203で管理される。帳票生成サーバ101は、フォームファイル切り替え命令で指定された切り替え先のフォームファイルをカレントフォームファイル情報として管理する。
帳票生成サーバ101は、S803でカレントフォームファイル情報として確保したRAM203の領域に設定した切り替え先のフォームファイルをRAM203に読み込む(S804)。帳票生成サーバ101は、読み込んだフィールドデータにフェース切り替え命令1203が含まれているかを判定する(S805)。含まれていないと判定された場合はS808に進み、含まれていると判定された場合はS806に進む。
帳票生成サーバ101は、カレントフェース情報を更新する(S806)。帳票生成サーバ101は、フェース切り替え命令で指定された切り替え先のフェースをカレントフェース情報として管理する。なお、複合フォームファイルではない通常のフォームファイルの場合も、仮想的なフェースがあるものとしてS806では処理する。帳票生成サーバ101は、S806でカレントフェースとした切り替え先のフォームファイルをRAM203に読み込む(S807)。
帳票生成サーバ101はレイアウト処理を行う(S808)。レイアウト処理とは、読み込んだフィールドデータをフィールドに流し込み、フィールドに紐づくフィールドオブジェクトに設定された文字サイズ等の各種属性に基づいて、文字列および矩形枠線等の関連する各種オブジェクトの配置を決める処理である。
帳票生成サーバ101は、このレイアウト処理がウェブ帳票向けの処理かを判定する(S809)。ウェブ帳票閲覧情報を構成する出力ページと、それ以外の用途に用いられる出力ページとで異なるオーバレイ処理を実行する必要があるため、S809の処理が行われる。S809における判定は、S509における判定結果に基づいて行われる。つまり、S510のオーバレイ処理を実行する場合はS811の処理に進み、S511のオーバレイ処理を実行する場合はS810の処理に進む。
S809においてウェブ帳票向けのレイアウト処理ではないと判定された場合、帳票生成サーバ101は1ページ毎に描画処理を行う(S810)。S808で実行されたレイアウト処理の結果に従い、文字列等の各種オブジェクトを実際に描画する。具体的には、WindowsのGDI(Graphics Device Interface)が提供するTextOut等の関数を用いて各種オブジェクトを描画する。
S809においてウェブ帳票向けのレイアウト処理であると判定された場合、帳票生成サーバ101は1ページ毎に描画処理を行う(S811)。S810と基本的に同じ処理ではあるが、フォームファイルのグラフ1007を描画しないようにする。
帳票生成サーバ101は、1ページ分の描画が完了したかを判定する(S812)。S808〜S811における各処理は、各ページの切れ目を意識して実行されているわけではない。1ページ分の描画が完了したかどうかの判定は、フィールドデータのオーバフロー検知により行う。具体的には、フィールドデータを表に流し込んでレイアウト・描画を繰り返す際、フォームファイルに定義された表の最大行数を超えるフィールドデータの読み込みを検知した際に、1ページ分の描画を完了したと判定する。
1ページの描画が完了していない場合は、S808に戻りレイアウト処理を継続する。1ページの描画が完了したと判断された場合には、S813に進む。
帳票生成サーバ101は、このオーバレイ処理がウェブ帳票向けのオーバレイ処理かを判定する(S813)。処理内容はS809と同様で、S509における判定結果に基づいて行われる。S813でウェブ帳票向けのオーバレイ処理ではないと判定された場合は、S816に進む。
S813でウェブ帳票向けのオーバレイ処理であると判定された場合は、帳票生成サーバ101が出力ページ情報を生成する(S814)。S814では具体的に、帳票生成サーバ101が、現在処理中のフォームファイルおよびフェースの名前、および現在の出力ページ数を元に、出力ページ情報に対して後述のページブロック912〜913の情報を追記する。さらに帳票生成サーバ101は、S808のレイアウト処理で算出した各出力データに関する情報を、後述の出力データ情報ブロック906に追記する。具体的に帳票生成サーバ101は、出力データごとに「フィールド名」、「出力データ識別子」、「位置・サイズ情報」を追記する。1ページ中に同じフィールドに関連付く出力データが複数存在する場合があるため、後述の「出力データ識別子」は各出力データで一意になるように生成される。また、帳票生成サーバ101は、S808のレイアウト処理の結果、現在の出力ページにグラフを出力した場合、出力ページ情報901のページブロック912に出力グラフ情報907を追記する。出力したグラフの属性識別子は、フォームファイルのグラフ属性1101から特定し、グラフ属性識別子908として追記する。さらに、フォームファイル内のグラフ属性1101から関連するフィールド(本実施例では「商品A_月額保険料」、「商品B_月額保険料」、「年齢区分」)を特定し、そのフィールドに紐づく出力データが出力されたページの番号を後述の出力グラフデータ範囲910に追記する。
帳票生成サーバ101は、データアクセス部303を介して生成された出力ページ情報を、出力ページを格納する出力ページ情報格納部309に格納する(S815)。そして、その出力ページ情報を特定する情報を、帳票関連データを格納する帳票関連データ格納部305に格納する。
帳票生成サーバ101は、フィールドデータの読み込みが完了したかを判定する(S816)。完了していればオーバレイ処理は終了し、完了していなければS801に戻りフィールドデータを読み込み、オーバレイ処理を続行する。以上がS510およびS511のオーバレイ処理である。
図9を用いて、S814で生成された出力ページ情報について説明する。図9は出力ページ情報の一例である。出力ページ情報はウェブ帳票閲覧情報を生成する際、またはグラフ描画を行う際に用いられる情報であり、図8のオーバレイ処理で追記される情報が記載されている。今回は、出力ページ情報のファイル形式はJSONフォーマットであるものとして説明するが、そのファイル形式には限定されない。
出力ページ情報901は複数のページブロック912〜913から構成される。ページブロック912とページブロック913は、各ページの出力ページに関する情報をまとめたブロックである。例えば、出力ページ情報901の1つ目のページブロック912は、ページ番号903、利用フォームファイル名904および利用フェース名905を有する。利用フォームファイル名904はその出力ページで利用されたフォームファイルの名前である。利用フェース名905はその出力ページで利用されたフェースの名前である。今回は、1ページ目に対し、フォームファイル「form_a」(フェース「face1」)が出力されていることがわかる。
出力データ情報ブロック906は、各出力ページに出力された出力データの情報である。フィールドデータは各フィールドに流し込まれ、関連付くフィールドオブジェクトの文字色やフォント属性に従って出力ページ上に描画される。出力データは、その描画された結果要素である。出力データ情報ブロック906には各出力データに情報が羅列される。出力データ情報ブロック906の1要素は、出力データに関連付く「フィールド名」(field_name)、「出力データ識別子」(id)、出力データの描画位置やサイズを特定する「位置・サイズ情報」(left,top,width,height)を有する。
出力グラフ情報907は出力ページに出力されるグラフに関する情報である。今回は、ページブロック912で特定されるページにのみグラフが存在しないため、例えば2つ目のページブロック913には出力グラフ情報が存在しないことが図9からわかる。出力グラフ情報907は、グラフ属性識別子908(attribute_id)、出力グラフ識別子909(id)、出力グラフデータ範囲910(target_page_range)、出力グラフ位置911(left,top,width,height)を有する。グラフ属性識別子908は、グラフ属性1101を識別するグラフ属性識別子1102と対応しており、どのグラフ属性に従って生成されたかを特定することができる。出力グラフデータ範囲910は、このグラフで使用された出力データのページ番号である。複数ページにまたがる場合、ページ番号はカンマ区切りで羅列される。今回は「1.2」と記載されていることから、出力グラフ情報907で特定されるグラフは1ページ目と2ページ目の出力データを用いて描写されることがわかる。以上が出力データ情報に関する説明である。
図13を用いて、SVG形式に変換された出力ページについて説明する。図13はSVG形式に変換された出力ページの一例である。上記で述べた通り、ウェブ帳票閲覧情報を生成する際に出力ページはSVG形式に変換される(S512)。出力ページSVG1301では、各描画要素が独立したオブジェクトとしてタグ形式で表現されている。SVGタグ1302には出力ページ全体の様々な描画要素が混在して収められる。テキストタグ1303は文字列要素であり、実際の描画文字列は<text>タグで囲まれ、その描画座標がタグ属性(xおよびy)で指定される。例えば、「<text x=”805” y=”146”>10代</text>」については、描画座標(805、146)で特定される部分に「10代」と描画することを意味する。テキストタグ1303以外にも、罫線タグ1304や矩形タグ1305により罫線や矩形描画を行う。以上がSVG形式の出力ページに関する説明である。
次に図14と図15(a)を用いて、ウェブ帳票閲覧情報を生成する際にクライアント装置102のJavascriptプログラムによって実行されるグラフ生成処理について説明する。図14はグラフ生成処理のフロー図であり、図15(a)はグラフ生成処理を行うためのJavascriptプログラムの一例である。以下、説明の都合上、グラフ生成処理を実行する主体がJavascriptプログラム(以下、プログラム)、またはそれを構成するプログラム(1501〜1510)であるものとして説明する。実際は、クライアント装置102のROM202等に保存されたOSやアプリケーション等のプログラムがRAM203へとロードされ、そのプログラムの命令を順次読みだして実行するCPU201が主体である。
プログラム1501は、帳票名に紐付いてRAM203に保存された出力ページ情報901を取得する(S1401)。プログラム1502は、現在表示中の出力ページに存在するグラフを取得する(S1402)。具体的にプログラム1502は、S1401で取得した出力ページ情報901に記載のページブロック912と、出力グラフ情報907を確認する。
プログラム1503は、現在表示中の出力ページに1つ以上グラフが存在するかを判定する(S1403)。具体的にプログラム1503は、S1401で取得した出力ページ情報において、出力グラフ情報があるかを確認する。出力グラフ情報があればexistメソッドの戻り値が真となり、グラフが存在すると判定される。出力グラフ情報が存在しないと判定された場合はグラフ生成処理を終了する。
出力グラフ情報があると判定された後、プログラム1504は、グラフ属性1101を取得する(S1404)。具体的にプログラム1504は、RAM203に保存された複数のグラフ属性から、出力グラフ情報907のグラフ属性識別子908で特定されるグラフ属性を取得する。フォームファイルには複数のグラフが定義可能であるため、RAM203に保存されたグラフ属性が複数である場合もある。今回、グラフ属性識別子908で特定されたグラフ属性は、グラフ属性1101(図11)であるものとする。
プログラム1505は、取得したグラフ属性1101に基づいて関連するフィールドを特定する(S1405)。具体的にプログラム1505は、S1404で取得したグラフ属性1101に記載された、フィールド名1105およびラベルフィールド名1107に定義されたフィールド名を確認し、フィールドを特定する。
プログラム1506は、グラフに表示する出力データを含むページを特定する(S1406)。具体的にプログラム1506は、S1401で取得した出力ページ情報901の出力グラフデータ範囲910に記載されたページ番号値(910)を取得することで、グラフ表示に必要な出力データを含むページを特定する。今回は出力グラフデータ範囲910より1ページ目と2ページ目の出力ページが特定される。
プログラム1507は、S1406で特定されたページの、S512でSVG形式に変換された出力ページSVG1301を特定する(S1407)。具体的には、RAM203に格納されている出力ページSVG1301を取得する。プログラム1508は、取得した出力ページSVG1301のテキストタグ1303に識別情報を付与する(S1408)。
S1408の処理を実行する前は、出力ページSVG1301のテキストタグ1303を確認することで文字列の有無は判断できる。しかし、その文字列がフィールドオブジェクトから生成され、フィールドに関連する出力データかどうかは判断できない。S1408の処理は、出力ページSVG1301の文字列がフィールドに関連のある出力データかどうかを判断しやすくするための処理である。テキストタグへの識別情報の付与処理については、図15(b)で後述する。
S1408は出力データの座標情報に基づいて識別情報が付与されるが、その形態に限定されない。文字列がどのフィールドに関連付いているかをプログラムが判断できればよく、出力ページSVG1301の走査時に座標情報をもとにリアルタイムで判断しても良い。プログラム1508は出力ページSVG1301を走査し、S1405で取得したフィールド名1105およびラベルフィールド名1107に関連のある出力データと判断したテキストタグ1303に識別情報を付与する。
プログラム1509は、S1408で付与した識別情報をもとにテキストタグ1303を特定し、出力データの値を取得する(S1409)。具体的にプログラム1509は、目的のフィールド名(例えばlabelFieldName変数の値である「年齢区分」等)をfield_name属性に持つテキストタグ1303を全て検出する。テキストタグの検索は、ウェブブラウザにロードされたHTMLやSVGの各タグ要素を操作するためのAPIをプログラム1509が呼び出すことで行われる。これらのテキストタグ要素操作APIは国際的な標準化団体等で標準化されており、各ウェブブラウザに標準的に実装されている。
プログラム1509は、各タグの値(例えば「10代」や「¥1,020」)とid(出力データ識別子)の値を取得し、フィールド名と紐付けた形でRAM203に保持する。プログラム1509は出力データの値の取得処理(S1409)を、3つのフィールド名に対して行う。例えば、X軸ラベルのデータとして、「年齢区分」フィールドに関連づく出力データを出力ページのテキストタグから取得する。系列1のデータとして、「商品A_月額保険料」フィールドに関連づく出力データを出力ページのテキストタグから取得する。系列2のデータとして、「商品B_月額保険料」フィールドに関連づく出力データを出力ページのテキストタグから取得する。
プログラム1510は、プログラム1509で取得した3つの(フィールドの)出力データ群を用いてグラフを生成する(S1410)。その際プログラム1510は、実データの他にもグラフのタイプ(棒グラフ、線グラフなど)を決定するためにグラフ属性1101も用いる。グラフ属性1101はRAM203に読み込まれている。本実施例では、プログラム1510はS1410で生成したグラフもSVG形式で出力するものとするが、ウェブブラウザで表示でき、プログラムからの容易な操作が可能であれば別のファイル形式でも構わない。
また、本実施例では出力ページSVG1301とは別にSVG形式のグラフを生成し(S1410)、ウェブブラウザに重ねて表示するよう制御するが、出力ページSVG1301に対して要素としてグラフSVGを追加する形態でもかまわない。出力データの値やグラフ属性1101に基づいて、グラフの各要素を描画していくが、SVGの各タグ要素をプログラムから直接出力するのは一般的ではない。グラフ生成用にデータを可視化する専用のjavascriptライブラリ等を使用するのが一般的である。本実施例でもライブラリを使用するため、プログラムからはSVG要素を直接生成はしない。以上がグラフの生成処理に関する説明である。図18に、図14の処理で生成されたグラフ1702の一例を示す。X軸ラベルの値1801や折れ線要素1802等が独立したタグ要素として記載されており、プログラムから操作可能な状態であることが分かる。
図15(b)と図15(c)を用いて、テキストタグへの識別情報の付与処理を説明する。図15(b)(プログラム1511)と図15(c)のフローは、プログラム1508から呼び出されることによって実行される。上記でも述べた通りプログラム1508は、S1408において、取得した出力ページSVG1301のテキストタグ1303に識別情報を付与する処理を行う。
まず、プログラム1512は、S1406で特定したページ全ての出力データ情報ブロック906を特定する(S1501)。各ページが有する出力データ情報ブロック906を特定するためには、S1401で特定した出力ページ情報と一致するページ番号903を確認することで行う。
プログラム1512は出力データ情報ブロック906の各出力データを走査し、プログラム1512の関数に指定されたフィールド名(fieldName)と合致するフィールド名の出力データ情報を、出力データ情報ブロック906の中から特定する(S1502)。今回は、出力データ情報ブロック906に記載されたフィールド名情報(field_name)が特定される。特定された出力データ情報のリストはRAM203に保持される(変数名:outputDataInTargetPageRange)。
プログラム1513は、プログラム1512で保持したリストの各出力データに対して処理を行う(S1503)。その処理においてプログラム1514は、出力ページSVG1301のテキストタグ1303を走査し、各テキストタグ1303に対して処理を行う(S1504)。プログラム1514に記載の変数elemはテキストタグの要素を示す。変数elemのメソッドを呼び出すことで、テキストタグの要素への属性追加等が行える。テキストタグの要素に属性を追加する処理については後述する。プログラム1515は、テキストタグ1303で表される文字列の開始位置座標(変数xおよび変数y)をRAM203に保持する(S1505)。
プログラム1516は、RAM203に保持した開始位置座標が、プログラム1512で取得した出力データ情報の外接矩形内に含まれるかを判定する(S1506)。具体的に、出力データの外接矩形の大きさは、出力データ情報ブロック906の出力データ情報であるleft,top,width,heightの値から求められる。S1506で含まれていないと判定された場合は、識別情報の付与処理を終了する。
S1506で含まれていると判定された場合、プログラム1517は、変数elemの属性追加メソッド(attr)を呼び出すことで、テキストタグの要素に対して2つの属性を追加する(S1507)。1つはfield_name属性であり、出力データ情報ブロック906内の出力データのフィールド名情報(field_name)を値として設定する。もう1つはid属性で、出力データ情報ブロック906の出力データのID情報(id)を値として設定する。
図16は、プログラム1508(または図15の(b)(c)で示された処理)により識別情報が付与された後の出力ページSVG1301の一例である。フィールドに関連付いた出力データであると判断されたテキストタグ1303には1601〜1603に示すように、識別子としてフィールド名情報(field_name)およびID情報(id)が付与されている。同じフィールドに関連付いた出力データが1ページに複数出力される場合も考慮して、1601〜1603では一意のID情報が付与されている。ID情報はオーバレイ処理で流し込まれた順にインクリメントして生成される。以上が識別情報の付与処理である。
次に図19と図20を用いて、図5のグラフ更新処理の詳細を説明する。図19は、クライアント装置102のJavascriptプログラムが行うグラフ更新処理のシーケンス図である。図20は、図19の処置を実行するためのJavascriptプログラムの一例である。
まず、プログラム2001は、ユーザが画面表示1701に対してタッチ操作を行ったかどうかを判断する(S1901)。タッチ操作が行われなかったと判定された場合、グラフ更新処理は終了する。タッチ操作が行われたと判定された場合、プログラム2001がウェブブラウザから呼び出される。変数eventには、ウェブブラウザが設定したタッチ操作に関する情報が格納される。
プログラム2002は、画面表示1701におけるタッチ箇所の要素情報を位置情報(変数xおよびy)として変数touchObjectに格納する(S1902)。プログラム2003は、現在表示されている画面表示1701の出力ページSVG1301を、帳票名と現在のページ番号から特定する(S1903)。出力ページSVG1301はRAM203に格納されており、後述のプログラム2008は、RAM203の出力ページSVG1301にアクセスできる状態となる。
プログラム2004は、タッチ箇所に出力データが存在するか判定する(S1904)。出力データが存在しないと判定された場合は、グラフ更新処理を終了する。S1904における判定方法としては具体的に、タッチ操作された箇所の位置情報(変数xおよびy)でも判定できるが、今回はタッチ操作された要素情報を使って判定するものとする。つまり、変数touchObjectにはタッチされた座標に存在するSVG構成要素(例えばテキストタグ1601)に関する情報がウェブブラウザにより格納される。プログラム2004は、変数touchObjectにテキストタグ1601が格納されており、さらに、そのテキストタグ1601がfield_name属性を持っていたら、タッチ箇所に出力データが存在すると判定する。field_name属性は、S1408で付与された属性である。
S1904で出力データが存在すると判定された後、プログラム2005は、不図示の出力データ更新ダイアログをユーザに対して表示し、出力データ更新ダイアログで入力された値を用いて出力ページSVG1301を更新する(S1905)。今回であれば、出力ページSVG1301が更新される。
クライアント装置102が出力データ更新ダイアログを表示している最中は、グラフ更新処理は中断されユーザからの入力操作を待機する状態となる。表示される出力データ更新ダイアログのテキストエリアには、S1904で特定された出力データの値をデフォルト値として表示する。ユーザはテキストエリアに対して任意の値を入力し、OKボタンを押下することで、この出力ページSVG1301の値を更新する処理が実行される。
プログラム2006は、帳票名に紐づく出力ページ情報901を取得する(S1906)。プログラム2007は、S1906で取得した出力データ情報に関連するグラフが存在するかどうか判定する(S1907)。具体的にプログラム2007は、S1906で取得した出力ページ情報901を確認し、現在ページのページブロック912〜913に出力グラフ情報907があるかを判定する。出力グラフ情報907がないと判定された場合は、グラフ更新処理を終了する。
S1907において、取得した出力データ情報に出力グラフ情報907が存在するかを判定された場合、S1908に進む。出力グラフ情報907が存在しないと判定された場合は、S1905において更新された出力ページSVG1301を用いて、表1703が更新され、グラフの更新処理が終了する。
S1907において出力グラフ情報907が存在すると判定された場合、プログラム2008は、出力グラフ情報907に含まれる出力グラフ識別子909に基づいて、グラフ属性1101を特定する(S1908)。
プログラム2007は、グラフ属性に含まれるフィールド名と、出力ページSVG1301で特定されたタッチ箇所のfield_name属性の設定値とが一致するかを判定する(S1909)。一致すると判定された場合はS1910の処理に進む。一致しないと判定された場合は、グラフ更新処理を終了する。
S1909の処理内容としては具体的に、出力ページ情報901のfield_name属性の値が、グラフ属性1101の系列データとして利用されるフィールド名1105もしくはラベルフィールド名1107と一致するかどうかを判断する。今回であれば、グラフ属性1101のフィールド名は「商品A_月額保険料」や「商品B_月額保険料」、「年齢区分」であり、出力データ情報のfield_name属性の値がこのいずれかであるかを判定する。
プログラム2008は、更新された出力ページSVG1301を取得し、プログラム2009は、S1905で更新された出力データSVGを用いて、グラフ1702を更新する(S1910)。
図21は、図19および図20で示したグラフ更新処理によって更新されたグラフを含む画面表示の一例である。表1703の出力データ2101がユーザにより変更された場合を示す。そして、その出力データ値に連動し、グラフ1702の折れ線グラフの対応するプロット2102も更新される。以上がグラフ更新処理に関する説明である。
本実施例では、グラフ全体を再作成するのではなく、変更したい一部分のみを更新し、ユーザ操作に応じてグラフ表示を変化させるために、ベクター形式(SVG)のグラフを用いる。SVGはDOM(Document Object Model)と呼ばれる国際的に標準化された仕様に基づいており、クライアントのウェブブラウザ上に配信・ロードされたjavascript(登録商標)プログラムから各要素を容易に操作できる。必要なデータが揃ってさえいれば、SVG形式のグラフを操作するためのjavascriptプログラムはウェブブラウザに配信された後、帳票生成サーバ101と通信することなく動作する。以上の構成により、クライアント装置102と帳票生成サーバ101間でやり取りを行うことなく、ユーザ操作に応じて帳票を変化させる事ができる。
[実施例2]
本実施例では、フォームファイルに表オブジェクト1006が存在せず、グラフ1007のみが存在する場合の処理について説明する。
図22は、本実施例におけるウェブ帳票閲覧情報に基づいた画面表示の一例である。グラフオブジェクトのみが存在するフォームファイルを用いてオーバレイ処理を実行すると、出力ページにはグラフ1702のみが存在する。表オブジェクトにフィールドデータが流し込まれた結果である出力データ(図17における1704)が、実施例2の出力ページSVG上に存在しない場合、実施例1のS1409のように出力ページSVGのテキストタグから出力データの値を取得することはできない。
本実施例では、出力ページSVG上に出力データが存在しない本実施例において、出力データを保持する処理を説明する。保持する出力データに対する変更を受け付けて、関連するグラフの表示を更新する処理については、図19(実施例1)のS1906以降と同様なので説明は省略する。また、実施例2に記載されていない部分については、実施例1に記載されていることと同様である。
図23は、本実施例における出力ページ情報2300の一例である。本実施例では、S814における出力ページ情報の生成処理が実施例1と異なる。実施例1のS814の処理に対して本実施例では、帳票生成サーバ101が出力ページ情報2300の出力データ情報ブロック2302に、「フィールド名」(field_name)、「出力データ識別子」(id)、「実データ」(data)2301を出力する。帳票生成サーバ101は、グラフに関連するフィールド(系列データもしくはX軸ラベルの指定されたフィールド)についてはオーバレイ処理の際に、グラフで利用したデータを出力データとみなして実データ2301を出力する。なお、実際に出力データの描画処理を行うわけではないので、出力データ情報ブロック906(実施例1)のように「位置・サイズ情報」(left,top,width,height)については出力データ情報ブロック2302に出力しない。
図24は、本実施例におけるグラフ生成処理のシーケンス図である。実施例1(図14)の場合とは異なり、グラフで利用する出力データの値は出力ページSVGではなく、出力ページ情報2300に存在する。つまり、出力ページSVGのテキストタグに識別情報を付与し、付与された識別情報で特定されたテキストタグから出力データの値を取得する処理(図14のS1406〜S1409)は、本実施例では不要となる。なお、上記で説明済みの処理については図24で同じ符番を振り、詳細な説明は省略する。
帳票生成サーバ101は、グラフに関連する各出力データの値の取得処理を行う(S2401)。具体的に帳票生成サーバ101は、S1405で特定したフィールド(以下、関連フィールド)から生成された出力データの情報を、出力ページ情報2300から検索する。帳票生成サーバ101は、出力ページ情報2300の出力データ情報ブロック2302のうち、「フィールド名」(field_name)がグラフの関連フィールドのフィールド名と一致するものを特定し、その「実データ」(data)2301の値を取得する。S1401において取得した出力データを用いてグラフを生成する。以上が実施例2におけるグラフ生成処理である。
尚、実施例2の出力ページSVGに出力データが存在しないため、S1905のようにタッチ操作からの出力データを更新する処理も行えない。これについては、図22の画面表示にオプション選択ユーザインターフェース2201等を設けることでユーザの操作を受け付け、ユーザの操作内容に応じてグラフを更新することもできる。オプション選択ユーザインターフェース2201についてはjavascriptプログラムによって実現できる。ユーザの操作により例えば、「15%」というオプションがオプション選択ユーザインターフェース2201で選択された場合、javascriptプログラムは、グラフに表示する各出力データの値を15%にしてグラフを更新する。
[その他の実施例]
上記の実施例において、画面表示に対するユーザ操作である「タッチ操作」について詳細に説明しなかったが、スワイプやタップ等の具体的な操作形態については問わない。
上記の実施例では説明の都合上、クライアント装置102に表示されるテーブルが「帳票」であるものとして説明したが、テーブル(あるいは表)の形態であればどのような形態でもよい。
また、本発明の目的は以下の処理を実行することによっても達成される。即ち、上述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
101 帳票生成サーバ
406 フィールドデータ
901 出力ページ情報
1001 複合フォームファイル
1006 表オブジェクト
1007 グラフ
1101 グラフ属性
1301 出力ページSVG
1501 Javascriptプログラム
1511 Javascriptプログラム

Claims (13)

  1. ウェブブラウザを有するクライアント装置と、
    前記ウェブブラウザにより前記クライアント装置の画面上に表示される帳票を提供する帳票生成サーバであって、前記帳票は表とグラフとを含み、前記グラフは前記表に含まれる出力データと前記出力データの要素であるフィールドとに対応して作成されることを特徴とする帳票を提供する帳票生成サーバと、
    を含む情報処理システムであって、
    前記帳票生成サーバは、
    前記ウェブブラウザにより表示される画面上でユーザが指定した、出力データの位置を特定し、前記出力データの変更に伴い、前記画面に表示中のグラフを更新するプログラムを提供する提供手段を有し、
    前記提供手段によって提供されたプログラムを実行した前記クライアント装置のウェブブラウザは、
    変更された前記出力データに関連するグラフを特定し、
    特定されたグラフに含まれるフィールドと、前記位置のフィールドとが同一であるかを判定する判定手段と、
    前記判定手段によって同一であると判定されたことに伴い、
    ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更手段として機能することを特徴する情報処理システム。
  2. 前記判定手段によって同一でないと判定された場合、
    前記変更手段によって前記グラフの表示を更新せず処理を終了することを特徴とする請求項1に記載の情報処理システム。
  3. 前記プログラムは、
    前記帳票に含まれる表とグラフの配置の情報を含む第一の出力ページ情報と、
    前記画面上に描画される描画要素と前記描画要素の描画位置の情報とを含み、前記第一の出力ページ情報を前記第一の出力ページ情報とは異なるファイル形式に変更したことで生成される第二の出力ページ情報と、
    を含むことを特徴とする請求項1または2に記載の情報処理システム。
  4. 前記第一の出力ページ情報は、
    特定の出力ページにおける、前記帳票に含まれる表の配置の情報である第一のページブロックと、
    前記第一のページブロックに関連するグラフの配置の情報と、前記グラフの識別子と、を含む第二のページブロックと、
    を含むことを特徴とする請求項3に記載の情報処理システム。
  5. 前記判定手段は、
    前記画面に表示中である帳票の前記第一の出力ページ情報に、前記第二のページブロックが含まれることを確認した後に、
    前記第二のページブロックに含まれる前記グラフの識別子に基づいて、前記グラフのフィールドを含むグラフ属性を特定し、
    特定されたグラフ属性に含まれるフィールドと、前記位置のフィールドとが同一であるかを判定することを特徴とする請求項4に記載の情報処理システム。
  6. 前記判定手段によって、前記画面に表示中である帳票の前記第一の出力ページ情報に、前記第二のページブロックが含まれていないことが確認された場合、
    前記変更手段は、
    前記ユーザ操作によって変更された出力データに基づいて、前記帳票に含まれる表の表示を変更することを特徴とする請求項5に記載の情報処理システム。
  7. 前記提供手段によって提供されたプログラムを実行した前記クライアント装置のウェブブラウザは、
    ユーザが指定した、出力データの位置に、前記フィールドが存在するかを判定する第二の判定手段を更に有し、
    前記第二の判定手段によって、前記位置に前記フィールドが存在すると判定された場合、
    ユーザ操作によって前記出力データを変更するためのダイアログを表示し、
    前記第二の判定手段によって、前記位置に前記フィールドが存在しないと判定された場合、
    前記ダイアログを表示することなく処理を終了することを特徴とする請求項1乃至6のいずれか一項に記載の情報処理システム。
  8. 前記情報処理システムは、
    前記表の配置の情報を含む第一の出力ページ情報と、前記画面上に描画される描画要素の描画位置の情報を含む第二の出力ページ情報と、を用いて、前記描画要素の描画位置が前記表の配置に含まれるかを判定する第三の判定手段と、
    前記第三の判定手段によって、前記描画要素の描画位置が前記表の配置に含まれることが判定されたことに伴い、前記第二の出力ページ情報に含まれる描画要素に対して、前記フィールドのフィールド名と識別情報を付与する付与手段と、
    を更に有し、
    前記第二の判定手段は、
    前記付与手段によって付与されたフィールド名を用いて、ユーザが指定した、出力データの位置に、前記フィールドが存在するかを判定することを特徴とする請求項7に記載の情報処理システム。
  9. 前記グラフは、
    前記第一の出力ページ情報が、前記第二のページブロックを含むことが確認された後に、
    前記第二のページブロックに含まれる前記グラフの識別子に基づいて、前記グラフのフィールドを含むグラフ属性を特定し、
    前記付与手段によって前記フィールド名と識別情報とが付与された前記第二の出力ページ情報と、前記グラフ属性と、を用いて生成されることを特徴とする請求項8に記載の情報処理システム。
  10. 前記ウェブブラウザは、
    前記画面上に描画される描画要素と前記描画要素の描画位置の情報とを含む第二の出力ページ情報が存在しない場合、
    前記表と前記グラフの配置の情報と、前記描画要素とを含む第一の出力ページ情報に基づいて、前記グラフを生成する生成手段を更に有することを特徴とする請求項1乃至9のいずれか一項に記載の情報処理システム。
  11. ウェブブラウザを有するクライアント装置と、
    前記ウェブブラウザにより前記クライアント装置の画面上に表示される帳票を提供する帳票生成サーバであって、前記帳票は表とグラフとを含み、前記グラフは前記表に含まれる出力データと前記出力データの要素であるフィールドとに対応して作成されることを特徴とする帳票を提供する帳票生成サーバと、
    を含む情報処理システムの制御方法であって、
    前記帳票生成サーバは、
    前記ウェブブラウザにより表示される画面上でユーザが指定した、出力データの位置を特定し、前記出力データの変更に伴い、前記画面に表示中のグラフを更新するプログラムを提供する提供ステップを有し、
    前記提供ステップによって提供されたプログラムを実行した前記クライアント装置のウェブブラウザは、
    変更された前記出力データに関連するグラフを特定し、
    特定されたグラフに含まれるフィールドと、前記位置のフィールドとが同一であるかを判定する判定ステップと、
    前記判定ステップによって同一であると判定されたことに伴い、
    ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更ステップとして機能することを特徴する情報処理システムの制御方法。
  12. ウェブブラウザによりクライアント装置の画面上に帳票を表示するクライアント装置の制御方法であって、
    前記帳票は表とグラフとを含み、前記グラフは前記表に含まれる出力データと前記出力データの要素であるフィールドとに対応して作成されることを特徴とし、
    前記ウェブブラウザにより表示される画面上でユーザが指定した、出力データの位置を特定し、前記出力データの変更に伴い、前記画面に表示中のグラフを更新するプログラムを実行した前記クライアント装置のウェブブラウザは、
    変更された前記出力データに関連するグラフを特定し、
    特定されたグラフに含まれるフィールドと、前記位置のフィールドとが同一であるかを判定する判定ステップと、
    前記判定ステップによって同一であると判定されたことに伴い、
    ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更ステップとして機能することを特徴するクライアント装置の制御方法。
  13. コンピュータを、
    ウェブブラウザによりクライアント装置の画面上に帳票を表示するクライアント装置として機能させるプログラムであって、
    前記帳票は表とグラフとを含み、前記グラフは前記表に含まれる出力データと前記出力データの要素であるフィールドとに対応して作成されることを特徴とし、
    前記ウェブブラウザにより表示される画面上でユーザが指定した、出力データの位置を特定し、前記出力データの変更に伴い、前記画面に表示中のグラフを更新するプログラムを実行した前記クライアント装置のウェブブラウザは、
    変更された前記出力データに関連するグラフを特定し、
    特定されたグラフに含まれるフィールドと、前記位置のフィールドとが同一であるかを判定する判定手段と、
    前記判定手段によって同一であると判定されたことに伴い、
    ユーザ操作によって変更された出力データに基づいて、前記グラフの表示を変更する変更手段として機能することを特徴するクライアント装置として機能させるプログラム。
JP2017238086A 2017-12-12 2017-12-12 情報処理システム、制御方法とそのプログラム Pending JP2019106013A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017238086A JP2019106013A (ja) 2017-12-12 2017-12-12 情報処理システム、制御方法とそのプログラム
US16/215,367 US20190179877A1 (en) 2017-12-12 2018-12-10 Information processing system, control method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017238086A JP2019106013A (ja) 2017-12-12 2017-12-12 情報処理システム、制御方法とそのプログラム

Publications (1)

Publication Number Publication Date
JP2019106013A true JP2019106013A (ja) 2019-06-27

Family

ID=66696942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017238086A Pending JP2019106013A (ja) 2017-12-12 2017-12-12 情報処理システム、制御方法とそのプログラム

Country Status (2)

Country Link
US (1) US20190179877A1 (ja)
JP (1) JP2019106013A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021092964A (ja) * 2019-12-10 2021-06-17 株式会社ネオジャパン 機能提供装置、機能提供プログラム及びクライアント装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8229861B1 (en) * 2008-06-11 2012-07-24 Trandal David S Methods and systems for online warranty management
US9842099B2 (en) * 2012-11-29 2017-12-12 Business Objects Software Limited Asynchronous dashboard query prompting
JP6433339B2 (ja) * 2015-03-02 2018-12-05 キヤノン株式会社 情報処理システム、サーバ装置、制御方法およびプログラム
US10303892B1 (en) * 2015-10-12 2019-05-28 Nextlabs, Inc. Viewing protected documents in a web browser
US20170357679A1 (en) * 2016-06-14 2017-12-14 Sap Se Contextual Styling of Chart Elements

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021092964A (ja) * 2019-12-10 2021-06-17 株式会社ネオジャパン 機能提供装置、機能提供プログラム及びクライアント装置
JP7419046B2 (ja) 2019-12-10 2024-01-22 株式会社ネオジャパン 機能提供装置、機能提供プログラム及びクライアント装置

Also Published As

Publication number Publication date
US20190179877A1 (en) 2019-06-13

Similar Documents

Publication Publication Date Title
JP6433339B2 (ja) 情報処理システム、サーバ装置、制御方法およびプログラム
US10481776B2 (en) Server apparatus, client apparatus, information processing method, and storage medium
JP6508978B2 (ja) 情報処理システム、サーバ、制御方法、及びコンピュータプログラム
JP6525641B2 (ja) 情報処理システム、制御方法、およびコンピュータプログラム
JP5355032B2 (ja) クライアント装置、サーバ装置、及び、それらを用いた文書管理システム、文書管理方法、文書管理プログラム
US10353998B2 (en) Information processing apparatus with real time update related to data edited while form document data is browsed, control method, and storage medium
JP2019106013A (ja) 情報処理システム、制御方法とそのプログラム
JP2004213072A (ja) 帳票データサーバおよびそれを用いた電子帳票システム
JP2014049098A (ja) 画像形成装置、画像形成装置の制御方法およびプログラム
JP2017027319A (ja) 帳票文書データの表示・編集・保存方法、装置、処理プログラム
JP7154982B2 (ja) 情報処理装置、制御方法、及びプログラム
JP2022137608A (ja) 情報処理装置、情報処理方法およびプログラム
JP2020106926A (ja) 情報処理装置、情報処理システムおよび情報処理方法
JP2005107635A (ja) 電子フォーム入力システム、方法、プログラムおよび媒体
JP6423671B2 (ja) ウェブページ間複写装置、ウェブページ間の複写方法、およびプログラム
JP2017182472A (ja) 文字編集サーバ及び文字編集システム
JP2017126230A (ja) 帳票文書データの表示・編集方法、装置、処理プログラム
US20100229087A1 (en) Computer readable medium, information processing device and image processing method
JP6631364B2 (ja) 画像処理サーバ、クライアント、プログラム及び画像処理システム
JP2017216593A (ja) 情報処理装置、制御方法、及びプログラム
JP2020047300A (ja) 画像処理サーバ
JP2020113120A (ja) 電子帳票システム、情報処理装置、方法、及びプログラム
JP5459383B2 (ja) 印刷データ生成装置、印刷データ生成方法、プリンタドライバプログラムおよび印刷データ生成システム
JP2004213075A (ja) 帳票発行装置およびそれを用いた電子帳票システム
JP5263359B2 (ja) 印刷データ生成装置、印刷データ生成方法、プリンタドライバプログラムおよび印刷データ生成システム