(57)【要約】【課題】利用に適した位置で分割された電子データを出力する。【解決手段】本願に開示の技術は、一つの態様によれば、独立した一連のデータを複数含むデータ群に含まれる一連のデータの終端を識別する分割プログラムである。また、分割プログラムは、識別された終端を有する第１の一連のデータと第１の一連のデータに続いてデータ群に含まれている第２の一連のデータとの間を区切りの候補として検出し、検出された区切りの候補で区切られた各一連のデータのデータサイズを算出する。また、分割プログラムは、算出された各データのデータサイズを用いて、所定のデータサイズに収まるようにデータ群を区切りの候補の位置で分割する。【選択図】        図１
2011138404.tif 000002
【特許請求の範囲】
【請求項１】
独立した一連のデータを複数含むデータ群に含まれる一連のデータの終端を識別する識別手順と、
前記識別手順によって識別された終端を有する第１の一連のデータと前記第１の一連のデータに続いて前記データ群に含まれている第２の一連のデータとの間を区切りの候補として検出する検出手順と、
前記検出手順によって検出された前記区切りの候補で区切られた各一連のデータのデータサイズを算出する算出手順と、
前記算出手順によって算出された各データのデータサイズを用いて、所定のデータサイズに収まるように前記データ群を前記区切りの候補の位置で分割する分割手順と、
をコンピュータに実行させることを特徴とする分割プログラム。
【請求項２】
前記分割手順は、隣接する前記区切りの候補で区切られた各データのデータサイズを順に加算し、データサイズの合計が所定のデータサイズに収まる範囲を前記分割されたデータ群とすることを特徴とする請求項１に記載の分割プログラム。
【請求項３】
前記分割手順によって分割されたデータ群の改変を防ぐため、当該分割されたデータ群のチェックサムを作成する作成手順をさらにコンピュータに実行させることを特徴とする請求項１又は２に記載の分割プログラム。
【請求項４】
独立した一連のデータを複数含むデータ群を解析し、該データ群に含まれる一連のデータの終端を識別する識別部と、
前記識別部によって識別された終端を有する第１の一連のデータと第１の一連のデータに続いて前記データ群に含まれている第２の一連のデータとの間を区切りの候補として検出する検出部と、
前記検出部によって検出された前記区切りの候補で区切られた各一連のデータのデータサイズを算出する算出部と、
前記算出部によって算出された各データのデータサイズを用いて、所定のデータサイズに収まるように前記データ群を前記区切りの候補の位置で分割する分割部と、
を有することを特徴とする分割装置。
【請求項５】
独立した一連のデータを複数含むデータ群を解析し、該データ群に含まれる一連のデータの終端を識別する識別ステップと、
前記識別ステップによって識別された終端を有する第１の一連のデータと第１の一連のデータに続いて前記データ群に含まれている第２の一連のデータとの間を区切りの候補として検出する検出ステップと、
前記検出ステップによって検出された前記区切りの候補で区切られた各一連のデータのデータサイズを算出する算出ステップと、
前記算出ステップによって算出された各データのデータサイズを用いて、所定のデータサイズに収まるように前記データ群を前記区切りの候補の位置で分割する分割ステップと、
を含むことを特徴とする分割方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分割プログラム、分割装置および分割方法に関する。
【背景技術】
【０００２】
近年、原本性保証が求められる一連の情報（例えば、帳票データ）のデータサイズがますます大きくなってきている。そのため、このような情報は、記憶媒体の容量を理由として、データサイズが制限される場合があり、複数のファイルごとに帳票データを分割して記憶媒体に保存される。また、帳票データは、原本性を保証するために、各ファイルの帳票データごとにチェックサムが付加されて記憶媒体に保存される。
【０００３】
ここで、分割プログラムが帳票ファイルを複数のファイルに分割する方法として、帳票ファイルをバイナリデータとして分割する方法と、帳票ファイルをページ単位で分割する方法について図１７および図１８を用いて説明する。
【０００４】
まず、図１７を用いて、帳票ファイルをバイナリデータとして分割する処理について説明する。図１７は、帳票ファイルをバイナリデータ単位で分割する処理を説明するための図である。図１７に示す例では、分割プログラムは、合計容量２５ＭＢ（Ｍｅｇａ  Ｂｉｔｅ）の帳票ファイルを最大１０ＭＢの分割ファイルに分割して出力するものとする。
【０００５】
図１７に例示するように、分割プログラムは、合計２５ＭＢの帳票ファイルを一連のバイナリデータとして識別する。そして、分割プログラムは、帳票ファイルの最初から１０ＭＢ分のバイナリデータを分割ファイル１とする。また、分割プログラムは、残りのバイナリデータのうちの１０ＭＢ分のバイナリデータを分割ファイル２とする。また、分割プログラムは、残りの５ＭＢ分のバイナリデータを分割ファイル３とする。
【０００６】
次に、図１８を用いて、分割プログラムが帳票ファイルをページ単位で分割する処理について説明する。図１８は、帳票ファイルをページ単位で分割する処理を説明するための図である。図１８に示す例では、分割プログラムは、合計容量２５ＭＢの帳票ファイルを最大１０ＭＢの分割ファイルにページ単位で分割して出力するものとする。また、図１８に示す例では、帳票ファイルには、複数のページを有する帳票１〜５が含まれており、全部で１８０ページの帳票が含まれるものとする。
【０００７】
図１８に示すように、分割プログラムは、帳票ファイルに含まれる各ページのデータサイズを１ページ目から順に加算し、データサイズの合計が１０ＭＢ以内に収まるように、帳票データをページ単位で分割する。例えば、図１８に示す例では、分割プログラムは、６６ページ目の帳票のデータサイズを加算し、データサイズの合計が１０ＭＢよりも多くなるか否かを判定する。そして、分割プログラムは、データサイズの合計が１０ＭＢよりも多くなった場合には、帳票ファイルに含まれる全１８０ページのうち、１ページ目から６５ページ目の帳票までを分割ファイル１とする。
【０００８】
次に、分割プログラムは、帳票ファイルに含まれる各ページのデータサイズを６６ページ目から順に加算する。そして、分割プログラムは、１５２ページ目の帳票のデータサイズを加算し、データサイズの合計が１０ＭＢよりも多くなるか否かを判定する。そして、分割プログラムは、データサイズの合計が１０ＭＢよりも多くなった場合には、帳票ファイルに含まれる全１８０ページのうち、６６ページ目から１５１ページ目までの帳票を分割ファイル２とする。
【０００９】
また、分割プログラムは、帳票ファイルに含まれる各ページのデータサイズを１５２ページ目から順に加算する。そして、分割プログラムは、最後の１８０ページ目の帳票の容量を加算し、データサイズの合計が１０ＭＢよりも多くなるか否かを判定する。ここで、分割プログラムは、合計容量が１０ＭＢよりも少ないと判定した場合には、１５２ページ目から１８０ページ目までの帳票を分割ファイル３とする。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０００−０７６３５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した帳票ファイルをバイナリデータ単位で分割する技術では、帳票ファイルの内容にかかわらず、所定の容量ごとに帳票ファイルを分割する。このため、分割した全ての分割ファイルを結合しないと分割前の一連の帳票を参照することができないという問題があった。
【００１２】
また、上述した帳票ファイルをページ単位で分割する技術では、帳票ファイルに格納された各ページの内容にかかわらず、帳票ファイルを分割する。このため、出力される分割ファイルが閲覧等の利用に適さない場合があるという問題があった。
【００１３】
例えば、図１８の例では、帳票ファイルは、１ページ目から６３ページ目までを占める帳票「１」、６４ページ〜６７ページまでを占める帳票「２」、６８ページ目から１５０ページ目までを占める帳票「３」を含む。また、帳票ファイルは、１５１ページ目から１５３ページ目までを占める帳票「４」、１５４ページ目から１８０ページ目までを占める帳票「５」を含む。
【００１４】
この場合、従来の分割プログラムは、帳票ファイルのうち１ページ目から６５ページ目までを分割ファイル１とし、帳票ファイルのうち６６ページ目から１５１ページ目までを分割ファイル２とする。このため、従来の分割プログラムは、帳票「２」を分割ファイル１と分割ファイル２に分けてしまう。また、分割プログラムは、帳票「４」を分割ファイル２と分割ファイル３とに分けてしまう。このため、利用者が帳票「２」又は帳票「４」を参照する場合には、２つの帳票ファイルを参照しなければならない。その結果として、出力された帳票ファイルが閲覧等の利用に適さないという問題があった。
【００１５】
本願に開示の技術は、上述した問題を解決するためのものであって、分割された電子データを出力する場合に、利用に適した位置で分割された電子データを出力する。
【課題を解決するための手段】
【００１６】
本願に開示の技術は、一つの態様によれば、独立した一連のデータを複数含むデータ群に含まれる一連のデータの終端を識別する分割プログラムである。また、分割プログラムは、識別された終端を有する第１の一連のデータと第１の一連のデータに続いてデータ群に含まれている第２の一連のデータとの間を区切りの候補として検出し、検出された区切りの候補で区切られた各一連のデータのデータサイズを算出する。また、分割プログラムは、算出された各データのデータサイズを用いて、所定のデータサイズに収まるようにデータ群を区切りの候補の位置で分割する。
【発明の効果】
【００１７】
本願に開示の技術は、一つの態様によれば、利用に適した位置で分割された電子データを出力する。
【図面の簡単な説明】
【００１８】
【図１】図１は、実施例１に係る情報処理装置を説明するためのブロック図である。
【図２】図２は、実施例２に係る帳票システムを説明するためのブロック図である。
【図３】図３は、帳票の構造を説明するための図である。
【図４】図４は、帳票に含まれるページを説明するための図である。
【図５】図５は、帳票の各ページを説明するための図である。
【図６】図６は、ファイルサイズを説明するための図である。
【図７】図７は、ファイルサイズを考慮した分割を説明するための図（１）である。
【図８】図８は、ファイルサイズを考慮した分割を説明するための図（２）である。
【図９】図９は、ファイルサイズを考慮した分割を説明するための図（３）である。
【図１０】図１０は、分割送信を説明するための図である。
【図１１】図１１は、帳票分割装置の処理の流れを説明するためのフローチャートである。
【図１２】図１２は、解析処理の流れを説明するためのフローチャートである。
【図１３】図１３は、集計表形式の帳票に対する分割候補の検出処理の流れを説明するためのフローチャートである。
【図１４】図１４は、集計表形式以外の帳票に対する分割候補の検出処理の流れを説明するためのフローチャートである。
【図１５】図１５は、分割出力処理の流れを説明するためのフローチャートである。
【図１６】図１６は、分割プログラムを実行するコンピュータの一例を説明するための図である。
【図１７】図１７は、帳票ファイルをバイナリデータ単位で分割する処理を説明するための図である。
【図１８】図１８は、帳票ファイルをページ単位で分割する処理を説明するための図である。
【発明を実施するための形態】
【００１９】
以下に添付図面を参照して本願に係る分割プログラム、分割装置および分割方法について説明する。
【実施例１】
【００２０】
実施例１では、図１を用いて、分割プログラムを実行する装置の一例を説明する。図１は、実施例１に係る情報処理装置を説明するためのブロック図である。なお、情報処理装置は、少なくとも記憶装置に記憶された複数のデータを分割する情報処理装置である。
【００２１】
図１に示すように、情報処理装置１は、識別部２、検出部３、算出部４、分割部５を有する。また、情報処理装置１は、データ群記憶装置６と接続される。データ群記憶装置６は、独立した一連のデータを複数含むデータ群を記憶する。識別部２は、記憶装置に記憶されたデータ群に含まれる各データの終端をそれぞれ識別する。検出部３は、識別部２によって識別された終端を有する第１の一連のデータと、第１の一連のデータに続いてデータ群に含まれている第２の一連のデータとの間を区切りの候補として検出する。
【００２２】
算出部４は、検出部３によって検出された区切りの候補で区切られた各データのデータサイズを算出する。分割部５は、算出部４によって算出された各データのデータサイズを用いて、所定のデータサイズに収まるようにデータ群を区切りの候補の位置で分割する。
【００２３】
上述したように、情報処理装置１は、独立した一連のデータを複数含むデータ群を解析し、データ群に含まれる各データの終端を用いて、データ群を分割するための区切りの候補を検出する。そして、情報処理装置１は、分割された各データ群が所定のデータサイズに収まるように、区切りの候補の位置でデータ群を分割する。
【００２４】
つまり、情報処理装置１は、所定のデータサイズに収まるようにデータ群を分割し、かつ、その分割が各一連のデータの終端でなされるようにする。その結果、情報処理装置１は、一連のデータを複数の分割されたデータ群に分割しないので、利用に適した位置で分割されたデータ群を出力することができる。
【実施例２】
【００２５】
以下に、実施例２に係る帳票システムを説明する。
【００２６】
図２は、実施例２に係る帳票システムを説明するためのブロック図である。図２に示すように、帳票システム１０は、帳票分割装置１１、帳票データ記憶部１５、帳票定義体記憶部１６を有する。また、帳票システム１０は、ユーザ端末２０と接続される。ユーザ端末２０は、ユーザが使用する端末であって、少なくとも、帳票を閲覧するための端末である。
【００２７】
帳票データ記憶部１５は、それぞれ独立した一連のデータを複数含むデータ群を記憶する。具体的には、帳票データ記憶部１５は、それぞれ独立した帳票を複数含む帳票データ群を記憶する。ここで、帳票とは、商品の受発注を記録する管理表や各種申込書等に係る一連のデータである。
【００２８】
以下、帳票データ記憶部１５が記憶する帳票データ群について詳しく説明する。図３は、帳票の構造を説明するための図である。例えば、帳票は、図３のＡに例示するように、ヘッダ部、ボディ部、テイル部からなる情報を有する。ヘッダ部には、例えば、帳票の送付先などの情報が含まれる。ボディ部には、例えば、商品の受発注などの情報が含まれる。テイル部には、例えば、商品の受発注に係る請求金額の合計額などの情報が含まれる。そして、帳票データ記憶部１５は、それぞれ異なる情報が含まれる一連の帳票を含む帳票データ群を記憶する。図３のＢに、帳票データ記憶部１５に記憶される帳票データ群の例を示す。
【００２９】
また、図４は、帳票に含まれるページを説明するための図である。図４に例示するように、帳票データ記憶部１５は、帳票のボディ部に含まれる項目の数が多い場合には、複数のページを有する帳票を記憶する。
【００３０】
また、図５は、帳票の各ページを説明するための図である。帳票データ記憶部１５は、図５のＡに例示するように、ヘッダ部の前にページヘッダを付与し、テイル部の後にページフッタを付与した帳票を記憶する。さらに、帳票データ記憶部１５は、帳票が複数のページに渡る場合には、図５のＢに例示するように、帳票の各ページにページヘッダとページフッタとを付与した帳票を記憶する。
【００３１】
以下の説明では、帳票データ記憶部１５は、図１８に示したような帳票１から帳票５までの一連の帳票を含む帳票データを記憶するものとする。ここで、帳票１は、帳票データ群のうち１ページ目から６３ページ目までを占める帳票である。帳票２は、帳票データ群のうち６４ページ目から６７ページ目までを占める帳票である。帳票３は、帳票データ群のうち６８ページ目から１５０ページ目までを占める帳票である。
【００３２】
帳票４は、帳票データ群のうち１５１ページ目から１５３ページ目までを占める帳票である。帳票５は、帳票データ群のうち１５４ページ目から１８０ページ目までを占める帳票である。各帳票１〜５は、それぞれ独立したヘッダ部、ボディ部、テイル部が格納されている。また、帳票データ群の各ページ１〜１８０ページには、ページヘッダとページフッタとが付与される。
【００３３】
図２に戻って、帳票定義体記憶部１６は、帳票のレイアウト、帳票のデザイン、帳票に格納される情報などを定義するデータである帳票定義体を記憶する。例えば、帳票定義体記憶部１６は、集計表形式の帳票を定義する帳票定義体を記憶する。ここで、集計表形式の帳票とは、ヘッダ部、ボディ部、テイル部を有する帳票のことを言う。
【００３４】
帳票分割装置１１は、帳票データ記憶部１５に記憶された帳票データ群を複数の帳票ファイルに分割し、各帳票ファイルをユーザ端末２０へ送信する。具体的には、帳票分割装置１１は、独立した一連の帳票を複数含む帳票データ群を解析し、帳票データ群に含まれる各帳票の終端をそれぞれ識別し、識別された各帳票の終端を用いて、帳票データ群を分割するための区切りの候補を検出する。そして、帳票分割装置１１は、検出された区切りの候補を用いて、帳票データ群を複数の帳票ファイルに分割する。その後、帳票分割装置１１は、分割された各帳票ファイルを出力し、出力された各帳票ファイルをユーザ端末２０へ送信する。
【００３５】
以下、帳票分割装置１１の構成及び実行する処理について説明する。まず、帳票分割装置１１の構成を詳しく説明する。図２に示すように、帳票分割装置１１は、解析部１２、分割候補検出部１３、分割部１４、動作環境を示す動作環境記憶部１７を有する。解析部１２は、帳票データ記憶部１５と帳票定義体記憶部１６とに接続される。また、分割部１４は、ユーザ端末２０と動作環境を示す動作環境記憶部１７と接続される。
【００３６】
動作環境を示す動作環境記憶部１７は、ユーザによって指定される動作環境を示す情報の情報を記憶する。例えば、動作環境を示す動作環境記憶部１７は、後述するように、帳票ファイルのデータサイズを１０ＭＢ未満に指定する動作環境を示す情報の情報を記憶する。また、例えば、動作環境記憶部１７は、所定の圧縮比率を指定する動作環境の情報を記憶する。また、例えば、動作環境記憶部１７は、後述するように、帳票データ群に含まれる一つの帳票が１０ＭＢ以上となる場合に、エラーを示す情報をユーザ端末２０へ送信するように指定する動作環境の情報を記憶する。
【００３７】
解析部１２は、独立した一連の帳票を複数含む帳票データ群に含まれる各帳票の終端をそれぞれ識別する。具体的には、解析部１２は、帳票データ記憶部から、帳票データ群を取得する。また、解析部１２は、帳票定義体記憶部１６から、帳票定義体を取得する。そして、解析部１２は、取得された帳票定義体を解析し、帳票定義体が定義する帳票の構造を取得する。
【００３８】
解析部１２は、帳票の構造を取得した場合に、取得された帳票データ群を解析し、帳票データ群に含まれる各帳票の終端を示す情報を検出して、各帳票の終端をそれぞれ識別する。また、解析部１２は、取得された帳票データ群を分割候補検出部１３に送信する。また、解析部１２は、識別された各帳票の終端を分割候補検出部１３に通知する。
【００３９】
以下、解析部１２が実行する処理を具体例を挙げて説明する。例えば、解析部１２は、帳票１〜５を含む帳票データ群を帳票データ記憶部１５から取得する。
【００４０】
また、解析部１２は、帳票定義体記憶部１６から、帳票定義体を取得する。そして、解析部１２は、取得された帳票定義体を解析し、帳票定義体が集計表形式の帳票の構造を示すか否かを判定する。ここで、解析部１２は、帳票定義体が集計表形式の帳票の構造を示すと判定された場合には、帳票データ群に含まれる各帳票が、ヘッダ部、ボディ部、テイル部を有するとさらに判定する。
【００４１】
解析部１２は、各帳票がヘッダ部、ボディ部、テイル部を有していると判定した場合には、取得された帳票データ群を解析し、帳票データに記憶された各帳票のテイル部が帳票データ群のどのページに含まれているか判定する。例えば、解析部１２は、帳票データ群のうち、６３ページ目、６７ページ目、１５０ページ目、１５３ページ目、１８０ページ目にテイル部が含まれていると判定する。解析部１２は、テイル部が含まれているページを判定した場合には、判定された各ページを示す情報を分割候補検出部１３に通知する。また、解析部１２は、取得された帳票データ群を分割候補検出部１３へ送信する。
【００４２】
一方、解析部１２は、取得された帳票定義体が集計表形式以外の帳票の構造を示す場合には、帳票データ群に含まれる各帳票が集計表形式以外の帳票であることを示す情報を分割候補検出部１３に通知する。また、解析部１２は、取得された帳票データ群を分割候補検出部１３に通知する。
【００４３】
分割候補検出部１３は、解析部１２によって識別された終端を有する第１の帳票と第１の帳票に続いて帳票データ群に含まれている第２の帳票との間を区切りの候補として検出する。具体的には、分割候補検出部１３は、解析部１２から帳票データ群を取得する。また、分割候補検出部１３は、解析部１２から、帳票データ群に含まれる各帳票のテイル部が含まれたページを示す情報を取得する。
【００４４】
そして、分割候補検出部１３は、各帳票のテイル部が格納されたページを示す情報を取得した場合には、取得された帳票データ群のうち、解析部１２から取得された情報が示すページと次のページとの間を区切りの候補として検出する。つまり、分割候補検出部１３は、取得された帳票データ群のうち、通知されたページと次のページとの間が区切りの候補であると識別する。その後、分割候補検出部１３は、識別された区切りの候補を分割部１４へ通知する。また、分割候補検出部１３は、帳票データ群を分割部１４へ送信する。
【００４５】
例えば、分割候補検出部１３は、解析部１２から各帳票１〜５を含んだ帳票データ群を取得する。また、分割候補検出部１３は、解析部１２から、各帳票のテイル部を有するページとして、６３ページ目、６７ページ目、１５０ページ目、１５３ページ目、１８０ページを示す情報を取得する。分割候補検出部１３は、各帳票のテイル部を有するページを示す情報を取得した場合には、取得された情報が示すページと次のページとの間に区切りの候補を検出する。
【００４６】
つまり、分割候補検出部１３は、６３ページ目と６４ページ目との間、６７ページ目と６８ページ目との間、１５０ページ目と１５１ページ目との間が区切りの候補であると識別する。また、分割候補検出部１３は、１８０ページの後ろ、すなわち帳票データ群の最後のページの後ろが区切りの候補であると識別する。その後、分割候補検出部１３は、識別された区切りの候補を分割部１４へ通知する。また、分割候補検出部１３は、帳票データ群を分割部１４へ送信する。
【００４７】
一方、分割候補検出部１３は、帳票データ群に含まれる各帳票が集計表形式以外の帳票であることを示す情報を解析部１２から取得した場合には、帳票データ群に含まれる各ページの間が区切りの候補であると識別する。そして、分割候補検出部１３は、識別された区切りの候補を分割部１４へ通知する。また、分割候補検出部１３は、帳票データ群を分割部１４へ送信する。
【００４８】
このように、分割候補検出部１３は、解析部１２から各帳票のテイル部が格納されたページを示す情報を取得する。そして、分割候補検出部１３は、取得された情報が示すページと次のページとの間が区切りの候補であると識別する。このため、分割候補検出部１３は、帳票データ群に含まれる各帳票１〜５の境界がどこにあるかを示す区切りの候補を分割部１４へ通知することができる。
【００４９】
分割部１４は、分割候補検出部１３によって検出された区切りの候補で区切られた各帳票のデータサイズを算出する。そして、分割部１４は、各帳票のデータサイズを用いて、分割された帳票ファイルが所定のデータサイズに収まるように、帳票データ群を区切りの候補の位置で分割する。ここで、分割部１４は、隣接する区切りの候補で区切られた各帳票のデータサイズを順に加算し、データサイズの合計が所定のデータサイズに収まる範囲を分割された帳票ファイルとする。また、分割部１４は、分割された帳票ファイルの改変を防ぐため、各帳票ファイルのチェックサムを作成する。
【００５０】
具体的には、分割部１４は、分割候補検出部１３から区切りの候補が設定された帳票データ群を取得する。さらに、分割部１４は、動作環境記憶部１７から動作環境の情報を取得する。また、分割部１４は、分割候補検出部１３から区切りの候補と帳票データ群とを取得する。そして、分割部１４は、帳票データ群を取得した場合には、帳票データ群に含まれる情報のうち、初めに格納された情報から、分割候補検出部１３によって識別された区切りの候補までを一時ファイルに格納する。その後、分割部１４は、一時ファイルのファイルサイズが動作環境を示す情報によって指定される所定のデータサイズに収まるかどうか判定する。
【００５１】
ここで、図６は、ファイルサイズを説明するための図である。図６に例示するように、帳票ファイルが出力される場合には、ＰＤＦ（Portable Document Format）など、圧縮された電子データとして出力されるため、一時ファイルのファイルサイズがそのまま出力される電子データのファイルサイズとはならない。このため、分割部１４は、一時ファイルのファイルサイズが動作環境を示す情報によって指定される所定のデータサイズに収まるかどうかを判定する場合には、動作環境を示す情報が指定する圧縮比率で一時ファイルのファイルサイズを除算した値を算出する。そして、分割部１４は、算出された積の値が所定のデータサイズに収まるかどうかを判定する。
【００５２】
分割部１４は、算出された値が所定のデータサイズに収まると判定した場合には、帳票データ群に含まれる情報のうち、次の区切りの候補までの情報を一時ファイルに追加する。そして、分割部１４は、再度、一時ファイルのファイルサイズを動作環境を示す情報が指定する圧縮比率で除算した値を算出し、算出された値が所定のデータサイズに収まるかどうか判定する。この判定の結果、分割部１４は、算出された値が所定のデータサイズに収まらないと判定した場合には、一時ファイルに格納された各情報のうち、一つ前の区分の候補までの情報をひとつのファイルとして帳票データ群から分割する。以下の説明では、帳票データ群から分割されたファイルを帳票ファイルと記載する。
【００５３】
また、分割部１４は、帳票データ群から帳票ファイルを分割した場合には、分割された帳票ファイルに対して、帳票ファイルの改変を防ぐためのチェックサムを作成し、作成されたチェックサムを分割された帳票ファイルに付与する。そして、分割部１４は、チェックサムを付与した帳票ファイルをユーザ端末２０へ送信する。なお、本実施例では、作成されたチェックサムを帳票ファイルに付与するが、作成されたチェックサムを帳票ファイルとは別に管理してもよい。
【００５４】
一方、分割部１４は、区切りの候補によって区切られた範囲のうち、ひとつの範囲のみを格納した一時ファイルの容量が、所定の範囲に収まらないと判定した場合には、動作環境を示す情報が指定する処理を実行する。例えば、分割部１４は、エラーを示す情報をユーザ端末２０へ送信するように動作環境を示す情報が指定する場合には、エラーを示す情報をユーザ端末２０へ送信する。
【００５５】
以下、分割部１４が帳票データ群に含まれる全情報を複数の帳票ファイルに分割する処理について、複数の図を用いて、具体例を説明する。ここで、以下の図に示す例では、分割候補検出部１３によって識別された区切りの候補のうち、一番最初に設定された区切りの候補をα、次の区切りの候補をβ、以下続いてγ、δ、εと示す。また、分割部１４は、帳票データ群に格納された情報を、１０ＭＢ以下の帳票ファイルに分割するものとする。
【００５６】
まず、図７を用いて、一つめの帳票ファイルを帳票データ群から分割する処理について説明する、図７は、ファイルサイズを考慮した分割を説明するための図（１）である。分割部１４は、帳票データ群を取得する。また、分割部１４は、分割候補検出部１３によって識別された区切りの候補を取得する。
【００５７】
次に、分割部１４は、図７のＡに示すように取得された帳票データのうち、最初に格納された情報から、分割候補検出部１３によって識別された区切りの候補αまでの情報を一時ファイルに格納する。すなわち、分割部１４は、帳票データ群に格納された帳票１のヘッダ部を一時ファイルに格納する。また、分割部１４は、帳票データ群に格納された帳票１のボディ部を一時ファイルに格納する。また、分割部１４は、帳票データ群に格納された帳票１のテイル部を一時ファイルに格納する。
【００５８】
そして、分割部１４は、所定の圧縮比率で一時ファイルのファイルサイズを除算した値を算出し、算出された値が１０ＭＢ以下であるかを判定する。図７のＡに示す例では、分割部１４は、算出された値が１０ＭＢ以下であると判定し、残りの帳票データのうち、区切りの候補βまでの情報、すなわち帳票２のヘッダ部、ボディ部、テイル部を順に一時ファイルに追加する。
【００５９】
続いて、分割部１４は、所定の圧縮比率で一時ファイルのファイルサイズを除算した値を算出し、算出された値が１０ＭＢ以下であるかを判定する。図７のＡに示す例では、分割部１４は、所定の圧縮比率で帳票１と帳票２とを格納した一時ファイルのファイルサイズを除算した値を算出し、算出された値が１０ＭＢ以下であるかを判定する。そして、分割部１４は、算出された値が１０ＭＢ以上であると判定した場合には、図７のＢに例示するように、一時ファイルに格納された情報のうち、区切りの候補αまでの情報、すなわち帳票１を帳票ファイル１として、帳票データ群から分割する。そして、分割部１４は、帳票ファイル１に対してチェックサムを付与し、チェックサムを付与した帳票ファイル１をユーザ端末２０へ送信する。
【００６０】
次に、図８を用いて、二つめの帳票ファイルを帳票データ群から分割する処理について説明する。図８は、ファイルサイズを考慮した分割を説明するための図（２）である。図８のＡに示す例では、分割部１４は、帳票データ群に含まれる情報のうち、分割候補検出部１３によって識別された区切りの候補βまでの情報、すなわち帳票２のヘッダ部、ボディ部、テイル部を一時ファイルに格納する。
【００６１】
続いて、図８のＡに示す例では、所定の圧縮比率で帳票２が格納された一時ファイルのファイルサイズを除算した値を算出し、算出された値が１０ＭＢ以下であるかを判定する。そして、分割部１４は、算出された値が１０ＭＢ以下であると判定した場合には、帳票データ群に設定された次の区切りの候補γまでの情報、すなわち帳票３のヘッダ部、ボディ部、テイル部を順に一時ファイルに追加する。
【００６２】
そして、分割部１４は、所定の圧縮比率で帳票２と帳票３とを格納した一時ファイルのファイルサイズを除算した値を算出し、算出された値が１０ＭＢ以下であるかを判定する。図８のＡに示す例では、分割部１４は、所定の圧縮比率で帳票２と帳票３が格納された一時ファイルのファイルサイズを除算した値を算出する。そして、分割部１４は、算出された値が１０ＭＢ以下であると判定した場合には、図８のＢに例示するように、帳票データ群に設定された次の区切りの候補δまでの情報、すなわち帳票４のヘッダ部、ボディ部、テイル部を一時ファイルに追加する。そして、分割部１４は、所定の圧縮比率で帳票２〜４が格納された一時ファイルのファイルサイズを除算した値を算出し、算出された値が１０ＭＢ以下であるかどうかを判定する。
【００６３】
そして、分割部１４は、算出された値が１０ＭＢ以上であると判定した場合には、図８のＣに示すように、一時ファイルに格納された情報のうち、前の区切りの候補γまでの情報、すなわち帳票２と帳票３を帳票ファイル２として帳票データ群から分割する。そして、分割部１４は、帳票ファイル２のチェックサムを作成し、作成されたチェックサムを帳票ファイル２に付与する。その後、分割部１４は、チェックサムを付与した帳票ファイル２をユーザ端末２０へ送信する。
【００６４】
次に、図９を用いて、３つ目の帳票ファイルを帳票データ群から分割する処理について説明する。図９は、ファイルサイズを考慮した分割を説明するための図（３）である。図９に示すように、分割部１４は、帳票ファイル１、及び帳票ファイル２を帳票データ群から分割した処理と同様の処理を実行した結果、帳票４と帳票５を一時ファイルに格納する。ここで、分割部１４は、帳票データ群に残りのデータが無いと判定する。このため、分割部１４は、一時ファイルに格納された帳票４と帳票５とを帳票ファイル３とし、帳票ファイル３に作成されたチェックサムを付与したうえで、ユーザ端末２０へ送信する。
【００６５】
上述したように、帳票分割装置１１は、帳票データ群に含まれる帳票を複数の帳票ファイルに分割する場合には、帳票ファイルが所定のファイルサイズに収まるように、検出された区切りの候補で帳票データ群を分割する。すなわち、帳票分割装置１１は、帳票データ群に含まれる帳票を複数の帳票ファイルに分割する場合には、帳票データ群に含まれる各帳票を複数の帳票ファイルに分割することなく、帳票ファイルを帳票データ群から分割する。
【００６６】
ここで、図１０は、分割送信を説明するための図である。例えば、帳票ファイルをメールに添付して送信する場合には、添付される帳票ファイルのデータサイズが制限される場合がある。しかし、図１０に例示するように、帳票分割装置１１によって帳票データ群Ａが３つの帳票ファイルに分割し、分割された各帳票ファイルをメールで送信した場合には、各帳票ファイルをそれぞれ独自に閲覧することができる。また、図１０に示す例では、帳票分割装置１１は、帳票データ群Ａに含まれる各帳票を複数の帳票ファイルにまたがって分割しないので、帳票データ群を、閲覧に適した帳票ファイルに分割することができる。
【００６７】
また、帳票分割装置１１は、分割された各帳票ファイルのチェックサムを作成し、作成されたチェックサムを各帳票ファイルに付与する。そして、帳票分割装置１１は、チェックサムを付与された各帳票ファイルをユーザ端末２０へ送信する。このため、帳票分割装置１１は、帳票データ群を閲覧に適した帳票ファイルに分割するだけではなく、分割された各帳票ファイルの原本性の保証に効果を発揮することができる。
【００６８】
例えば、帳票分割装置１１とは、電子回路であり、帳票分割装置１１が有する解析部１２、分割候補検出部１３、分割部１４とは、電子回路である。ここで、電子回路の例として、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ （Field Programmable Gate Array）などの集積回路、またはＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などを適用する。
【００６９】
また、帳票データ記憶部１５、帳票定義待機億部１６、動作環境を示す動作環境記憶部１７とは、記憶装置である。ここで、記憶装置の例としては、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ （flash memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどを適用する。
【００７０】
[帳票分割装置の処理]
次に、図を用いて、帳票分割装置１１の処理の流れを説明する。まず、図１１を用いて、帳票分割装置１１の処理の流れを説明する。図１１は、帳票分割装置の処理の流れを説明するためのフローチャートである。帳票分割装置１１は、ユーザが帳票システムに分割された帳票ファイルを要求したことをトリガーとして、処理を開始する。
【００７１】
まず、帳票分割装置１１は、解析処理を実行し、帳票の終端を識別する（ステップＳ１０１）。次に、帳票分割装置１１は、分割候補の解析処理を実行し、帳票データ群を分割するための区切りの候補を検出する（ステップＳ１０２）。次に、帳票分割装置１１は、データサイズを算出する（ステップＳ１０３）。次に、帳票分割装置１１は、分割出力処理を実行し（ステップＳ１０４）、その後、処理を終了する。
【００７２】
次に、図１２を用いて、帳票分割装置１１が実行する解析処理の流れを説明する。図１２は、解析処理の流れを説明するためのフローチャートである。帳票分割装置１１は、ユーザが帳票システムに分割された帳票ファイルを要求したことをトリガーとして、処理を開始する。
【００７３】
帳票分割装置１１は、動作環境を示す情報を取得し、帳票ファイルのファイルサイズ、所定の圧縮比率、分割不可時の動作を取得する（ステップＳ２０１）。以下の図では、帳票ファイルのファイルサイズの上限を「Ｓ」、圧縮比率を「Ｒ」、分割不可時の動作を「Ｍ」と表す。次に、帳票分割装置１１は、帳票定義体を取得し、取得された帳票定義帯を解析する（ステップＳ２０２）。次に、帳票分割装置１１は、帳票定義体が示す帳票の形式が集計表形式であるかどうか判定する（ステップＳ２０３）。
【００７４】
帳票分割装置１１は、帳票定義体が示す帳票の形式が集計表形式であると判定した場合には（ステップＳ２０３肯定）、後述する集計表形式の帳票に対する分割候補の検出処理を実行する（図１３ステップＳ３０１）。また、帳票分割装置１１は、帳票定義体が示す帳票の形式が集計表形式ではないと判定した場合には（ステップＳ２０３否定）、後述する集計表形式以外の帳票に対する分割候補の検出処理を実行する（図１４ステップＳ４０１）。
【００７５】
次に、図１３を用いて、帳票分割装置１１が実行する分割候補の検出処理のうち、帳票定義体が示す帳票の形式が集計表形式であった場合の処理について説明する。図１３は、集計表形式の帳票に対する分割候補の検出処理の流れを説明するためのフローチャートである。帳票分割装置１１は、帳票定義体が示す帳票の形式が集計表形式であると判定したことをトリガーとして（ステップＳ２０３肯定）、処理を開始する。
【００７６】
まず、帳票分割装置１１は、ヘッダ部を一時ファイルに格納する（ステップＳ３０１）。次に、帳票分割装置１１は、ボディ部を一時ファイルに格納する（ステップＳ３０２）。次に、帳票分割装置１１は、ボディ部の途中に改ページか有るかどうかを判定する（ステップＳ３０３）。帳票分割装置１１は、ボディ部に改ページが有ると判定した場合には（ステップＳ３０３肯定）、改ページを行う（ステップＳ３０４）。
【００７７】
次に、帳票分割装置１１は、改ページに続くボディ部がまだあるかどうか判定する（ステップＳ３０５）。帳票分割装置１１は、改ページに続くボディ部がある場合には（ステップＳ３０５肯定）、改ページに続いてボディ部を一時ファイルに格納する（ステップＳ３０２）。一方、帳票分割装置１１は、改ページに続くボディ部がない場合には（ステップＳ３０５否定）、テイル部を一時ファイルに格納し（ステップＳ３０６）、分割候補の検出処理を終了する。
【００７８】
一方、帳票分割装置１１は、ボディ部の途中に改ページがないと判定した場合には（ステップＳ３０３否定）、続きのボディ部があるかどうか判定する（ステップＳ３０５）。また、帳票分割装置１１は、改ページに続くボディ部が無い場合には（ステップＳ３０５否定）、テイル部を一時ファイルに出力し（ステップＳ３０６）、処理を終了する。
【００７９】
次に、図１４を用いて、帳票分割装置１１が実行する分割候補の検出処理のうち、帳票定義体が示す帳票の形式が集計表形式ではなかった場合の処理について説明する。図１４は、集計表形式以外の帳票に対する分割候補の検出処理の流れを説明するためのフローチャートである。帳票分割装置１１は、帳票定義体が示す帳票の形式が集計表形式ではないと判定したことをトリガーとして（ステップＳ２０３否定）、処理を開始する。
【００８０】
まず、帳票分割装置１１は、帳票データ群に格納された情報を、順に一時ファイルに出力する（ステップＳ４０１）。次に、帳票分割装置１１は、一時ファイルに出力される情報の途中に改ページがあるかどうかを判定する（ステップＳ４０２）。帳票分割装置１１は、一時ファイルに出力される情報の途中に改ページがある場合には（ステップＳ４０２肯定）、後述するデータサイズの算出を実行する（ステップＳ１０４、図１５ステップＳ５０１）。
【００８１】
一方、帳票分割装置１１は、一時ファイルに出力される情報の途中に改ページが無い場合には（ステップＳ４０２否定）、一時ファイルに出力された情報に作成されたチェックサムを付し、帳票ファイルとして出力する（ステップＳ４０３）。その後、帳票分割装置１１は、処理を終了する。
【００８２】
次に、図１５を用いて、分割処理の流れを説明する。図１５は、分割出力処理の流れを説明するためのフローチャートである。帳票分割装置１１は、分割候補の検出処理が終了したことをトリガーとして（ステップＳ１０２、ステップＳ３０６、ステップＳ４０２肯定）、処理を開始する。
【００８３】
まず、帳票分割装置１１は、一時ファイルのファイルサイズを圧縮比率「Ｒ」で除算した値が、帳票ファイルのファイルサイズの上限「Ｓ」よりも大きいかどうか判定する（ステップＳ５０１）。帳票分割装置１１は、一時ファイルのファイルサイズを「Ｒ」で除算した値が「Ｓ」よりも大きい場合には（ステップＳ５０１肯定）、区切りの候補によって区切られた複数の帳票が一時ファイルに格納されているかどうか判定する（ステップＳ５０２）。すなわち、帳票分割装置１１は、一つ以上の区切りの候補が一時ファイルに格納されているかどうか判定する。
【００８４】
帳票分割装置１１は、区切りの候補が格納されていると判定した場合には（ステップＳ５０２肯定）、一時ファイルに格納された情報のうち、直前に格納した区切りの候補までの情報に作成されたチェックサムを付し、帳票ファイルとして出力する（ステップＳ５０３）。
【００８５】
次に、帳票分割装置１１は、帳票データ群に続きのデータがあるかどうかを判定する（ステップＳ５０４）。帳票分割装置１１は、帳票データ群に続きのデータがあると判定した場合には（ステップＳ５０４肯定）、改ページを行い（ステップＳ５０５）、続きのデータを一時ファイルに出力する（図１３ステップＳ３０１、図１４ステップＳ４０１）。
【００８６】
一方、帳票分割装置１１は、帳票データ群に続きのデータがないと判定した場合には（ステップＳ５０４否定）、一時ファイルに残った情報に作成されたチェックサムを付与し、帳票ファイルとして出力する（ステップＳ５０６）。その後、帳票分割装置１１は、処理を終了する。
【００８７】
また、帳票分割装置１１は、一時ファイルのファイルサイズを圧縮比率「Ｒ」で除算した値が、ファイルサイズの上限「Ｓ」以下の場合には（ステップＳ５０１否定）、帳票データ群に続きのデータがあるかどうか判定する（ステップＳ５０４）。また、帳票分割装置１１は、区切りの候補が格納されていないと判定した場合には（ステップＳ５０２否定）、分割不可時の動作「Ｍ」がエラー送信を示しているかどうかを判定する（ステップＳ５０７）。
【００８８】
帳票分割装置１１は、分割不可時の動作「Ｍ」がエラー送信を示していると判定した場合には（ステップＳ５０７肯定）、エラーを示す情報をユーザ端末２０へ送信する（ステップＳ５０８）。一方、帳票分割装置１１は、分割不可時の動作「Ｍ」がエラー送信を示していないと判定した場合には（ステップＳ５０７否定）、処理を継続し、帳票データ群に続きのデータがあるかどうかを判定する（ステップＳ５０４）。
【００８９】
[実施例２の効果]
上述したように、帳票分割装置１１を備えた帳票システム１０は、帳票データ群を複数の帳票ファイルに分割する場合には、帳票データ群に含まれる帳票の終端を用いて、区切りの候補を検出する。そして、帳票分割装置１１は、区切りの候補を用いて帳票データ群を分割する場合には、分割された各帳票ファイルが所定のデータサイズに収まるように、帳票データ群を分割する。
【００９０】
このため、帳票システム１０は、帳票を複数の帳票ファイルに分割することなく、帳票データ群を帳票単位で複数の帳票ファイルに分割することができる。すなわち、帳票システム１０は、帳票データ群を利用に適した位置で分割することができる。
【００９１】
結果として、帳票システム１０は、分割された全帳票ファイルを結合せずとも参照することができる帳票ファイルを出力する。また、帳票システム１０は、帳票を複数の帳票ファイルに分割することが無いので、利用に適した帳票ファイルを出力することができる。
【００９２】
また、帳票システム１０は、帳票データ群を分割する場合には、区切りの候補で区切られた各帳票のデータサイズを順に加算し、データサイズの合計が所定のデータサイズに収まる範囲を帳票ファイルとして出力する。このため、帳票システム１０は、分割された各帳票ファイルのデータサイズを所定のデータサイズ以下に収めることができる。
【００９３】
また、帳票システム１０は、各帳票ファイルに対して、各帳票ファイルの改変を防ぐためのチェックサムを作成し、作成されたチェックサムを各帳票ファイルに対して付与する。このため、帳票システム１０は、各帳票ファイルの原本性を保証することができる。
【実施例３】
【００９４】
これまで実施例１および実施例２について説明したが、実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例３として本発明に含まれる他の実施例を説明する。
【００９５】
（１）帳票データ群について
上述した実施例では、帳票データ群を複数の帳票ファイルに分割した。しかし、実施例はこれに限定されるものではなく、例えば、一連の住所録に係る情報を市町村単位で複数のファイルに分割してもよい。少なくとも、独立した一連のデータを複数含むデータ群を分割すればよい。
【００９６】
また、実施例２に係る帳票システム１０は、帳票ファイルをユーザ端末２０に対して送信した。しかし、実施例はこれに限定されるものではなく、例えば、作成された帳票ファイルを記憶する帳票ファイル記憶部を有し、帳票ファイルを帳票ファイル記憶部に格納する帳票システムであってもよい。
【００９７】
（２）帳票の形式について
上述した実施例では、集計表形式の帳票について説明した。しかし、実施例はこれに限定されるものではなく、例えば、３枚つづりの複写帳票形式であってもよい。このような帳票形式の帳票を複数含む帳票データ群を分割する場合には、各帳票の終端として、３枚つづりの帳票のうち、３枚目の帳票の終端を識別すればよい。
【００９８】
（３）チェックサムについて
上述した実施例では、出力された帳票ファイルの原本性を保証するために、チェックサムを付与していた。しかし、実施例はこれに限定されるものではなく、帳票ファイルの改ざんを防止、又は帳票ファイルの改ざんを発見し、帳票ファイルの原本性を保証する技術であればよい。また、実施例では、チェックサムを帳票ファイルに付与したが、実施例はこれに限定されるものではない。例えば、帳票システムは、帳票ファイルからチェックサムを作成し、作成されたチェックサムを帳票ファイルとは別に保存、又は、管理する手段を別に有してもよい。
【００９９】
（４）プログラム
ところで、実施例１に係る分割装置、および実施例２に係る帳票システムは、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを分割装置、又は、帳票システムが有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図１６を用いて、実施例１に示した分割装置と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１６は、分割プログラムを実行するコンピュータの一例を説明するための図である。
【０１００】
図１６に例示されたコンピュータ２００は、ＲＡＭ（Random Access Memory）１２０、ＲＯＭ（Read Only Memory）１３０がバス１７０で接続される。また、図１６に例示されたコンピュータ２００は、ＣＰＵ（Central Processing Unit）１４０がバス１７０で接続される。さらにバス１７０には、データ群を記憶する記憶装置と通信するためのＩ／Ｏ（Input Output）１６０が接続される。
【０１０１】
ＲＯＭ１３０には、識別プログラム１３２、判定プログラム１３３、算出プログラム１３４、分割プログラム１３５があらかじめ保持される。ＣＰＵ１４０が各プログラム１３２〜１３５をＲＯＭ１３０から読み出して実行することによって、図１６に示す例では、各プログラム１３２〜１３５は、識別プロセス１４２、判定プロセス１４３、算出プロセス１４４、分割プロセス１４５として機能する。なお、各プロセス１４２〜１４５は、図１に示した各部２〜５と同様の機能を発揮する。また、各プロセス１４２〜１４５は、実施例２に係る各部と同等の機能を発揮するようにすることも可能である。
【０１０２】
なお、本実施例で説明した分割プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＭＯ（Magneto Optical Disc）、ＤＶＤ（Digital Versatile Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１０３】
１  情報処理装置
２  識別部
３  検出部
４  算出部
５  分割部
６  データ群記憶装置
１０  帳票システム
１１  帳票分割装置
２０  ユーザ端末
【図１】
2011138404.tif 000003
【図２】
2011138404.tif 000004
【図３】
2011138404.tif 000005
【図４】
2011138404.tif 000006
【図５】
2011138404.tif 000007
【図６】
2011138404.tif 000008
【図７】
2011138404.tif 000009
【図８】
2011138404.tif 000010
【図９】
2011138404.tif 000011
【図１０】
2011138404.tif 000012
【図１１】
2011138404.tif 000013
【図１２】
2011138404.tif 000014
【図１３】
2011138404.tif 000015
【図１４】
2011138404.tif 000016
【図１５】
2011138404.tif 000017
【図１６】
2011138404.tif 000018
【図１７】
2011138404.tif 000019
【図１８】
2011138404.tif 000020