(57)【要約】【課題】本発明は、出力されるデータの並び順が異なる電子帳票のデータをユーザの手間なく比較可能な仕組みを提供する。【解決手段】電子帳票を作成し、管理可能なサーバ装置と、情報処理装置とが通信可能に接続された電子帳票システムであって、まず帳票データをサーバ装置等から取得し、取得した帳票データを編集可能なデータ（ＣＳＶ形式）に変換する。そしてＣＳＶ形式に変換した編集可能な帳票データから、データの無い空白項目と、当該空白項目に補完可能なデータとを特定する。特定した前記補完可能なデータは、空白項目に挿入することでデータの空白部分を埋めていく。データを挿入することで空白項目が無い状態の帳票データを出力することで、文字コード変換に伴い差異が発生した部分を補完可能とする。【選択図】図７
2018106454.tif 000002
【特許請求の範囲】
【請求項１】
電子帳票を出力可能なサーバ装置と、情報処理装置とが通信可能に接続された電子帳票システムであって、
帳票データを取得する取得手段と、
前記取得手段で取得した帳票データを編集可能なデータに変換する変換手段と、
前記変換手段で変換した編集可能なデータのうち、空白項目と、当該空白項目に補完可能なデータとを特定する特定手段と、
前記特定手段で特定した前記補完可能なデータを、前記空白項目に挿入する挿入手段と、
前記挿入手段で前記空白項目に前記補完可能なデータを挿入して前記空白項目が無い状態の帳票データを出力する出力手段と、
を備えることを特徴とする電子帳票システム。
【請求項２】
前記変換手段は、前記帳票をテキストデータに変換することを特徴とする請求項１に記載の電子帳票システム。
【請求項３】
前記電子帳票システムは、
前記変換手段で編集可能な状態に変換した前記帳票データであって、前記帳票データを構成するデータの並ぶ順序を変更する順序変更手段をさらに備えることを特徴とする請求項1または２に記載の電子帳票システム。
【請求項４】
前記取得手段は、複数の異なるサーバ装置から第１の帳票データと第２の帳票データを取得し、
前記順序変更手段は、前記第１の帳票データと前記第２の帳票データとを構成するデータの並び順を同じになるように変更することを特徴とする請求項３に記載の電子帳票システム。
【請求項５】
前記電子帳票システムは、前記出力手段で出力した複数の帳票データを比較する比較手段を更に備え、
前記出力手段は、前記複数の帳票データを比較した結果、一致している箇所と一致していない箇所を識別可能な状態で出力することを特徴とする請求項１乃至４いずれか１項に記載の電子帳票システム。
【請求項６】
前記比較手段は、前記帳票データを構成するデータのレコードごとに複数の帳票データを比較し、
前記出力手段は、前記比較手段でレコードごとに比較した比較結果を、レコードごとに識別可能な状態で出力することを特徴とする請求項５に記載の電子帳票システム。
【請求項７】
前記特定手段は、前記帳票データのレコードごとに参照して前記空白項目と前記補完可能なデータを特定し、
前記挿入手段は、前記特定手段で特定した空白項目を、当該空白項目の一つ前のレコードのデータを挿入することで補完可能とすることを特徴とする請求項１乃至６のいずれか１項に記載の電子帳票システム。
【請求項８】
前記電子帳票システムは、
前記変換手段で前記帳票データを変換するための定義情報を記憶する記憶手段を更に備え、
前記変換手段は、前記記憶手段に記憶された前記定義情報を用いて前記帳票データを編集可能なデータに変換することを特徴とする請求項１乃至７のいずれか１項に記載の電子帳票システム。
【請求項９】
電子帳票を出力可能なサーバ装置と、情報処理装置とが通信可能に接続された電子帳票システムの制御方法であって、
帳票データを取得する取得ステップと、
前記取得ステップで取得した帳票データを編集可能なデータに変換する変換ステップと、
前記変換ステップで変換した編集可能なデータのうち、空白項目と、当該空白項目に補完可能なデータとを特定する特定ステップと、
前記特定ステップで特定した前記補完可能なデータを、前記空白項目に挿入する挿入ステップと、
前記挿入ステップで前記空白項目に前記補完可能なデータを挿入して前記空白項目が無い状態の帳票データを出力する出力ステップと、
を備えることを特徴とする電子帳票システムの制御方法。
【請求項１０】
電子帳票を出力可能なサーバ装置と、情報処理装置とが通信可能に接続された電子帳票システムとして機能させるプログラムであって、
前記電子帳票システムを、
帳票データを取得する取得手段と、
前記取得手段で取得した帳票データを編集可能なデータに変換する変換手段と、
前記変換手段で変換した編集可能なデータのうち、空白項目と、当該空白項目に補完可能なデータとを特定する特定手段と、
前記特定手段で特定した前記補完可能なデータを、前記空白項目に挿入する挿入手段と、
前記挿入手段で前記空白項目に前記補完可能なデータを挿入して前記空白項目が無い状態の帳票データを出力する出力手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力されるデータの並び順が異なる電子帳票のデータをユーザの手間なく比較可能な電子帳票システム、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
電子帳票を管理、作成するシステムにおいて、ホストコンピュータ等の現行システムからオープンシステム等の新システムにシステムを移行する際、現行システムと新システムで出力される帳票の内容は一致することが求められる。この電子帳票の内容の一致をもって、システム移行に伴うプログラム変換、及びデータ変換が正しく実施されたことが保証可能となる。
【０００３】
電子帳票の比較検証を行う際には、現行システムで出力された帳票と新システムで出力された帳票の対応付けや、電子帳票の種類が複数ある場合の種類ごとの検証方法の確立など、比較検証に検証実施者の手間を要する。また、目視確認では、見落としが発生する可能性がある。
【０００４】
そこで、ファイル比較ソフトを使用した、電子帳票内の行比較の技術が開示されている。特許文献１では、現行システムで出力される帳票と新システムで出力される帳票をそれぞれコピーしたものを、現行システム用の出力先、新システム用の出力先、というように種類毎に出力先を指定して生成する。こうすることで、複数種類の帳票が対応付けされていなくても、種類が同じ帳票をファイル毎に分けることで容易に比較可能にする技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−２１５０７号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、電子帳票を新システムに移行する際、データの文字コードが変わる場合がある。例えば、ＥＢＣＤＩＣ（  Ｅｘｔｅｎｄｅｄ  Ｂｉｎａｒｙ  Ｃｏｄｅｄ  Ｄｅｃｉｍａｌ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｃｏｄｅ）からＳｈｉｆｔ  ＪＩＳコード（以下、ＳＪＩＳ）などに変わる場合が該当する。その際、ＥＢＣＤＩＣとＳＪＩＳでは文字コードの並びが異なるため、ソート順も変わる。例えば、ＥＢＣＤＩＣは「空白」、「カナ」、「英字」、「数字」の順である。一方ＳＪＩＳでは、「空白」、「数字」、「英字」、「カナ」の順となる。その結果、帳票の出力順の条件となるキーが英数字混在である場合、現行システム（ＥＢＣＤＩＣ）で英字から数字の順に出力されていた帳票が、数字から英字の順に出力されることとなる。
【０００７】
このようにソート順が変更されると、それぞれのシステムで出力されるデータの出力順も変わる。そのため旧システムと新システムで出力された帳票の内容に差異がない事を確認する行比較（ｄｉｆｆ）の方法を用いて比較しようとしても、現新それぞれのシステムで出力される電子帳票のデータの整合性を適切に比較することが出来なくなる問題が発生する。
【０００８】
例えば、図４を用いて説明する。図４は現行システムで出力された帳票と新システムで出力された帳票を並べた図である。データの内容は同じであっても、データが出力される順番が変更されているため、明細の見出し位置や各ページに出力されるデータも異なっていることが分かる。この帳票を機械的に行比較したとしても、当然合致しない。
【０００９】
そこで、キーを指定してデータをソートした上で行比較を行う。図４のキー指定ソート後の行比較結果４００は、上段の現新それぞれのシステムで出力された帳票を、「品名コード４０１」をキーに指定して行比較した結果である。ソートしてデータを並び替えたものの、見出し（地域名、支店等の記載）が表示される行や改ページ位置等も異なってしまっているため、単純に並び替えても同じように並ばず、行比較できない。また、ソート処理を行った場合に見出しの位置が変更されてしまうため、例えば「キャベツ」は大阪のキャベツなのか東京のキャベツなのか、といったところも不明確になってしまう。こうした文字コード変換時に発生する課題については特許文献１の技術では解決できない。
【００１０】
そこで本発明は、出力されるデータの並び順が異なる電子帳票のデータをユーザの手間なく比較可能な仕組みを提供する。
【課題を解決するための手段】
【００１１】
本発明は、電子帳票を出力可能なサーバ装置と、情報処理装置とが通信可能に接続された電子帳票システムであって、帳票データを取得する取得手段と、前記取得手段で取得した帳票データを編集可能なデータに変換する変換手段と、前記変換手段で変換した編集可能なデータのうち、空白項目と、当該空白項目に補完可能なデータとを特定する特定手段と、前記特定手段で特定した前記補完可能なデータを、前記空白項目に挿入する挿入手段と、前記挿入手段で前記空白項目に前記補完可能なデータを挿入して前記空白項目が無い状態の帳票データを出力する出力手段と、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、出力されるデータの並び順が異なる電子帳票のデータをユーザの手間なく比較可能な効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本実施形態のシステム構成の一例を示す図である。
【図２】情報処理装置１０１、帳票作成サーバＡ１０２、帳票作成サーバＢ１０３のハードウェア構成の一例を示す図である。
【図３】各装置の機能構成を示す図である。
【図４】課題を説明する図である。
【図５】本実施形態の一連の処理の流れを示すフローチャートである。
【図６】現行システムで出力された（ａ）帳票６００、新システムで出力された（ｂ）帳票６００の一例を示す図である。
【図７】本実施形態の一連の処理の流れを示すフローチャートである。
【図８】帳票ＣＳＶ化処理の一連の流れを示すフローチャートである。
【図９】帳票定義情報を構成する各情報テーブルの一例を示す図である。
【図１０】行判定処理の一連の流れを示すフローチャートである。
【図１１】項目取得処理の一連の流れを示すフローチャートである。
【図１２】ＣＳＶ化した帳票であるＣＳＶ化Ａ帳票１２００、ＣＳＶ化Ｂ帳票１２１０の一例を示す図である。
【図１３】図１２のＣＳＶ化した帳票をそれぞれソートしてデータを並べ替えた様子を示す図である。
【図１４】２つの帳票を比較した結果を示す比較結果１４００と比較結果１４１０の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１５】
図１は、本発明の電子帳票システムのシステム構成の一例を示す図である。情報処理装置１０１と、帳票作成サーバＡ１０２と、帳票作成サーバＢ１０３とが（ＬＡＮ１０４（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークを介して、相互にデータ通信可能に接続されている。尚、図１のネットワーク上に接続される各種端末あるいはサーバの構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００１６】
本実施形態における情報処理装置１０１は、帳票作成サーバＡ１０２や帳票作成サーバＢで作成した帳票データを出力するためや、ユーザからの指示を受け付け複数の帳票作成サーバで作成したそれぞれの帳票データの比較指示を受け付けるために用いられる。ここで比較される帳票データは、一方の帳票作成サーバ（帳票作成システムまたはホストコンピュータ）から他方の帳票作成サーバに移行された帳票データであり、移行前後で帳票データの内容が一致するか否かを確認するために帳票データの比較が行われる。
【００１７】
帳票作成サーバＡ１０２と帳票作成サーバＢ１０３とは、いわゆるサーバ装置である。この２つのサーバは、入力を受け付けたデータをもとにそれぞれ異なるプログラムを用いて帳票データを作成し、作成した帳票データを出力可能である。本実施形態では、システムを移行するにあたってデータを現行システムの帳票作成サーバＡ１０２から新システムの帳票作成サーバＢ１０３に移行する。そしてデータとシステムの移行に伴い、文字コードが現行システムで用いられる文字コードから新システムで用いられる文字コードに変換される場合を想定している。
【００１８】
図２は、本実施形態における情報処理装置１０１、帳票作成サーバＡ１０２、帳票作成サーバＢ１０３のハードウェア構成の一例を示す図である。
【００１９】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２０】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２１】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２２】
また、入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイスといった入力デバイス２０９からの入力を制御する。
【００２３】
ビデオコントローラ（ＶＣ）２０６は、ディスプレイ２１０等の表示器への表示を制御する。表示器はＣＲＴや液晶ディスプレイでも構わない。
【００２４】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２５】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００２６】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２７】
本発明の各種装置及びサーバが後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２８】
次に、情報処理装置１０１と帳票作成サーバＡ１０２、及び帳票作成サーバＢ１０３の機能構成について図３を用いて説明する。尚、図３の情報処理装置１０１と帳票作成サーバＡ１０２、及び帳票作成サーバＢ１０３の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
【００２９】
情報処理装置１０１は機能部として、ソート処理部３０１、比較処理部３０２、帳票データ取得部３０３、通信制御部３０４を備える。
【００３０】
ソート処理部３０１は、帳票作成サーバＡ１０２及び帳票作成サーバＢ１０３で作成され出力された帳票のデータの集合を一定の規則に従って並べたり、データの並び順を順序変更したりする機能部である。本実施形態では情報処理装置１０１の機能部として説明するが、帳票作成サーバＡ１０２及び帳票作成サーバＢ１０３で機能する機能部であってもよい。
【００３１】
比較処理部３０２は、同一の入力データを用いて帳票作成サーバＡ１０２及び帳票作成サーバＢ１０３でそれぞれ作成され出力された帳票データを比較する機能部である。システム移行に伴い帳票データの内容に変更がない事を比較処理部３０２で比較した結果を用いて判断する。必要に応じて帳票データをソート処理部３０１の機能によりソートして比較する。
【００３２】
帳票データ取得部３０３は、情報処理装置１０１が帳票作成サーバＡ１０２及び帳票作成サーバＢ１０３から帳票データを取得する機能部である。取得した同一のデータから作成された複数の帳票データは比較処理部３０２の機能により比較される。
【００３３】
通信制御部３０４は、帳票作成サーバＡ１０２及び帳票作成サーバＢ１０３と通信するための機能部である。
【００３４】
帳票作成サーバＡ１０２、及び帳票作成サーバＢ１０３の機能について説明する。帳票作成サーバＡ１０２と帳票作成サーバＢ１０３は、通信制御部３０５と、コード変換部３０６と、帳票生成部３０７と、帳票出力部３０８とを備える。
【００３５】
通信制御部３０５は、情報処理装置１０１やその他装置と通信するための機能部である。
【００３６】
コード変換部３０６は、帳票の生成に用いられる文字コードを変換する機能部である。例えば、帳票作成サーバＡ１０２から取得した帳票のデータの文字コードを、現行システムの帳票作成サーバＡ１０２出用いられている文字コードから、新システムの帳票作成サーバＢ１０３で用いられている文字コードにデータの内容は変えずに変更する。
【００３７】
帳票生成部３０７は、入力を受け付けたデータを元にそれぞれのシステムのプログラムを実行し、帳票を生成するための機能部である。
【００３８】
帳票出力部３０８は、帳票生成部３０７で生成した帳票データを出力するための機能部である。
【００３９】
次に、本実施形態における一連の処理の流れについて、図５に示すフローチャートを用いて説明する。図５のフローチャートは帳票作成サーバＡ１０２と帳票作成サーバＢ１０３が帳票データを作成する処理である。尚、ステップＳ５０１からステップＳ５０８の処理は帳票作成サーバＡ１０２と帳票作成サーバＢ１０３のどちらで行われてもよい。本実施形態では帳票作成サーバＡ１０２を現行システムのサーバ装置、帳票作成サーバＢ１０３を新システムのサーバ装置と想定して説明を行う。
【００４０】
ステップＳ５０１では、帳票作成サーバＡ１０２のＣＰＵ２０１は、入力データを取得する。
【００４１】
ステップＳ５０２では、帳票作成サーバＡ１０２のＣＰＵ２０１は、通信制御部３０５の機能によりステップＳ５０１で取得した入力データを帳票作成サーバＢ１０３に送信する。
【００４２】
ステップＳ５０３では、帳票作成サーバＢ１０３のＣＰＵ２０１は、通信制御部３０５の機能により帳票作成サーバＡ１０２から送信された入力データを受信する。
【００４３】
ステップＳ５０４では、帳票作成サーバＡ１０２のＣＰＵ２０１は、帳票生成部３０７の機能により帳票データを生成し、帳票出力部３０８の機能により帳票データＡを出力する。
【００４４】
ステップＳ５０５では、帳票作成サーバＡ１０２のＣＰＵ２０１は、ステップＳ５０４で出力した帳票データＡを、通信制御部３０５の機能により情報処理装置１０１に送信して一連の処理を終了する。
【００４５】
ステップＳ５０６では、帳票作成サーバＢ１０３のＣＰＵ２０１は、コード変換部３０６の機能により、ステップＳ５０３で受信した入力データの文字コードを変換する。ここで変換する文字コードは帳票作成サーバＢ１０３に対応する文字コードである。例えば、ステップＳ５０１で入力を受け付けた帳票データＡのコードページをＥＢＣＤＩＣからＳＪＩＳに変換する。
【００４６】
ステップＳ５０７では、帳票作成サーバＢ１０３のＣＰＵ２０１は、帳票生成部３０７の機能により帳票データを生成し、帳票出力部３０８の機能により帳票データＢを出力する。
【００４７】
ステップＳ５０８では、帳票作成サーバＢ１０３のＣＰＵ２０１は、ステップＳ５０７で出力した帳票データＢを、通信制御部３０５の機能により情報処理装置１０１に送信して一連の処理を終了する。
【００４８】
図６の（ａ）帳票６００と（ｂ）帳票６００は、それぞれステップＳ５０４で出力した帳票ＡとステップＳ５０７で出力した帳票Ｂを示す。（ａ）帳票６００は帳票作成サーバＡ１０２で出力した帳票であり、（ｂ）帳票６００は、コード変換を実行したことにより、文字列の並び順や見出しの挿入箇所が変更された帳票作成サーバＢ１０３で出力した帳票である。文字列の並び順が変更されたことで、（ａ）帳票６００と（ｂ）帳票６００とを単純に行比較して機械的に位置しているか否かを判断することが出来ない。そこで、それぞれの帳票データを比較可能にする処理を次のフローチャートで説明する。
【００４９】
以上で、帳票作成サーバＡ１０２と帳票作成サーバＢ１０３が帳票データを作成する処理についての説明である。
【００５０】
次に、帳票比較処理について図７のフローチャートを用いて説明を行う。図７は図５で作成した（ａ）帳票６００と（ｂ）帳票６００を比較する処理の一連の流れを説明したフローチャートとである。尚、本実施形態では情報処理装置１０１において複数の帳票データの内容を比較しているが、比較の処理を実施するのは帳票作成サーバＡ１０２及び帳票作成サーバＢ１０３でもよいし、外部の他の装置でも良い。
【００５１】
ステップＳ７０１では、情報処理装置１０１のＣＰＵ２０１は、帳票データ取得部３０３の機能により、帳票作成サーバＡ１０２と帳票作成サーバＢ１０３から送信された帳票データＡと帳票データＢを受信したか否かを判定する。ステップＳ７０１では、帳票データＡと帳票データＢのどちらも受信した際に受信完了と判定する。つまり、どちらか一方の帳票データだけ受信しても受信した（受信完了）と判定しない。帳票データＡと帳票データＢのどちらも受信したと判定した場合はステップＳ７０２に処理を進める。そうでない場合は帳票データＡと帳票データＢのどちらも受信したと判定するまでステップＳ７０１の処理を繰り返す。
【００５２】
ステップＳ７０２では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ７０１で取得した帳票データＡを編集可能なＣＳＶ形式（テキストデータ）に変換する。ＣＳＶ形式に変換する際には帳票定義情報の各種情報を用いて変換する。ＣＳＶ形式に変換する処理の詳細については後述する。
【００５３】
ステップＳ７０３では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ７０２でＣＳＶ形式に変換した帳票データＡを出力する（以下、出力帳票Ａ）。
【００５４】
ステップＳ７０４では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ７０１で受信した帳票データＢをＣＳＶ形式に変換する。尚、このＣＳＶ形式に変換する処理の流れはステップＳ７０２の処理と同様である。ＣＳＶ形式に変換する処理の詳細については後述する。
【００５５】
ステップＳ７０５では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ７０４でＣＳＶ形式に変換した帳票データＢを出力する（以下、出力帳票Ｂ）。
【００５６】
ステップＳ７０６では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ７０３とステップＳ７０５で出力された出力帳票Ａと出力帳票Ｂそれぞれをソート処理するための、ソートする対象のキーの指定を受け付ける。
【００５７】
ステップＳ７０７では、情報処理装置１０１のＣＰＵ２０１は、ソート処理部３０１の機能により、ステップＳ７０６で指定を受け付けたキーを元に出力帳票Ａと出力帳票Ｂとをソートする。ソート処理を行うことにより、帳票を構成するデータが任意の順番に並び変わる。こうして並び順を変更して比較対象の出力帳票Ａと出力帳票Ｂのデータの並び順をそろえて比較しやすくする。
【００５８】
ステップＳ７０８では、情報処理装置１０１のＣＰＵ２０１は、比較処理部３０２の機能により、ＣＳＶの形式に変換した出力帳票Ａと出力帳票Ｂの内容を比較する。比較の方法は対応する行ごとに比較する行比較処理を行う。
【００５９】
ステップＳ７０９では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ７０８で比較した比較結果を出力する。
【００６０】
以上が、図７を用いた複数の帳票を比較する処理の一連の流れである。
【００６１】
次に、図８を用いて帳票をＣＳＶに変換する処理の一連の流れについて説明する。ＣＳＶに変換する処理の流れは図８乃至図１１を用いて説明する。
【００６２】
ステップＳ８０１では、情報処理装置１０１のＣＰＵ２０１は、あらかじめ定められている帳票定義情報を読み込む。帳票定義情報は情報処理装置１０１の記憶部に格納されているものを呼び出し読み込んでもよいし、サーバ装置等外部から取得してもよい。
【００６３】
図９は帳票定義情報を示すテーブル図である。それぞれのテーブルは、帳票の構成情報の定義内容を示し、この定義情報をもとに帳票をＣＳＶ化する。帳票定義情報は、ページ定義情報９００、行判定定義情報９１０、項目定義情報９２０を含む。尚、図９は帳票定義情報の一例を示し、図９に示す情報以外の帳票ごとに必要な他の定義情報を備えてもよい。ページ定義情報９００は、ページの区切りに関する情報を備え、ナンバー９０１と、最大頁行数９０２と、最大明細行数９０３とを備える。ナンバー９０１は、ページ定義情報９００のレコードごとに一意に割り振られる識別番号である。最大頁行数９０２は、１ページが備える行数の最大値を示す。最大明細行数９０３は、１ページが備える行数のうち、明細の行の最大値を示す。行判定定義情報９１０は、帳票の行がヘッダ行、フッタ行、明細行のどの行に該当するかを判定するための条件を示す。行判定定義情報９１０は、ナンバー９１１と、項目種別９１２と、行判定条件９１３とを含む。ナンバー９１１は、行判定定義情報９１０のレコードごとに一意に割り振られる識別番号である。項目種別９１２は、行の種別情報を示す。行判定条件９１３は、参照する行がどの項目種別に該当するかを判定するための条件を示す。項目定義情報９２０は、ＣＳＶ化する際に各カラムの内容の取得方法に関する情報を定義する。項目定義情報９２０は、ナンバー９２１と、項目種別９２２と、項目名９２３と、項目位置９２４と、項目長９２５と、項目引継ぎ９２６とを含む。ナンバー９２１は、項目定義情報９２０のレコードごとに一意に割り振られる識別番号である。項目種別９２２は、項目の種別を示す。項目名９２３は、ＣＳＶ化する際の各項目の名称を示す。項目位置９２４は、それぞれの項目に定義された、行における項目取得開始位置を示す。項目長９２５は、項目位置からどれだけ値を取得するかを示す。項目引継ぎ９２６は、項目が空白（空白項目）であった場合に空白項目の位置と同位置にある前のレコードの値（補完可能なデータ）とを特定し当該値を引き継ぐか否かをＮＯまたはＹＥＳで示す。項目引継ぎ９２６がＮＯであれば一つ前のレコードの値や情報を引継がず、ＹＥＳであれば一つ前のレコードの値や情報を引き継ぐ。
【００６４】
図８に説明を戻す。ステップＳ８０２からステップＳ８０８は複数回処理を繰り返す。ステップＳ８０２では、情報処理装置１０１のＣＰＵ２０１は、出力帳票のレコード１行分のデータを読み込み、参照する。読み込む出力帳票は、図６の（ａ）帳票６００または（ｂ）帳票６００である。以降、読み取ったＣＳＶ化情報作成の対象となる行を「解析対象行」とする。
【００６５】
ステップＳ８０３は、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０２で参照した１行が解析対象の行種別か否かを判定する。つまり、解析対象行の項目種別が「ヘッダ」、「明細」、「フッタ」、「対象外」のいずれか否かを判定する。
【００６６】
ここで、図１０を用いて図８の解析対象行の行種別判定処理について詳細を説明する。
【００６７】
ステップＳ１００１では、情報処理装置１０１のＣＰＵ２０１は、判定対象の解析対象行を取得する。
【００６８】
ステップＳ１００２では、情報処理装置１０１のＣＰＵ２０１は、帳票定義情報の行判定定義情報９１０を参照し、行判定条件９１３を参照する。ここでは、ステップＳ１００１で取得した解析行を行判定条件９１３の各判定条件と照らし合わせ、解析行の値が判定条件のいずれかに合致するまで行判定条件９１３を全て参照しステップＳ１００２からステップＳ１００６の処理を繰り返す。
【００６９】
ステップＳ１００３では、情報処理装置１０１のＣＰＵ２０１は、参照している行判定条件９１３に定義されている判定値を解析対象行より取得する。より具体的には、解析対象行より行判定条件９１３の判定位置から、判定長分の値を取得する。例えば、行判定条件９１３の１レコード目であれば、解析対象行の２５桁目から６バイト分の値「発注書」を取得することになる。
【００７０】
ステップＳ１００４では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１００３で取得した取得値が行判定条件９１３の値と合致するか否かを判定する。例えば、取得した値が行判定条件９１３の１レコード目の「発注書」という文字列とイコール（ＥＱ）となるか否かを判定する。取得値が行判定条件９１３の値と合致すると判定した場合はステップＳ１００５に処理を進める。そうでない場合はステップＳ１００６に処理をすすめる。
【００７１】
ステップＳ１００５では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１０４で取得値が行判定条件９１３の値と合致すると判定された場合に、判定が成功した項目種別を判定結果として設定する。
【００７２】
ステップＳ１００６では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１００４で取得値が行判定条件９１３の値と合致しなかった場合に、ステップＳ１００２で読み込んだ判定条件がその他であるか否かを判定する。つまり、「ＣＯＮＤ＝ＯＴＨＥＲ」か否かを判定する。いずれの条件にも該当せず、「ＣＯＮＤ＝ＯＴＨＥＲ」とみなされ、解析対象行は明細行であるとして後述する項目取得処理で処理される。判定条件がその他であると判定された場合はステップＳ１００５に処理を進めて判定結果に設定される。判定条件がその他であると判定されなかった場合はステップＳ１００２からステップＳ１００６のループ処理を終了し、ステップＳ１００７に処理をすすめる
ステップＳ１００７では、情報処理装置１０１のＣＰＵ２０１は、図８のステップＳ８０２で読み込んだ解析対象行がいずれの行判定条件にも合致しない場合に、判定結果をエラーとして設定する。エラーとして処理されると帳票比較処理を中止させる。尚、基本的にいずれの行判定条件にも合致しない場合は「ＣＯＮＤ＝ＯＴＨＥＲ」とみなされ明細行として判定されるため、このエラー処理が行われない場合もある。
【００７３】
以上で、行判定処理の一連の処理の流れの説明を終了する。
【００７４】
図８に説明を戻す。ステップＳ８０４では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０２で読み込んだ解析対象行は明細行の最終行か否かを判定する。最終行か否かの判断基準は、１つ前の解析対象の項目種別９１２が「明細」もしくは「フッタ」であって、現在の解析対象行の項目種別が「ヘッダ」であった場合が該当する。また、ページ定義情報９００の最大頁行数９０２と現在の解析対象行の行が同じか、行数の値を超えた場合や、解析対象行の項目種別が「明細」であり、その明細の行数がページ定義情報９００の最大明細行数９０３の値を超えた場合等が該当する。解析対象行は明細行の最終行であると判定した場合はステップＳ８０５に処理を進める。そうでない場合はステップＳ８０８に処理を進める。
【００７５】
ステップＳ８０５は、情報処理装置１０１のＣＰＵ２０１は、行判定処理で判定して設定した判定結果等を用いて項目定義情報９２０の定義順にＣＳＶ形式で出力する。
【００７６】
ステップＳ８０６では、情報処理装置１０１のＣＰＵ２０１は、各種初期化処理を実施する。ここで初期化する処理は明細行数カウントの初期化等である。
【００７７】
ステップＳ８０７では、情報処理装置１０１のＣＰＵ２０１は、解析対象行の項目種別が「対象外」か否かを判定する。解析対象行が「対象外」と判定された場合はこの行の解析は対象外としてステップＳ８０２に処理を戻し、次の行の解析処理を実行する。解析対象行が「対象外」と判定されなかった場合、つまり解析対象行であると判定した場合はステップＳ８０８に処理を進める。
【００７８】
ステップＳ８０８では、情報処理装置１０１のＣＰＵ２０１は、項目取得処理を開始する。
【００７９】
ここで、図１１のフローチャートを用いて項目取得処理について説明する。
【００８０】
ステップＳ１１０１では、情報処理装置１０１のＣＰＵ２０１は、判定対象の解析行を取得する。
【００８１】
ステップＳ１１０２では、情報処理装置１０１のＣＰＵ２０１は、項目定義情報９２０を読み込む。ここでは、解析対象行の項目種別と項目種別９２２とが同じ定義であり、項目種別９２２に定義される同定義の数分ステップＳ１１０２からステップＳ１１０７はの処理を繰り返す。
【００８２】
ステップＳ１０３では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１０２で読み込んだ項目定義情報９２０の値を用いて解析対象行から取得値を取得する。より具体的には、例えば（ａ）帳票６００の１行目と項目定義情報９２０の１行目を例にすると、（ａ）帳票６００の１行目の２１桁目から４バイト分の値「○○」を取得する。
【００８３】
ステップＳ１１０４では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１１０３で取得した値がすべて空白か否かを判定する。取得した値がすべて空白であると判定した場合はステップＳ１１０５に処理を進める。取得した値がすべて空白であると判定しなかった場合はステップＳ１１０７に処理を進める。
【００８４】
ステップＳ１１０５では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１１０４で取得した値がすべて空白であると判定した場合に、項目引継ぎ９２６を参照し、項目引継ぎ９２６で判定がＹＥＳか否かを判定する。項目引継ぎ９２６がＹＥＳであった場合はステップＳ１１０６に処理を進める。項目引継ぎがＹＥＳでない、つまりＮＯであった場合は取得値を空白のままステップＳ１１０７に処理を進める。
【００８５】
ステップＳ１１０６では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１１０５で項目引継ぎがＹＥＳと判定された場合に、前の一つ前のレコードの同一の取得値を適用する。例えば、（ａ）帳票６００の4行目と、項目定義情報９２０のナンバー９２１のＮｏ９を例にとると、取得値は空白であり項目引継ぎ９２６がＹＥＳであるので一つ前のレコードの「関東」を取得値として適用する。尚、ここでは一つ前のレコードから読み取った取得値を適用するが、適用すべき取得値を引き継げるのであれば適用する取得値は一つ前のレコードでなくともよい。
【００８６】
ステップＳ１１０７では、情報処理装置１０１のＣＰＵ２０１は、取得値を内部メモリＲＡＭ２０３等に記憶する。記憶した内容は明細出力処理時に取り出し出力する。
【００８７】
以上で、項目取得処理の一連の処理の流れの説明を終了する。
【００８８】
図８に説明を戻す。ステップＳ８０９では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０２からステップＳ８０８の処理を帳票の行数分行った後に明細出力処理を実施する。ステップＳ８０９の明細出力処理はステップＳ８０５の出力処理と同様であり、ステップＳ８０５で出力漏れがあった場合はここで出力する。
【００８９】
図１２は図８のステップＳ８０９で最終的に出力されたＣＳＶ形式の帳票データを示す。ＣＳＶ化帳票Ａ１２００は（ａ）帳票６００をＣＳＶ化したものであり、ＣＳＶ化帳票Ｂ１２１０は（ｂ）帳票６００をＣＳＶ化したデータである。このように帳票の明細１レコード単位にＣＳＶ１行に変換し、ＣＳＶ化した際は明細を横断して共通定義となるヘッダ部、フッタ部についてはその各行の先頭に出力する。出力帳票の段階では空白だった見出し等の項目も適用すべきデータですべて空白が埋められた状態で出力される。
【００９０】
以上で、帳票作成サーバ等で作成した出力帳票をＣＳＶ形式に変換する一連の処理流れの説明を終了する。
【００９１】
図１３は、図７のステップＳ７０６でキー指定を受け付け、ステップＳ７０７でソート処理を行い、データの順序を並び替えた様子の一例を示す。ＣＳＶ化して帳票の空白部分のデータが埋まったことで、文字コードの変換による差異が解消され、さらにソート処理を行うことで機械的な行比較を行うことができる状態とすることが可能となる。
【００９２】
図１４は、図７のステップＳ７０８でＣＳＶ化帳票二つを行比較した様子の一例を示す。比較結果１４００は、ＣＳＶ化帳票Ａ１４０１と、比較結果出力１４０２と、ＣＳＶ化帳票Ｂ１４０３とを含む。ＣＳＶ化帳票Ａ１４０１と、ＣＳＶ化帳票Ｂ１４０３はそれぞれ図１３のＣＳＶ化帳票Ａ１２００はとＣＳＶ化帳票Ｂ１２１０であり、比較結果出力１４０２は、二つの帳票データを行比較した結果を識別可能に表示して示す。データの内容が同一であれば「ＴＲＵＥ」、同一でない場合は「ＦＡＬＳＥ」で示す。比較結果１４１０は、比較結果１４００の結果を一つの表にまとめ、内容が一致しなかった項目が何かを示す図である。比較結果１４１０で「ＦＡＬＳＥ」となっている部分はフッタ部のＦ２の項目であり、図１３の図を参照すると、この部分はフッタ部に記載されるページ数を示すことがわかる。文字コードを変換した際に区切りのページが変わることによりデータが記載されるページの位置が変わるため、このページの部分はデータの内容に直接関係しない。そのためこのページの部分をマスクして再度比較するとデータの内容が一致していることがわかる。これにより、帳票作成サーバＡ１０２と帳票作成サーバＢ１０３とで作成した帳票の内容が一致し、エラーなく帳票データを移行できたことが確認できる。
【００９３】
以上説明したように、本実施形態によれば、出力されるデータの並び順が異なる電子帳票のデータをユーザの手間なく比較可能な効果を奏する。
【００９４】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【００９５】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００９６】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００９７】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００９８】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００９９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１００】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１０１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１０２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１０３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１０４】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１０５】
１０１  情報処理装置
１０２  帳票作成サーバＡ
１０３  帳票作成サーバＢ
１０４  ＬＡＮ
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆコントローラ
２０９  入力デバイス
２１０  ディスプレイ
２１１  外部メモリ_
【図１】
2018106454.tif 000003
【図２】
2018106454.tif 000004
【図３】
2018106454.tif 000005
【図４】
2018106454.tif 000006
【図５】
2018106454.tif 000007
【図６】
2018106454.tif 000008
【図７】
2018106454.tif 000009
【図８】
2018106454.tif 000010
【図９】
2018106454.tif 000011
【図１０】
2018106454.tif 000012
【図１１】
2018106454.tif 000013
【図１２】
2018106454.tif 000014
【図１３】
2018106454.tif 000015
【図１４】
2018106454.tif 000016