以下に本発明の一実施形態について図面を参照して説明する。図1には、本実施形態の帳票再作成システム10の全体構成が示されている。また、図2には、データ変換手段23および帳票出力手段24の詳細構成が示され、図3には、帳票再作成システム10による帳票の再作成処理の流れがフローチャートで示されている。さらに、図4には、帳票データのデータフォーマットおよびサブ処理の具体例が示され、図5には、スキップ情報記憶手段34に記憶されたスキップ情報の具体例が示され、図6には、復活項目退避情報記憶手段35に記憶された復活項目退避情報の具体例が示され、図7には、データ変換手段23による項目単位スキップ処理の具体例が示され、図8には、データ変換手段23による復活項目の処理の具体例が示され、図9には、情報作成支援手段25による情報作成支援処理の具体例が示され、図10には、帳票出力手段24による拡張サブ処理の具体例が示されている。
<帳票再作成システム10の全体構成>
図1において、帳票再作成システム10は、1台または複数台のコンピュータにより構成され、再作成指示受付手段21と、帳票データ取得手段22と、データ変換手段23と、帳票出力手段24と、情報作成支援手段25と、帳票データ記憶手段31と、レイアウト変更日記憶手段32と、データフォーマット記憶手段33と、スキップ情報記憶手段34と、復活項目退避情報記憶手段35と、差分情報記憶手段36とを備えて構成されている。
このうち、各手段21〜25は、帳票再作成システム10を構成するコンピュータ本体の内部に設けられた中央演算処理装置(CPU)、およびこのCPUの動作手順を規定する1つまたは複数のプログラム、並びに、主メモリやキャッシュメモリ等の作業用メモリ等により実現される。各手段21〜25の詳細は、後述する。
また、各記憶手段31〜36は、例えばハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)等により好適に実現されるが、記憶容量やアクセス速度等に問題が生じない範囲であれば、例えば、フラッシュ・メモリ、MO、CD、DVD等の他の記録媒体を採用してもよい。なお、これらのうち、各記憶手段34,35,36に記憶される情報は、プログラム内部に記述されていてもよい。各記憶手段31〜36の詳細は、後述する。
さらに、帳票再作成システム10を構成するコンピュータは、WEBベースのシステムとする場合には、ウェブ・アプリケーションサーバやデータベースサーバ等であり、設置するサーバの台数は任意であり、従って、各手段21〜25や各記憶手段31〜36についてのサーバへの配置形態(複数のサーバへの分散配置とするか、1台のサーバにまとめて配置するか等)も任意である。また、データベースサーバを設置する場合には、図示は省略されているが、帳票再作成システム10は、データベース・マネジメント・システム(DBMS)の機能を備えることになる。さらに、帳票再作成システム10は、メインフレーム(ホストコンピュータ)を含む構成としてもよい。
また、帳票再作成システム10には、ネットワーク1を介して、本システムを利用するユーザが操作するユーザ端末40と、システム管理者が操作する管理者端末50とが接続されている。
ここで、ネットワーク1は、インターネット等のような外部ネットワーク(特に接続可能な参加者を限定することのない広範なネットワーク)でもよく、例えばイントラネットやLAN等のような内部ネットワーク(例えば、社内、グループ企業内、工場内、事業所内、学校内、病院内、役所内等で形成された限定的なネットワーク)でもよく、あるいはこれらの組合せ等、様々な形態のものが含まれ、有線であるか無線であるか、さらには有線および無線の混在型であるかは問わず、要するに、複数地点(距離の長短は問わない。)間で、ある程度の速度をもって情報を伝送することができるものであればよい。
また、ユーザ端末40や管理者端末50は、コンピュータにより構成され、例えばマウスやキーボード等の入力手段と、例えば液晶ディスプレイ等の表示手段とを備えている。これらのユーザ端末40や管理者端末50は、例えばスマートフォンやタブレット端末等の携帯機器であってもよい。
<再作成指示受付手段21の構成>
再作成指示受付手段21は、ユーザ端末40からネットワーク1を介して送信されてくるユーザによる帳票の再作成指示情報の入力を受け付ける処理を実行するものである。この際、ユーザ端末40からの要求に応じ、再作成指示情報の入力画面(例えばWEB画面)の表示用データをネットワーク1を介してユーザ端末40へ送信し、ユーザ端末40からの送信データを受信するようにしてもよく、ユーザ端末40に搭載された専用のアプリケーションからの送信データを受信するようにしてもよい。
ここで、ユーザは、帳票の再作成を指示する者であり、再作成の要求者、または要求者からの依頼に応じて再作成を代行する代行者である。例えば、帳票が、税務署長宛に作成される特定口座年間取引報告書である場合には、ユーザは、その報告書に提出者として氏名が記載される者(特定口座開設者)、または、特定口座開設者から報告書作成の依頼を受けて作成を代行する証券会社等の金融機関の担当者である。
また、再作成指示情報には、再作成に用いる再作成対象の帳票データの指定情報と、再作成帳票をいずれのバージョンのレイアウトで出力するのかを指定する出力レイアウト指定情報とが含まれる。
前者の「帳票データの指定情報」は、原帳票を作成した際に保存された帳票データを指定するための情報であり、例えば、原帳票の作成主体(原帳票に記載されている作成名義人)の識別情報や、原帳票の作成年月日(原帳票が作成された過去の作成年月日)、あるいは原帳票の帳票データに識別コードが付されている場合には、その識別コード等である。より具体的には、例えば、帳票が、税務署長宛に作成される特定口座年間取引報告書である場合には、帳票データは、図4に示すようなデータフォーマットで保存されているので、特定口座開設者(証券会社等の金融機関の顧客)の識別情報(顧客コードや顧客氏名等)や、原帳票の作成年月日となる。
後者の「出力レイアウト指定情報」は、拡張機能使用時に指定される情報であり、標準機能を使用する場合には、この指定は必要ない。ユーザが標準機能を使用することを選択した場合には、再作成帳票は、直近のレイアウト(その時点で適用されている最新バージョンのレイアウト)で出力される。一方、ユーザが拡張機能を使用することを選択した場合には、再作成帳票は、直近のレイアウトではなく、ユーザにより指定された指定出力レイアウト(過去のレイアウト)で出力される。
この指定出力レイアウトは、原帳票を作成した際のレイアウトでもよく、この場合は、原帳票の帳票データは、既に指定出力レイアウトに対応するデータフォーマットになっている状態であるから、データフォーマットの変換処理は必要ない。また、指定出力レイアウトは、原帳票が作成された時点のレイアウトよりも過去の時点で適用されていたレイアウトとすることもできる。通常はこのような要求が生じるケースは少ないが、例えば、過去に作成された他の帳票との比較を行う場合等に利用するケースがある。なお、拡張機能における指定出力レイアウトとして、直近のレイアウトを指定することができるようにしてもよい。直近のレイアウトで再作成帳票を出力する場合は、標準機能を選択すればよいが、拡張機能を選択した場合であっても、システム処理上は、直近のレイアウトでの出力の指定を受け付けることができるようにしてもよいという趣旨である。
<帳票データ取得手段22の構成>
帳票データ取得手段22は、再作成指示受付手段21により受け付けた再作成指示情報を用いて、帳票データ記憶手段31に記憶された作成済の帳票データの中から、再作成対象の帳票データを取得する処理を実行するものである。
具体的には、例えば、帳票が、税務署長宛に作成される特定口座年間取引報告書である場合には、帳票データ取得手段22は、図4に示すようなデータフォーマットで保存されている帳票データのうちの顧客コードや顧客氏名(特定口座開設者の識別情報)という項目の値、および作成年月日(原帳票の作成年月日)という項目の値が一致する帳票データを抽出し、取得する。これらの顧客コード、顧客氏名、作成年月日という項目についてのラベル番号(配置位置)やレングス(データ長を示すバイト数)は、すべてのバージョンのデータフォーマットに共通している。なお、仮に、バージョンにより、これらの項目についてのラベル番号(配置位置)が異なっていたとしても、バージョン毎に帳票データの格納場所(例えば、データベースであれば、データを格納するテーブル、ファイルシステムであれば、ファイルの格納フォルダ等)を異なる場所とするデータ保存管理をしていれば、データフォーマット記憶手段33に記憶された各バージョンのデータフォーマットを参照し、各バージョンにおける上記の各項目についてのラベル番号(配置位置)を把握することで、上記の各項目をキーとする抽出処理を行うことができる。
また、帳票データ取得手段22は、レイアウト変更日記憶手段32に記憶されたレイアウトの変更日情報を取得し、取得したレイアウトの変更日情報を、取得した帳票データとともに、データ変換手段23へ渡す処理も実行する。レイアウトの変更日は、各バージョンのレイアウトの適用開始日であり、この情報により、各バージョンのレイアウトの適用期間が判るようになっている。具体的には、レイアウトの変更日は、例えば、帳票が、税務署長宛に作成される特定口座年間取引報告書である場合には、国税庁からの指示で新しいバージョンのレイアウトを適用する場合のその適用開始日である。
<データ変換手段23の構成>
データ変換手段23は、帳票データ取得手段22により取得した再作成対象の帳票データを、出力レイアウトに対応するデータフォーマットに従った帳票データに変換する処理を実行するものである。
ここで、「出力レイアウトに対応するデータフォーマット」とは、標準機能を使用する場合は、直近のレイアウトに対応する直近のデータフォーマットとなり、拡張機能を使用する場合は、ユーザにより指定された指定出力レイアウトに対応するデータフォーマットとなる。
但し、上記のデータ変換手段23の機能説明は、再作成指示受付手段21により再作成指示情報の入力を受け付けた際に実行される処理の内容を記載したものであり、システムとしては、以下に示すように、様々な要求に対応可能な構成を備えている。
すなわち、データ変換手段23は、任意のバージョンのレイアウトに対応するデータフォーマットで作成された帳票データを、1つ後のバージョン(バージョン番号が1つ大きいバージョン)のデータフォーマットに従った帳票データに変換するデータ変換用のサブ処理を繰り返すことにより、バージョンを1つずつ後にずらしながら(バージョン番号を1ずつ上げながら)、出力レイアウト(標準機能使用時には、直近のレイアウトであり、拡張機能使用時には、ユーザにより指定された指定出力レイアウトである。)に対応するデータフォーマットに従った帳票データに変換する処理を実行する。
そして、再作成指示受付手段21により再作成指示情報の入力を受け付けた際には、データ変換手段23は、帳票データ取得手段22により取得した再作成対象の帳票データについて、原帳票のデータフォーマットからサブ処理の繰り返しを開始し、バージョンを1つずつ後にずらしながら、出力レイアウト(標準機能使用時には、直近のレイアウトであり、拡張機能使用時には、ユーザにより指定された指定出力レイアウトである。)に対応するデータフォーマットに至るまでの変換処理を実行する。
<データ変換手段23の構成/データ変換処理範囲判定手段23A:図2>
図2において、データ変換手段23は、データ変換処理範囲判定手段23Aと、複数のサブ処理手段23Bとを含んで構成されている。
データ変換処理範囲判定手段23Aは、いずれのバージョンのデータフォーマットから、いずれのバージョンのデータフォーマットまでの変換処理を行うのか、すなわち複数のサブ処理手段23Bのうちのいずれを使用するのかの判断処理を実行するものである。
具体的には、データ変換処理範囲判定手段23Aは、再作成指示受付手段21により受け付けた再作成指示情報の中に、帳票データの指定情報として、原帳票の作成年月日が含まれているので、その原帳票の作成年月日と、レイアウト変更日記憶手段32から取得したレイアウトの変更日情報とを比較し、原帳票の帳票データが、いずれのバージョンのデータフォーマットで作成されているのかを判断し、この判断で得られたバージョンを、変換開始バージョンとして決定する処理を実行する。また、帳票データの指定情報として、原帳票を作成したレイアウトのバージョン番号が含まれている場合には、そのバージョンを、変換開始バージョンとして決定する処理を実行する。
また、データ変換処理範囲判定手段23Aは、再作成指示受付手段21により受け付けた再作成指示情報の中に、出力レイアウト指定情報が含まれていない場合(ユーザが標準機能の使用を選択した場合)には、直近のレイアウトで出力することになるので、直近のバージョンを、変換終了バージョンとして決定する処理を実行する。
一方、データ変換処理範囲判定手段23Aは、再作成指示受付手段21により受け付けた再作成指示情報の中に、出力レイアウト指定情報として、指定出力レイアウトのバージョン番号が含まれている場合(ユーザが拡張機能の使用を選択した場合)には、そのバージョンを、変換終了バージョンとして決定する処理を実行する。また、出力レイアウト指定情報として、日付情報が指定されている場合には、その日付情報と、レイアウト変更日記憶手段32から取得したレイアウトの変更日情報とを比較し、指定出力レイアウトのバージョンを判断し、この判断で得られたバージョンを、変換終了バージョンとして決定する処理を実行する。
そして、データ変換処理範囲判定手段23Aは、決定した変換開始バージョンから変換終了バージョンまでのデータフォーマットを、データフォーマット記憶手段33から取得する。なお、データフォーマット記憶手段33から全てのデータフォーマットを取得し、複数のサブ処理手段23Bの各々が、自らの処理に必要なデータフォーマットを参照してもよく、あるいは、複数のサブ処理手段23Bの各々が、自らの処理に必要なデータフォーマットを、データフォーマット記憶手段33から取得してもよい。
<データ変換手段23の構成/複数のサブ処理手段23B:図2>
複数のサブ処理手段23Bは、直近のバージョンがバージョンN(バージョン番号=N)の場合は、(N−1)個のサブ処理手段23B(1),23B(2),23B(3),23B(4),…,23B(N−1)となる。
サブ処理手段23B(1)は、バージョン1のデータフォーマットからバージョン2のデータフォーマットへの変換処理を行い、サブ処理手段23B(2)は、バージョン2のデータフォーマットからバージョン3のデータフォーマットへの変換処理を行い、以下、記載を簡略化すると、サブ処理手段23B(3)は、3→4の変換を行い、サブ処理手段23B(4)は、4→5の変換を行い、…、サブ処理手段23B(N−1)は、(N−1)→Nの変換を行うものである。一般化すると、P=1〜(N−1)のとき、サブ処理手段23B(P)は、バージョンPから(P+1)へのデータフォーマットの変換処理を行うものである。そして、バージョン番号=(N+1)の新規バージョンが発生した場合には、N→(N+1)への変換を行うサブ処理手段23B(N)を追加する。
例えば、図2に示すように、原帳票(再作成対象の帳票データ)の作成年月日T=T1の場合には、T1は、バージョン1のレイアウトの適用期間(バージョン1のレイアウトの適用開始日から、バージョン1→2のレイアウト変更日の前日までの期間)に属するので、変換開始バージョン=バージョン1となり、サブ処理手段23B(1)からの変換処理が開始される。また、作成年月日T=T2の場合には、T2は、バージョン2のレイアウトの適用期間(バージョン1→2のレイアウト変更日から、バージョン2→3のレイアウト変更日の前日までの期間)に属するので、変換開始バージョン=バージョン2となり、サブ処理手段23B(2)からの変換処理が開始される。同様に、作成年月日T=T3の場合には、T3は、バージョン3のレイアウトの適用期間に属するので、変換開始バージョン=バージョン3となり、サブ処理手段23B(3)からの変換処理が開始される。一般化すると、原帳票の作成年月日Tが、バージョンQのレイアウトの適用期間に属する場合には、変換開始バージョン=バージョンQとなり、サブ処理手段23B(Q)からの変換処理が開始される。
また、例えば、図2に示すように、ユーザが標準機能の使用を選択し、出力レイアウト=直近のレイアウトとなった場合には、直近のデータフォーマット(バージョンN)までの変換処理を行うので、変換終了バージョン=バージョンNとなり、サブ処理手段23B(N−1)で変換処理を終了する。
一方、図2に示すように、ユーザが拡張機能の使用を選択した場合において、指定出力レイアウトのバージョンM=M4の場合には、M4は、バージョン4のレイアウトの適用期間に属するので、変換終了バージョン=バージョン4となり、サブ処理手段23B(3)で変換処理を終了する。同様に、指定出力レイアウトのバージョンM=M5の場合には、M5は、バージョン5のレイアウトの適用期間に属するので、変換終了バージョン=バージョン5となり、サブ処理手段23B(4)で変換処理を終了する。一般化すると、指定出力レイアウトのバージョンMは、バージョンMのレイアウトの適用期間に属するので、変換終了バージョン=バージョンMとなり、サブ処理手段23B(M−1)で変換処理を終了する。
<データ変換手段23の構成/サブ処理の具体的内容:図4>
各サブ処理手段23Bによるサブ処理は、それぞれ1バージョンずつデータフォーマットを変換する処理(バージョン番号を1つずつ増やしていく処理:時間軸上において将来方向に向かう順方向変換処理)であり、変換前のデータフォーマットと、変換後のデータフォーマットとの差異に基づく変換内容が、各サブ処理手段23Bを構成するプログラム部分に記述されている。
図4には、バージョン6から7へのデータフォーマットの変換処理を行うサブ処理手段23B(6)と、バージョン7から8へのデータフォーマットの変換処理を行うサブ処理手段23B(7)との具体例が示されている。
帳票データは、帳票のレイアウトに対応させて帳票を構成する各項目のデータを連結して形成された、すなわちレイアウトに対応する順序に並べて形成されたデータの集合である。図4に示されたデータフォーマットは、帳票が、税務署長宛に作成される特定口座年間取引報告書である場合の帳票データのデータフォーマットの一例であり、帳票(特定口座年間取引報告書)を構成する各項目の情報が、帳票のレイアウトに従って並べられている。各項目の情報は、各項目に付されたラベル番号と、項目名と、レングス(データ長を示すバイト数)とを含んで構成されている。なお、図4は、具体例ではあるが、説明の便宜上、疑似的に作成した具体例であるから、現実の特定口座年間取引報告書とは異なる部分がある。他の図も同様である。
ラベル番号は、それぞれのバージョンのデータフォーマット内における各項目の識別情報であり、同一のラベル番号であっても、データフォーマットのバージョンが異なれば、異なる項目内容となり得る。このように同一のラベル番号の項目内容が、バージョンによって異なる状態は、レイアウトの変更に伴って生じているので、この状態に対応するために、帳票データのデータフォーマットの変換処理を行うことになる。
図4の例では、サブ処理手段23B(6)によるバージョン6から7への変換処理において、バージョン6のL.04(ラベル番号=4)の口座開設日(元号)の2バイトと、L.05の口座開設日(和暦)の6バイトとの2項目を併合し、バージョン7のL.04の口座開設日(和暦)の8バイトに配置する。また、サブ処理手段23B(7)によるバージョン7から8への変換処理において、バージョン7のL.04の口座開設日(和暦)を、西暦に変換し、バージョン8のL.04の口座開設日(西暦)に配置する。
サブ処理手段23B(6)によるバージョン6から7への変換処理において、バージョン6のL.06の譲渡取引履歴は、内容はそのままの状態で、バージョン7のL.05に移動配置する。また、サブ処理手段23B(7)によるバージョン7から8への変換処理において、バージョン7のL.05の譲渡取引履歴は、内容はそのままの状態で、移動することもなく、バージョン8のL.05に配置する。
サブ処理手段23B(7)によるバージョン7から8への変換処理において、バージョン7のL.11の口数は、小数点以下2桁から3桁に変更し、バージョン8のL.12の口数に配置する。
サブ処理手段23B(6)によるバージョン6から7への変換処理において、バージョン6のL.16の取引業者は、内容はそのままの状態で、バージョン7のL.13に移動配置する。また、サブ処理手段23B(7)によるバージョン7から8への変換処理において、バージョン7のL.13の取引業者は、図4に示された取引業者変換テーブルに従って項目値変更を行い、バージョン8のL.15の取引業者に移動配置する。この取引業者変換テーブルは、プログラム内部に記述してもよく、取引業者変換テーブル記憶手段(不図示)に記憶しておき、プログラムで読み込むようにしてもよい。なお、図4に示したように、バージョン6,7の取引業者については、項目値に変更はないので、内容はそのままの状態での移動配置となっている。
また、以上において、サブ処理手段23B(6)によるバージョン6から7への変換処理では、変換前のバージョン6のラベル番号の項目内容を、変換後のバージョン7のどのラベル番号の項目に配置するのかという流れで説明を行ったが、実際には、変換後のバージョン7のデータフォーマットに従って変換後のバージョン7の帳票データの記憶領域を確保してブランク等で埋めておき、変換後のバージョン7の側から見て、ラベル番号=1から順番に、バージョン7のL.01には、バージョン6の何番のラベルの項目内容を配置し、バージョン7のL.02には、バージョン6の何番のラベルの項目内容を配置し、バージョン7のL.03には、バージョン6の何番のラベルの項目内容を配置し、…という流れで変換処理を行う。サブ処理手段23B(7)によるバージョン7から8への変換処理も同様であり、変換後のバージョン8の側から見て、ラベル番号=1から順番に、バージョン8のL.01には、バージョン7の何番のラベルの項目内容を配置し、…という流れで変換処理を行う。
<データ変換手段23の構成/スキップ処理の具体的内容:図5、図7>
また、データ変換手段23は、各サブ処理手段23Bによるサブ処理を繰り返すことにより、原帳票の帳票データから、再作成帳票の出力レイアウト(標準機能使用時には、直近のレイアウトであり、拡張機能使用時には、ユーザにより指定された指定出力レイアウトである。)に対応するデータフォーマットに従った帳票データに至るまでの範囲のデータ変換処理を実行する際に、当該データ変換処理の範囲に応じ、予め用意されてスキップ情報記憶手段34(図5参照)に記憶されるか若しくはプログラム内部に記述された「スキップ情報」の中から、各サブ処理手段23Bによるサブ処理のうち省略可能な変換処理を示す「スキップ情報」を取得し、取得したスキップ情報を用いて、該当するサブ処理の全部または一部を省略するスキップ処理を実行するものである。
ここで、スキップ情報には、帳票データを構成する項目の単位でサブ処理による変換処理を省略可能な情報を示す「項目単位スキップ情報」と、サブ処理の単位でサブ処理による変換処理を省略可能な情報を示す「サブ処理単位スキップ情報」とがある。
この際、データ変換手段23は、予め用意された全ての「スキップ情報」の中から、これから変換処理を行おうとしている範囲に応じた「スキップ情報」を取得する。すなわち、変換開始バージョンおよび変換終了バージョンは、再作成の指示を受ける都度に変動するので、変換開始バージョンおよび変換終了バージョンに応じた「スキップ情報」を取得する。各サブ処理で変換をスキップできるか否かは、変換開始バージョンおよび変換終了バージョンに依存するからである。この理由は、図7の具体例を用いて後述するが、前述した[課題を解決するための手段]における<項目単位やサブ処理単位で、サブ処理内の一部の変換処理やサブ処理自体をスキップする構成>でも詳しく説明している。
データ変換手段23は、「項目単位スキップ情報」を取得した場合には、取得した項目単位スキップ情報を用いて、項目の単位でサブ処理内の該当する変換を省略する「項目単位スキップ処理」を実行する。また、データ変換手段23は、「サブ処理単位スキップ情報」を取得した場合には、取得したサブ処理単位スキップ情報を用いて、該当するサブ処理を省略する「サブ処理単位スキップ処理」を実行する。
図5において、スキップ情報記憶手段34には、項目単位スキップ情報として、データ変換手段23の各サブ処理手段23Bによる変換処理で作成するバージョンおよび項目(変換終了バージョンおよび項目)と、スキップ可能な項目およびその項目の属するバージョンと、変換開始バージョンの条件とが対応付けられて記憶されている。
例えば、一番上のレコードは、バージョン8の帳票データを作成する際(すなわち、バージョン8を変換終了バージョンとするデータ変換処理を行う際)に、バージョン8のL.04へのデータ配置について、バージョン7のL.04への変換と、バージョン8のL.04への変換とをスキップ(省略)できるという意味である。また、変換開始バージョンの条件=バージョン1〜6というのは、変換開始バージョンがバージョン1〜6に該当する場合にスキップすることができ、変換開始バージョンがバージョン7の場合には、スキップすることができないという意味である。このレコードの例は、図7の具体例に対応している。
また、上から2番目のレコードは、バージョン8の帳票データを作成する際(すなわち、バージョン8を変換終了バージョンとするデータ変換処理を行う際)に、バージョン8に存在しない項目について、バージョン7のL.09への変換をスキップ(省略)できるという意味である。また、変換開始バージョンの条件=バージョン1〜6というのは、変換開始バージョンがバージョン1〜6に該当する場合にスキップすることができるという意味である。このレコードの例は、図7の具体例に対応している。
図7の例は、前述した図4の例と同様に、帳票が特定口座年間取引報告書の場合の例であるが、スキップ処理の内容を説明するために、項目内容は、図4の例とは変えている。
図7の左上部に示した口座開設日元号の表のように、口座開設日(元号)の項目内容は、バージョン6から7へのレイアウト変更で変化しているが、バージョン7から8へのレイアウト変更で元に戻っている。従って、バージョン6とバージョン8とは、口座開設日(元号)の項目内容が同じ状態である。このため、次のようなスキップを行うことができる。
サブ処理手段23B(6)によるバージョン6から7への変換処理において、バージョン6のL.04の口座開設日(元号)は、内容はそのままの状態で、バージョン7のL.04に配置する。本来的には、項目値(元号)の変更が必要となるが、この場合は、スキップ可能ということである。また、サブ処理手段23B(7)によるバージョン7から8への変換処理において、バージョン7のL.04の口座開設日(元号)も、内容はそのままの状態で、バージョン8のL.04に配置する。ここでも、本来的には、項目値(元号)の変更が必要となるが、この場合は、スキップ可能ということである。なお、ここでいうスキップは、項目値変更という処理を省略できるという意味であるので、ブランク等にするということではなく、バージョン6から7への配置処理およびバージョン7から8への配置処理は行われる。そうでないと、バージョン6のデータ内容を、バージョン8に伝達することができないからである。
また、上記の例では、口座開設日(元号)の項目内容が、バージョン6から7へのレイアウト変更で変化し、バージョン7から8へのレイアウト変更で元に戻るということを前提としてスキップ処理が行われる。従って、バージョン7が変換開始バージョンである場合には、バージョン7から8への項目値変更という処理をスキップすることはできない。このため、スキップ情報として、変換開始バージョンの条件=バージョン1〜6という条件が付されている。スキップの可否が、変換開始バージョンに依存していることを示している。
図7の例で、譲渡特別税という項目は、バージョン8でなくなっている。従って、サブ処理手段23B(6)によるバージョン6から7への変換処理において、バージョン6のL.09の譲渡特別税を、内容はそのままの状態で、バージョン7のL.09の譲渡特別税に配置するという処理はスキップすることができる。この場合は、バージョン8で項目がなくなるので、バージョン7のL.09の譲渡特別税のために確保した記憶領域は、ブランク等のままでよい。本来的には、内容はそのままの状態での配置処理が必要となるが、この場合は、その配置処理はスキップ可能ということである。
また、上記の例では、譲渡特別税という項目が、バージョン8でなくなることを前提としてスキップ処理が行われる。従って、変換終了バージョンがバージョン7である場合には、バージョン6から7への配置処理(内容はそのままの状態での配置処理)をスキップすることはできない。スキップの可否が、変換終了バージョンに依存していることを示している。
図5において、スキップ情報記憶手段34には、サブ処理単位スキップ情報として、データ変換手段23の各サブ処理手段23Bによる変換処理で作成するバージョン(変換終了バージョン)と、スキップ可能なサブ処理と、変換開始バージョンの条件とが対応付けられて記憶されている。
図5の例では、バージョン4の帳票データを作成する際(すなわち、バージョン4を変換終了バージョンとするデータ変換処理を行う際)に、サブ処理手段23B(2)によるバージョン2から3へのデータフォーマットの変換処理の全部、および、サブ処理手段23B(3)によるバージョン3から4へのデータフォーマットの変換処理の全部をスキップすることができることが示されている。また、変換開始バージョンの条件=バージョン1〜2というのは、変換開始バージョンがバージョン1〜2の場合に、スキップが可能であるという意味である。
上記の例では、バージョン2とバージョン4とでデータフォーマットが全体的に同じであるため、バージョン2の内容をそのままバージョン4の内容にすることができる。すなわち、バージョン2の帳票データを、バージョン4の帳票データとみなすことができる。従って、この場合、2つのサブ処理23B(2),23B(3)をスキップすることができる。なお、変換開始バージョンの条件=バージョン1〜2であるから、変換開始バージョンがバージョン3である場合に、サブ処理手段23B(3)によるバージョン3から4への変換処理をスキップすることはできない。
また、例えば、バージョン4とバージョン9とでデータフォーマットが全体的に同じであれば、バージョン4の帳票データを、バージョン9の帳票データとみなすことができるので、4→5、5→6、6→7、7→8、8→9の変換を行うサブ処理23B(4),23B(5),23B(6),23B(7),23B(8)をスキップすることができる。この場合は、変換開始バージョンの条件=1〜4であるので、変換開始バージョンがバージョン5〜8である場合には、サブ処理23B(5),23B(6),23B(7),23B(8)をスキップすることはできない。
<データ変換手段23の構成/復活項目退避処理の具体的内容:図6、図8>
また、データ変換手段23は、過去のレイアウトにあった項目が、それに続く1つまたは複数の中間のレイアウトでなくなり、さらにその後のレイアウトで復活する場合の復活項目について、予め用意されて復活項目退避情報記憶手段35(図6参照)に記憶されるか若しくはプログラム内部に記述された復活項目退避情報を取得し、取得した復活項目退避情報に従って、過去のレイアウトに対応するデータフォーマットから中間のレイアウトに対応する中間のデータフォーマット(複数の中間のレイアウトおよびそれらに対応する複数の中間のデータフォーマットがある場合には、最初に変換する中間のデータフォーマット、すなわち最もバージョン番号が小さい中間のデータフォーマット)へのデータ変換用のサブ処理として、復活項目のデータを、中間のデータフォーマットに変換後の帳票データのワークエリアに退避させる処理を実行するとともに、復活項目退避情報に従って、中間のデータフォーマット(複数の中間のデータフォーマットがある場合には、最後に変換する中間のデータフォーマット、すなわち最もバージョン番号が大きい中間のデータフォーマット)から復活後のデータフォーマットへのデータ変換用のサブ処理として、ワークエリアに退避させた復活項目のデータを、復活後のデータフォーマットに従った帳票データ内に配置する処理を実行する。
ここで、復活項目退避情報とは、復活項目の復活後のレイアウトに対応する復活後のデータフォーマット内での復活項目のラベル番号と、過去のレイアウトに対応するデータフォーマット内での復活項目のラベル番号とを関連付ける情報である。
図6において、復活項目退避情報記憶手段35には、データ変換手段23の各サブ処理手段23Bによる変換処理で作成するバージョンおよび項目(変換終了バージョンおよび項目)と、過去のデータフォーマットのバージョンおよび項目とが対応付けられて記憶されている。
例えば、一番上のレコードは、バージョン8の帳票データを作成する際(すなわち、バージョン8を変換終了バージョンとするデータ変換処理を行う際)に、バージョン8のL.09に配置するデータは、バージョン6のL.10の項目内容であることを示し、2番目のレコードは、バージョン8のL.14に配置するデータは、バージョン6のL.15の項目内容であることを示している。これらのレコードの例は、図8の具体例に対応している。
図8において、譲渡特別税、購入特別税という項目は、バージョン6のレイアウト(過去のレイアウト)にあったが、バージョン7のレイアウト(中間のレイアウト)でなくなり、さらにその後、バージョン8のレイアウトで復活するので、これらの項目は、復活項目に該当する。
バージョン8の帳票データを作成する際(すなわち、バージョン8を変換終了バージョンとするデータ変換処理を行う際)に、サブ処理手段23B(6)によるバージョン6から7への変換処理において、バージョン6のL.10の譲渡特別税は、バージョン7にはないが、復活項目退避情報の中に、バージョン8の帳票データを作成する際における復活項目として設定されているので、その復活項目退避情報に従って、バージョン7のデータフォーマットに変換後の帳票データの記憶領域の後方に設けられたワークエリア1(ラベル番号=L.99−1)に退避配置させる復活項目退避処理を実行する。この際、ワークエリアL.99−1には、バージョン6のL.10の譲渡特別税の項目値(データ)とともに、バージョン6のL.10という復活項目識別用の付加情報も配置する。
同様に、サブ処理手段23B(6)によるバージョン6から7への変換処理において、バージョン6のL.15の購入特別税は、バージョン7にはないが、復活項目退避情報の中に、バージョン8の帳票データを作成する際における復活項目として設定されているので、その復活項目退避情報に従って、バージョン7のデータフォーマットに変換後の帳票データの記憶領域の後方に設けられたワークエリア2(ラベル番号=L.99−2)に退避配置させる復活項目退避処理を実行する。この際、ワークエリアL.99−2には、バージョン6のL.15の購入特別税の項目値(データ)とともに、バージョン6のL.15という復活項目識別用の付加情報も配置する。
その後、サブ処理手段23B(7)によるバージョン7から8への変換処理において、バージョン8のL.09の譲渡特別税へのデータ配置を行う際に、復活項目退避情報の中に、バージョン8のL.09には、バージョン6のL.10を復活配置させるという情報が含まれているので、その復活項目退避情報に従って、バージョン7のデータフォーマットに変換後の帳票データの記憶領域の後方に設けられたワークエリアから、付加情報がバージョン6のL.10となっている復活項目のデータ(この例では、ワークエリアL.99−1のデータ)を抽出し、抽出した復活項目のデータを、バージョン8のL.09の譲渡特別税に復活配置する。
同様に、サブ処理手段23B(7)によるバージョン7から8への変換処理において、バージョン8のL.14の購入特別税へのデータ配置を行う際に、復活項目退避情報の中に、バージョン8のL.14には、バージョン6のL.15を配置するという情報が含まれているので、その復活項目退避情報に従って、バージョン7のデータフォーマットに変換後の帳票データの記憶領域の後方に設けられたワークエリアから、付加情報がバージョン6のL.15となっている復活項目のデータ(この例では、ワークエリアL.99−2のデータ)を抽出し、抽出した復活項目のデータを、バージョン8のL.14の購入特別税に復活配置する。
なお、上記の例は、バージョン8の帳票データを作成する際(すなわち、バージョン8を変換終了バージョンとするデータ変換処理を行う際)についての例であるが、バージョン7を変換終了バージョンとするデータ変換処理を行う際は、そもそもバージョン7には、譲渡特別税、購入特別税という項目はないので、上記のような復活項目退避処理を行う必要はなく、従って、復活項目退避情報の中には、バージョン7の帳票データを作成する際に使用する復活項目退避情報は含まれていない。上記の例の復活項目退避情報は、あくまでもバージョン8の帳票データを作成する際に使用する復活項目退避情報として設定されているものである。
一方、仮に、バージョン9があったとし、かつ、バージョン8で復活した復活項目が、バージョン9にもあるとすれば、バージョン9の帳票データを作成する際(すなわち、バージョン9を変換終了バージョンとするデータ変換処理を行う際)にも、復活項目退避処理が必要となる。この場合は、バージョン8のデータフォーマットに変換後の帳票データの中に、復活項目が復活配置されるので、それを継承することで、バージョン9でも復活項目のデータが活かされることになる。この場合の復活項目退避情報は、バージョン9の帳票データを作成する際(すなわち、バージョン9を変換終了バージョンとするデータ変換処理を行う際)には、バージョン8の帳票データを作成する際における復活項目退避情報を継承する旨の情報としておくことができる。
また、複数の中間のレイアウトがある場合、例えば、ある項目が、バージョン6のレイアウト(過去のレイアウト)にあったが、バージョン7〜9のレイアウト(3つの中間のレイアウト)でなくなり、さらにその後、バージョン10のレイアウトで復活するような場合の復活項目についても、同様な復活項目退避処理が行われる。この場合は、サブ処理手段23B(6)によるバージョン6から7への変換処理で、復活項目退避情報に従って、バージョン7に変換後の帳票データの記憶領域の後方のワークエリアに、復活項目のデータおよびその付加情報を退避配置し、サブ処理手段23B(7)によるバージョン7から8への変換処理では、バージョン7に変換後の帳票データの記憶領域の後方のワークエリアに退避させたデータおよび付加情報を、バージョン8に変換後の帳票データの記憶領域の後方のワークエリアにコピーし、さらに、サブ処理手段23B(8)によるバージョン8から9への変換処理でも、バージョン8に変換後の帳票データの記憶領域の後方のワークエリアに退避させているデータおよび付加情報を、バージョン9に変換後の帳票データの記憶領域の後方のワークエリアにコピーし、そして、サブ処理手段23B(9)によるバージョン9から10への変換処理で、復活項目退避情報に従って、バージョン9に変換後の帳票データの記憶領域の後方のワークエリアから復活項目のデータを抽出(付加情報を利用して抽出)し、抽出した復活項目のデータを、バージョン10に変換後の帳票データに復活配置する。
さらに、上記の例では、ワークエリアに、復活項目のデータに加え、付加情報も退避配置させていたが、必ずしも付加情報をワークエリアに記憶させる必要はなく、例えば、復活項目退避情報の中に、復活項目のデータを退避させるワークエリアの識別情報(L.99−1、L.99−2等のラベル番号)を関連付けて含ませておけば、ワークエリアに退避させた復活項目のデータを、復活後のデータフォーマットに従った帳票データ内の所定の位置に配置することができる。図8の例では、復活項目退避情報の中に、バージョン8のL.09には、バージョン6のL.10を復活配置させるという情報が含まれていたが、これに加え、バージョン8のL.09には、ワークエリアL.99−1を復活配置させるという情報も関連付けておけば、その復活項目退避情報に従って、バージョン7のデータフォーマットに変換後の帳票データの記憶領域の後方に設けられたワークエリアL.99−1から、バージョン6のL.10のデータを取得し、バージョン8のL.09の譲渡特別税に復活配置させることができる。
また、ワークエリアに、付加情報を退避配置させなくてもよい処理方法としては、その他に、復活項目退避情報の中のレコードの順番と、ワークエリア1,2,3,…(L.99−1,L.99−2,L.99−3,…)の順番とを対応付けておき、その順番に従って、復活項目のデータについてのワークエリアへの退避処理、およびワークエリアからの復活項目のデータの取得処理を実行する方法がある。
<帳票出力手段24の構成>
帳票出力手段24は、データ変換手段23による変換処理で得られたデータフォーマット(標準機能使用時には、直近のレイアウトに対応する直近のデータフォーマットであり、拡張機能使用時には、ユーザにより指定された指定出力レイアウトに対応するデータフォーマットである。)に従った帳票データを用いて、直近のレイアウトまたは指定出力レイアウトで帳票を再作成する帳票マッピング処理を実行するものである。
この際、帳票出力手段24は、拡張機能使用時には、ユーザにより指定された指定出力レイアウトで帳票再作成を行うが、様々なユーザの要求に応えることができるように、以下に示すような構成を備えている。
すなわち、帳票出力手段24は、直近のレイアウトに対応する帳票マッピング処理用のマッピング情報を、予め用意されて差分情報記憶手段36に記憶されるか若しくはプログラム内部に記述された前後のバージョンのマッピング情報の差分情報を用いて、1つ前のバージョンのレイアウトに対応するマッピング情報に変換するマッピング変換用の拡張サブ処理を繰り返すことにより、バージョンを1つずつ前にずらしながら、任意のレイアウトに対応するマッピング情報に変換し、変換後のマッピング情報を用いて帳票を再作成する処理を実行する。
そして、帳票出力手段24は、再作成指示受付手段21により再作成指示情報の入力を受け付けた際には、直近のレイアウトに対応するマッピング情報から拡張サブ処理の繰り返しを開始し、バージョンを1つずつ前にずらしながら、ユーザにより指定された指定出力レイアウトに対応するマッピング情報に至るまでの変換処理を実行し、変換後のマッピング情報を用いて帳票を再作成する処理を実行する。
<帳票出力手段24の構成/帳票マッピング手段24A、複数の拡張サブ処理手段24B:図2>
図2において、帳票出力手段24は、帳票マッピング手段24Aと、複数の拡張サブ処理手段24Bとを含んで構成されている。
帳票マッピング手段24Aは、標準機能使用時には、直近のレイアウトに対応するマッピング情報を用いて、直近のレイアウトで帳票を再作成する処理を実行する。直近のレイアウトに対応するマッピング情報は、その直近のレイアウトが発生した際に、そのレイアウトに対応させて予め用意したものである。
一方、帳票マッピング手段24Aは、拡張機能使用時には、ユーザにより指定された指定出力レイアウトに対応するマッピング情報を用いて、指定出力レイアウトで帳票を再作成する処理を実行する。この際、指定出力レイアウトに対応するマッピング情報は、予め用意されているものではなく、直近のレイアウトに対応するマッピング情報(これは予め用意されている。)から、各拡張サブ処理手段24Bによるマッピング情報の変換処理を行うことにより作成される。
複数の拡張サブ処理手段24Bは、直近のバージョンがバージョンN(バージョン番号=N)の場合は、(N−1)個の拡張サブ処理手段24B(1),24B(2),24B(3),24B(4),…,24B(N−1)となる。
拡張サブ処理手段24B(N−1)は、バージョンNのマッピング情報からバージョン(N−1)のマッピング情報への変換処理を行い、拡張サブ処理手段24B(N−2)は、バージョン(N−1)のマッピング情報からバージョン(N−2)のマッピング情報への変換処理を行い、…、拡張サブ処理手段24B(4)は、バージョン5のマッピング情報からバージョン4のマッピング情報への変換処理を行い、以下、記載を簡略化すると、拡張サブ処理手段24B(3)は、4→3の変換を行い、拡張サブ処理手段24B(2)は、3→2の変換を行い、拡張サブ処理手段24B(1)は、2→1の変換を行うものである。一般化すると、R=1〜(N−1)のとき、サブ処理手段24B(R)は、バージョン(R+1)からRへのマッピング情報の変換処理を行うものである。そして、バージョン番号=(N+1)の新規バージョンが発生した場合には、(N+1)→Nへの変換を行うサブ処理手段24B(N)を追加する。
図2に示すように、ユーザが拡張機能の使用を選択した場合において、指定出力レイアウトのバージョンM=M4の場合には、M4は、バージョン4のレイアウトの適用期間に属するので、変換終了バージョン=バージョン4となる。従って、前述したように、データ変換手段23においては、サブ処理手段23B(3)で変換処理を終了する。これに対し、帳票出力手段24においては、直近のレイアウトのバージョンから拡張サブ処理手段24Bによる逆方向変換処理を開始し(すなわち、拡張サブ処理手段24B(N−1)から変換を開始し)、拡張サブ処理手段24B(4)で変換処理を終了する。
同様に、指定出力レイアウトのバージョンM=M5の場合には、M5は、バージョン5のレイアウトの適用期間に属するので、変換終了バージョン=バージョン5となる。従って、前述したように、データ変換手段23においては、サブ処理手段23B(4)で変換処理を終了する。これに対し、帳票出力手段24においては、拡張サブ処理手段24B(5)で変換処理を終了する。
一般化すると、指定出力レイアウトのバージョンMは、バージョンMのレイアウトの適用期間に属するので、変換終了バージョン=バージョンMとなる。従って、データ変換手段23においては、前述したように、サブ処理手段23B(M−1)で変換処理を終了する。これに対し、帳票出力手段24においては、拡張サブ処理手段24B(M)で変換処理を終了する。
<帳票出力手段24の構成/拡張サブ処理の具体的内容:図10>
各拡張サブ処理手段24Bによるサブ処理は、それぞれ1バージョンずつマッピング情報を変換する処理(バージョン番号を1つずつ減らしていく処理:時間軸上において過去方向に向かう逆方向変換処理)であり、差分情報記憶手段36から、変換前のマッピング情報と、変換後のマッピング情報との差分情報を取得し、取得した差分情報を用いて、変換後のマッピング情報を算出する処理を実行する。
図10に示すように、差分情報記憶手段36に記憶する差分情報には、レイアウトの構成要素(文字、線、画像等)の出力位置や出力サイズ、および、データ(帳票データを構成する各項目のデータ)の出力位置や出力サイズについての差分情報が含まれる。図10の例では、レイアウトの構成要素である文字として、タイトル「(配当等の額及び源泉徴収税額等)」の開始位置(X,Y)やサイズについての差分情報、「種類」の開始位置(X,Y)やサイズについての差分情報、「(4)公社債」の開始位置(X,Y)やサイズについての差分情報が示されている。また、「特定上場株式等の配当等」のように、改訂前(レイアウト変更前)のバージョン(拡張サブ処理は、逆方向変換処理であるから、変換後のバージョンに相当する。)にない文字については、出力の必要がないので、管理なしとされている。さらに、データ(帳票データを構成する各項目のデータ)の出力位置や出力サイズについての差分情報も、これらの文字の場合と同様である。また、レイアウトの構成要素が線である場合には、開始位置(X,Y)および終端位置(X,Y)についての差分情報となる。
差分情報記憶手段36に記憶する差分情報は、変換前のバージョンに対する変換後のバージョンの差分情報でもよく、その逆の差分情報でもよく、変換前のバージョンのマッピング情報から変換後のマッピング情報を算出する際に、差分情報を加算するか、減算するかの相違に過ぎない。例えば、上述した「(4)公社債」の開始位置は、レイアウトの改訂前(マッピング情報の変換後)には、出力面(表示面、印刷面)の上方に移動しているので、マッピング用の座標の左上が(0,0)であるとすれば、Y方向の数値を減らさなければならないことから、差分情報が「Y:+50」である場合には、差分情報の数値を減算することになり、一方、差分情報が「Y:−50」である場合には、差分情報の数値を加算することになる。
<情報作成支援手段25の構成>
情報作成支援手段25は、管理者端末50からのシステム管理者による要求に応じ、スキップ情報の作成を支援するスキップ情報作成支援処理、および復活項目退避情報の作成を支援する復活項目退避情報作成支援処理を実行するものである。レイアウト変更が発生する都度に、新規のデータフォーマットが用意されるので、それに対応し、スキップ情報や復活項目退避情報を追加する必要があるため、その際の追加情報の作成等に用いられる。
より詳細には、情報作成支援手段25は、スキップ情報作成支援処理として、データフォーマット記憶手段33から取得した新規のデータフォーマット(通常は、適用開始前のデータフォーマット)を構成する各項目と、過去の全てのデータフォーマット(直近のデータフォーマットを含む。)を構成する各項目とを比較し、過去のいずれかのデータフォーマットには存在するが、新規のデータフォーマット(適用予定)には存在しない項目を自動抽出し、抽出した項目のラベル番号および当該項目を含む過去のデータフォーマットのバージョン番号を、項目単位スキップ情報への追加情報として出力する処理を実行する。この出力処理には、抽出した情報を、ネットワーク1を介して管理者端末50へ送信する処理と、システム管理者による確認を経て管理者端末50からネットワーク1を介して送信されてくる項目単位スキップ情報への追加情報を受信し、スキップ情報記憶手段34に追加保存する処理とが含まれる。なお、システム管理者による確認を経ずに、項目単位スキップ情報への追加情報を、直接にスキップ情報記憶手段34に追加保存する処理を行ってもよい。
図9の例で、バージョン8のデータフォーマットが、新規のデータフォーマット(適用予定)であり、バージョン6,7のデータフォーマットが、過去のデータフォーマットであるとすると、バージョン8には、購入特別税や取得年という項目はない。これに対し、バージョン6,7には、購入特別税や取得年という項目がある。従って、サブ処理手段23B(6)によるバージョン6から7へのデータフォーマットの変換処理において、バージョン6のL.17の購入特別税を、バージョン7のL.17の購入特別税に配置する処理、および、バージョン6のL.19の取得年を、バージョン7のL.19の取得年に配置する処理は、スキップすることができる。また、図9に図示はされていないが、サブ処理手段23B(5)によるバージョン5から6へのデータフォーマットの変換処理において、バージョン5の購入特別税を、バージョン6のL.17の購入特別税に配置する処理、および、バージョン5の取得年を、バージョン6のL.19の取得年に配置する処理も、スキップすることができる。このため、これらのスキップ処理が実行されるようにするために、抽出した情報により、スキップ情報の追加が行われる。
また、情報作成支援手段25は、復活項目退避情報作成支援処理として、データフォーマット記憶手段33から取得した新規のデータフォーマット(適用予定)を構成する各項目と、過去の全てのデータフォーマット(直近のデータフォーマットを含む。)を構成する各項目とを比較し、復活項目を自動抽出し、抽出した項目のラベル番号および当該項目を含む過去のデータフォーマットのバージョン番号を、復活項目退避情報への追加情報として出力する処理を実行する。この出力処理には、抽出した情報を、ネットワーク1を介して管理者端末50へ送信する処理と、システム管理者による確認を経て管理者端末50からネットワーク1を介して送信されてくる復活項目退避情報への追加情報を受信し、復活項目退避情報記憶手段35に追加保存する処理とが含まれる。なお、システム管理者による確認を経ずに、復活項目退避情報への追加情報を、直接に復活項目退避情報記憶手段35に追加保存する処理を行ってもよい。
図9の例では、譲渡特別税という項目は、バージョン6,8にはあるが、それらの中間のバージョン7にはないので、復活項目として抽出される。従って、サブ処理手段23B(6)によるバージョン6から7へのデータフォーマットの変換処理において、バージョン6のL.10の譲渡特別税のデータが、ワークエリアに退避配置され、サブ処理手段23B(7)によるバージョン7から8へのデータフォーマットの変換処理において、ワークエリアに退避されているバージョン6のL.10の譲渡特別税のデータが、バージョン8のL.09に復活配置されるようにするために、抽出した情報により、復活項目退避情報への追加が行われる。
<各記憶手段31〜36の構成>
帳票データ記憶手段31は、原帳票のレイアウトに対応するデータフォーマットで作成された作成済の帳票データを記憶するものである。帳票データは、帳票のレイアウトに対応させて帳票を構成する各項目のデータを連結して形成されたものであり、原帳票の作成時に適用されていたレイアウトに対応するデータフォーマット(図4、図7、図8、図9参照)に従って保存されている。
レイアウト変更日記憶手段32は、全てのレイアウト変更日の情報、すなわち各バージョンのレイアウトの適用開始日の情報を記憶するものである。
データフォーマット記憶手段33は、全てのレイアウトに対応するデータフォーマット(図4、図7、図8、図9参照)を記憶するものである。レイアウト変更が発生する都度に、新規レイアウトに対応するデータフォーマットを追加記憶する。また、情報作成支援手段25による処理を行うために、レイアウト変更が予定されている場合には、その予定されている新規バージョンのレイアウトに対応する新規のデータフォーマットも記憶する。
スキップ情報記憶手段34は、図5に示すように、スキップ情報として、項目単位スキップ情報と、サブ処理単位スキップ情報とを記憶するものである。レイアウト変更が発生し、新規レイアウトに対応するデータフォーマットが用意される都度に、このスキップ情報は、追加更新される。スキップ情報の内容については、前述した<データ変換手段23の構成/スキップ処理の具体的内容:図5、図7>の説明で詳述しているため、ここでは詳しい説明を省略する。
復活項目退避情報記憶手段35は、図6に示すように、復活項目退避情報を記憶するものである。レイアウト変更が発生し、新規レイアウトに対応するデータフォーマットが用意される都度に、この復活項目退避情報は、追加更新される。復活項目退避情報の内容については、前述した<データ変換手段23の構成/復活項目退避処理の具体的内容:図6、図8>の説明で詳述しているため、ここでは詳しい説明を省略する。
差分情報記憶手段36は、図10に示すように、変換前のマッピング情報と、変換後のマッピング情報との差分情報を記憶するものである。レイアウト変更が発生する都度に、この差分情報は、追加更新される。差分情報の内容については、前述した<帳票出力手段24の構成/拡張サブ処理の具体的内容:図10>の説明で詳述しているため、ここでは詳しい説明を省略する。
<帳票再作成システム10による帳票の再作成処理の全体的な流れ>
このような本実施形態においては、以下のようにして帳票再作成システム10により、原帳票の帳票データを用いた帳票の再作成処理が行われる。
図3において、過去に自己の名義で若しくは自己の関与の下で帳票を作成した者(例えば、金融機関の顧客等)またはその代行者(例えば、金融機関の担当者等)であるユーザは、ユーザ端末40を操作し、帳票を再作成するための再作成指示情報を、ネットワーク1を介して帳票再作成システム10へ送信する。この際、再作成指示情報には、再作成対象の帳票データの指定情報(例えば、顧客コードや顧客氏名、および原帳票の作成年月日)が含まれるとともに、ユーザが拡張機能を使用することを選択した場合には、出力レイアウト指定情報も含まれる。帳票再作成システム10では、再作成指示受付手段21により、ユーザ端末40からの再作成指示情報を受け付ける(ステップS1)。
ここでは、ユーザにより指定された再作成対象の帳票データは、バージョン3のデータフォーマットで作成されているものとする。従って、変換開始バージョンは、バージョン3である。また、ユーザが拡張機能の使用を選択していた場合には、指定出力レイアウトは、バージョン6のレイアウトであるものとする。従って、変換終了バージョンは、標準機能使用時であれば、直近のレイアウトのバージョンNであり、拡張機能使用時であれば、バージョン6である。
続いて、帳票データ取得手段22により、再作成指示受付手段21により受け付けた再作成指示情報を用いて、帳票データ記憶手段31に記憶された作成済の帳票データの中から、再作成対象の帳票データを取得する(ステップS2)。
また、帳票データ取得手段22により、レイアウト変更日記憶手段32に記憶されたレイアウト変更日情報を取得し、取得したレイアウト変更日情報を、取得した帳票データとともに、データ変換手段23へ渡す(ステップS2)。
それから、データ変換手段23により、帳票データ取得手段22により取得した再作成対象の帳票データを、出力レイアウトに対応するデータフォーマットに従った帳票データに変換する処理を実行するにあたり、データ変換処理範囲判定手段23Aにより、再作成指示情報およびレイアウト変更日情報から、データ変換処理の範囲(変換開始バージョンおよび変換終了バージョン)を判断して決定し、データフォーマット記憶手段33から、その範囲のデータフォーマットを取得する(ステップS3)。なお、全てのデータフォーマットを取得し、各サブ処理手段23Bによる処理で、必要なデータフォーマットを参照するようにしてもよい。
続いて、ユーザが標準機能の使用を選択していた場合には、変換終了バージョンは、直近のレイアウトのバージョンNである。そして、変換開始バージョンは、バージョン3であり、バージョン3のデータフォーマットに従った帳票データがある状態であるから、サブ処理手段23B(3)により、バージョン3から4のデータフォーマットの変換処理を行い、その後、サブ処理手段23B(4)により、バージョン4から5のデータフォーマットの変換処理を行い、さらに、サブ処理手段23B(5)により、バージョン5から6のデータフォーマットの変換処理を行い、…、最後に、サブ処理手段23B(N−1)により、バージョン(N−1)からNのデータフォーマットの変換処理を行い、直近のバージョンNのデータフォーマットに従った帳票データを得る(ステップS4)。
この際、各サブ処理手段23Bによる変換処理(各サブ処理)では、スキップ情報記憶手段34や復活項目退避情報記憶手段35に記憶された情報を用いて、必要なスキップ処理や復活項目退避処理を行う。
それから、帳票出力手段24により、データ変換手段23による変換処理で得られた直近のバージョンNのデータフォーマットに従った帳票データを用いて、直近のレイアウトで帳票を再作成する帳票マッピング処理を実行する(ステップS5)。この際、帳票マッピング処理に用いるマッピング情報は、標準機能使用時には、直近のバージョンNのレイアウト用のマッピング情報となり、これは、予め用意されているので(プログラム内に記述されるか、または、マッピング情報記憶手段(不図示)に記憶されているので)、拡張サブ処理手段24Bによる拡張サブ処理を行うことなく、帳票マッピング手段24Aにより、帳票マッピング処理を実行することができる。
一方、ユーザが拡張機能の使用を選択していた場合には、変換終了バージョンは、ここでは、一例としてバージョン6としている。そして、変換開始バージョンは、バージョン3であり、バージョン3のデータフォーマットに従った帳票データがある状態であるから、サブ処理手段23B(3)により、バージョン3から4のデータフォーマットの変換処理を行い、その後、サブ処理手段23B(4)により、バージョン4から5のデータフォーマットの変換処理を行い、さらに、サブ処理手段23B(5)により、バージョン5から6のデータフォーマットの変換処理を行い、バージョン6のデータフォーマットに従った帳票データを得る(ステップS6)。
この際、各サブ処理手段23Bによる変換処理(各サブ処理)では、スキップ情報記憶手段34や復活項目退避情報記憶手段35に記憶された情報を用いて、必要なスキップ処理や復活項目退避処理を行う。
また、上述した各サブ処理手段23Bによる変換処理の後に、または、各サブ処理手段23Bによる変換処理と並行して、各拡張サブ処理手段24Bによる拡張サブ処理を行う。前述したように、直近のバージョンNのレイアウト用のマッピング情報は、予め用意されているので、拡張サブ処理手段24B(N−1)により、バージョンNから(N−1)のマッピング情報の変換処理を行い、その後、拡張サブ処理手段24B(N−2)により、バージョン(N−1)から(N−2)のマッピング情報の変換処理を行い、…、さらに、拡張サブ処理手段24B(7)により、バージョン8から7のマッピング情報の変換処理を行い、最後に、拡張サブ処理手段24B(6)により、バージョン7から6のマッピング情報の変換処理を行い、バージョン6のレイアウト用のマッピング情報を得る(ステップS7)。
この際、各拡張サブ処理手段24Bによる変換処理(各拡張サブ処理)では、差分情報記憶手段36に記憶された差分情報を用いて、マッピング情報の変換処理を行う。
それから、帳票マッピング手段24Aにより、データ変換手段23による変換処理で得られたバージョン6のデータフォーマットに従った帳票データと、各拡張サブ処理手段24Bによる変換処理で得られたバージョン6のレイアウト用のマッピング情報とを用いて、バージョン6のレイアウトで帳票を再作成する帳票マッピング処理を実行する(ステップS8)。
その後、帳票出力手段24により、再作成した帳票をファイル化し、作成した帳票ファイルを、ネットワーク1を介してユーザ端末40へ送信したり、あるいは、再作成した帳票を印刷し、ユーザへ郵送する等の出力を行う(ステップS9)。
<本実施形態の効果>
このような本実施形態によれば、次のような効果がある。すなわち、帳票再作成システム10は、データ変換手段23により帳票データのデータフォーマットの変換を行う際に、1つ後のバージョン(バージョン番号が1つ大きいバージョン)のデータフォーマットへの変換を行うサブ処理手段23Bを設け(図2参照)、このサブ処理手段23Bによるサブ処理を繰り返すことにより、バージョンを1つずつ後にずらしながら(バージョン番号を1つずつ大きくしながら)、出力レイアウト(標準機能使用時には、直近のレイアウト)のデータフォーマットに従った帳票データに変換するので、従来の場合のように、多くの変換プログラムを用意する場合に比べ、システム管理の容易化を図ることができるとともに、帳票の再作成時に発生するおそれのあった作成ミスを回避することができる。
つまり、帳票のレイアウト変更が生じた場合には、帳票再作成システム10では、そのレイアウト変更前の時点における直近のレイアウト(バージョン番号=N)に対応するデータフォーマットから新規レイアウト(バージョン番号=N+1)に対応するデータフォーマットへの変換を行う1つのサブ処理手段23B(N)を、プログラム内に追加設置すればよいので(図2参照)、従来のように、レイアウト変更の発生に伴って多数の変換プログラムを用意する必要はなくなる。より詳細に述べると、従来は、新規レイアウト(バージョン番号=N+1)が発生した場合、1→(N+1)、2→(N+1)、3→(N+1)、4→(N+1)、…、(N−1)→(N+1)、N→(N+1)の変換プログラムを新たに用意する必要があったが、帳票再作成システム10では、データ変換手段23を構成するプログラム部分に、バージョンNからバージョン(N+1)への変換を行うサブ処理手段23B(N)を追加設置するだけでよい。従って、従来に比べ、システム管理者の作業負担を軽減できるうえ、プログラムの管理の容易化を図ることができる。
換言すれば、再作成対象の帳票データが、いずれのデータフォーマットで保存されているものなのかは、再作成指示を受けて初めて定まるものであり、不確定な内容であるから、システムとしてユーザの多様な要求に応えるためには、従来は、1→(N+1)、2→(N+1)、3→(N+1)、4→(N+1)、…、(N−1)→(N+1)、N→(N+1)といった多数の変換プログラムを用意しなければならなかったが、帳票再作成システム10では、そのようなことをしなくても、ユーザの多様な要求に応えることができる。このことは、データ変換手段23が、各サブ処理手段23Bによるサブ処理の繰り返し(積み上げ)により、1バージョンずつ帳票データのデータフォーマットを変換する構成(図2参照)をとっていることによるものである。
また、従来のように、過去のレイアウトのマッピング情報のバックアップを含め、過去のシステム全体を残しておき、過去の帳票データを用いて過去のレイアウトで再作成帳票の出力を行う場合に比べても、帳票再作成システム10では、複数の過去のレイアウトのマッピング情報の保存管理や、複数の過去のシステム本体の維持管理を行う必要はなくなるので、システムの維持・管理の手間を軽減することができるうえ、使用するシステムの選択や、使用するマッピング情報の選択における錯誤による作成ミスの発生も回避することができる。
さらに、過去に作成した帳票(原帳票)の帳票データを用いて、そのときのレイアウト(原帳票作成時のレイアウト)でしか再作成帳票を出力できないとなると、ユーザの満足度は下がるが、帳票再作成システム10では、原帳票作成時のレイアウト以外のレイアウト(標準機能使用時には、直近のレイアウト)で出力することができるので、ユーザにとって使い勝手のよいシステムを実現することができる。
そして、帳票再作成システム10は、拡張機能使用時には、直近のレイアウト以外のレイアウトを指定して再作成帳票を出力することができるので、より一層、ユーザの多様な要求に応えることができ、システムの使い勝手を、より一層向上させることができる。
また、帳票再作成システム10は、帳票出力手段24により帳票マッピング処理を行う際に、差分情報記憶手段36に記憶された差分情報を用いて帳票マッピング処理用のマッピング情報を1つ前のバージョン(バージョン番号が1つ小さいバージョン)のレイアウトに対応するマッピング情報に変換する拡張サブ処理手段24Bを設け(図2参照)、この拡張サブ処理手段24Bによる拡張サブ処理(マッピング情報の変換処理)を繰り返すことにより、直近のレイアウトに対応するマッピング情報を、バージョンを1つずつ前にずらしながら(バージョン番号を1つずつ小さくしながら)、任意のレイアウトに対応するマッピング情報に変換するので、複数の過去のレイアウトに対応するマッピング情報を全て保存管理しておく必要はなくなるため、システムの維持・管理の容易化を図ることができる。
さらに、帳票のレイアウト変更が生じた場合には、新規レイアウトに対応するマッピング情報が与えられることになるが(対応するマッピング情報を作成して用意することになるが)、その新規レイアウトに対応するマッピング情報から、レイアウト変更前の時点における直近のレイアウト(1つ前のバージョンのレイアウト)に対応するマッピング情報への変換を行う1つの拡張サブ処理手段24B(N)を追加設置するとともに(図2参照)、それらのマッピング情報の差分情報を差分情報記憶手段36に追加保存するだけでよいので、システム管理者の手間をかけることなく、任意のレイアウトでの再作成帳票の出力を実現することができる。
また、データ変換手段23は、スキップ情報記憶手段34(図5参照)に記憶されるか若しくはプログラム内部に記述されたスキップ情報(項目単位スキップ情報、サブ処理単位スキップ情報)を用いて、項目単位やサブ処理単位で、サブ処理内の一部の変換処理やサブ処理自体をスキップする構成とされているので、システムの処理量の削減や、処理の高速化を図ることができる。
さらに、データ変換手段23は、復活項目退避情報記憶手段35(図6参照)に記憶されるか若しくはプログラム内部に記述された復活項目退避情報を用いて、復活項目のデータのワークエリアへの退避処理およびワークエリアからの当該データの取得処理(図8参照)を行う構成とされているので、過去のレイアウトにあった項目が、それに続く中間のレイアウトでなくなり、さらにその後のレイアウトで復活するようなケースでも、帳票の再作成を行う際に、復活項目のデータを活かすことができる。このため、帳票データのデータフォーマットを、サブ処理により1バージョンずつ変換していく構成をとっていても、データを途中で消失させることなく、その項目が復活したバージョンのレイアウトにおいて、その復活項目のデータを出力させることができる。
また、帳票再作成システム10は、情報作成支援手段25を備えているので、帳票のレイアウト変更が発生し、新規バージョンのレイアウトに対応する新規のデータフォーマットが与えられた時点で、スキップ可能な項目や復活項目の自動抽出を行うことができるため、システム管理者の手間を軽減することができる。
[変形の形態]
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
例えば、前記実施形態では、ネットワーク1を介してユーザ端末40からの再作成指示を受け付ける構成とされていたが、本発明の帳票再作成システムは、スタンドアロンのシステム構成としてもよい。
また、前記実施形態では、復活項目に対応するために、ワークエリアを設けていたが、1バージョンずつのデータフォーマットの変換を行うサブ処理手段23B(図2参照)とは別に、復活項目対応用のバイパス処理を実行するバイパス処理手段を設けてもよい。このバイパス処理手段は、復活項目が存在していた過去のレイアウトに対応するデータフォーマットから、復活項目が復活したレイアウトに対応するデータフォーマットへの変換処理を実行するものである。従って、復活項目が存在していた過去のレイアウトと、復活項目が復活したレイアウトとの間の1つまたは複数の中間のレイアウトに対応するデータフォーマットへの変換処理は、飛ばされることになる。
例えば、ある項目が、バージョン6のレイアウト(過去のレイアウト)にあったが、バージョン7〜9のレイアウト(3つの中間のレイアウト)でなくなり、さらにその後、バージョン10のレイアウトで復活するような場合の復活項目に対応するためのバイパス処理手段は、バージョン6からバージョン10へのデータフォーマットの直接変換処理を実行することになる。つまり、バージョン6のデータフォーマットを構成する各項目のラベル番号と、バージョン10のデータフォーマットを構成する各項目のラベル番号とを直接に対応付ける変換処理を実行する。従って、中間のバージョン7〜9のデータフォーマットへの変換処理は、飛ばされることになる。
上記のように6→10のバイパス処理手段を設置する場合において、例えば、バージョン3が変換開始バージョンであり、バージョン13が変換終了バージョンであったとすると、サブ処理手段23B(3),23B(4),23B(5)により、バージョン3→4、4→5、5→6の各サブ処理を実行した後、バイパス処理手段により、6→10のバイパス処理を実行し、さらにその後、サブ処理手段23B(10),23B(11),23B(12)により、バージョン10→11、11→12、12→13の各サブ処理を実行する。
一方、上記のように6→10のバイパス処理手段を設置する場合において、例えば、バージョン3が変換開始バージョンであり、バージョン8が変換終了バージョンであったとすると、バージョン8には、復活項目はないので、バイパス処理は実行されず、通常通りのサブ処理の繰り返し(積み上げ)となる。バージョン8はバイパス処理で飛ばされる位置にあるので、バイパス処理の適用はできないからである。従って、サブ処理手段23B(3),23B(4),23B(5),23B(6),23B(7)により、バージョン3→4、4→5、5→6、6→7、7→8の各サブ処理を実行する。
また、上記のように6→10のバイパス処理手段を設置する場合において、例えば、バージョン8が変換開始バージョンであり、バージョン13が変換終了バージョンであったとすると、バージョン8には、復活項目はないので、バイパス処理は実行されず、通常通りのサブ処理の繰り返し(積み上げ)となる。バージョン8はバイパス処理で飛ばされる位置にあるので、バイパス処理の適用はできないからである。従って、サブ処理手段23B(8),23B(9),23B(10),23B(11),23B(12)により、バージョン8→9、9→10、10→11、11→12、12→13の各サブ処理を実行する。
なお、この復活項目対応用のバイパス処理は、サブ処理を飛ばすという意味において、前記実施形態のサブ処理単位スキップ処理に似ているようにも見えるが、両者は全く異なるものである。前記実施形態のサブ処理単位スキップ処理は、サブ処理をスキップするが、そのスキップした分の代替としての変換処理は行わないのに対し、復活項目対応用のバイパス処理は、代替としての変換処理を行うからである。例えば、前記実施形態において、バージョン4とバージョン7のデータフォーマットが同じであるときには、バージョン4の帳票データを、バージョン7の帳票データとみなすことができるので、バージョン4→5、5→6、6→7の各サブ処理をスキップする。これに対し、復活項目対応用のバイパス処理は、バージョン4とバージョン7のデータフォーマットが同じであるから、4→5、5→6、6→7の各サブ処理を飛ばすわけではなく、バージョン4とバージョン7のデータフォーマットが異なっている状況下で、飛ばす各サブ処理の代替としての4→7の直接変換処理を実行する。