(57)【特許請求の範囲】
【請求項１】
格納手段に格納されている、帳票に出力するデータ項目の格納フォーマットを定義した複数のレコード仕様情報および前記データ項目の特性に対応した編集条件情報に基づいて、前記複数のレコード仕様毎に前記データ項目の出力レイアウト情報を作成し、該作成した出力レイアウト情報を前記格納手段に格納するレイアウト生成手段と、
前記端末からの出力レイアウト変更情報に基づいて、前記格納手段に格納されている当該出力レイアウト情報を更新するレイアウト編集手段と、
前記格納手段から前記出力レイアウト情報を読み出し、該読み出した出力レイアウト情報をプリントパラメタとして前記格納手段に格納するパラメタ生成手段と、
記格納手段に格納されている前記プリントパラメタから前記出力レイアウト情報を生成するプリントパラメタ逆生成手段と、
前記格納手段に格納されている前記プリントパラメタで定義した出力レイアウト情報に従って、前記格納手段に格納されている帳票出力用データを帳票に出力するプリント出力手段と、を
有することを特徴とする帳票出力システム。
【請求項２】
前記格納手段に格納されている前記帳票に出力する前記データ項目の格納フォーマットを定義した新旧のレコード仕様情報の差分を抽出する手段と、
該差分情報に基づいて、前記格納手段に格納されている前記出力レイアウト情報を更新する手段と、をさらに有することを特徴とする請求項１に記載の帳票出力システム。
【請求項３】
前記格納手段に格納されている前記出力レイアウト情報を表示する表示手段をさらに有することを特徴とする請求項１または請求項２に記載の帳票出力システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＡＳＥツールを適用した場合の、帳票を出力するシステム、および、デバッグ時にコンピュータの記憶装置に記録されたデータやデータベースを閲覧し、内容を確認のためにプリントアウトするシステムに関する技術分野。
【０００２】
【従来の技術】
従来、特開平６−９６１０３号に記載のように、データファイルとデータファイルに関する情報を格納したデータファイルレコード情報とプリンタ出力フォーマット情報を備え、これらの情報に基づいてデータファイルの内容を帳票形式に編集し、帳票データ作成手段にてデータファイルからの入力レコードを帳票形式に編集し出力帳票に出力する発明が示されていた。
【０００３】
【発明が解決しようとする課題】
しかしながら、この従来例では、プリンタ出力レイアウトの各データ項目の位置の変更や、データ項目の追加・削除をすることについては何ら考慮されていない。また、レコード仕様が複数混在する場合に、そのレコードを帳票に出力する際は、それぞれのレコードに応じて出力レイアウトを定義し、帳票出力時に適切な出力レイアウトに切り替えるために、コンピュータ言語による個別プログラムを作成し、レコード入力時にレコード仕様の判定と出力レイアウトの切り替えをプログラムにて制御しなければならない必要があった。
【０００４】
本発明は、上記した課題を解決し、帳票出力に関する作業効率、信頼性および柔軟性の向上を目的とする。
【０００５】
【課題を解決するための手段】
本発明では、新規に帳票を出力する場合は、まず出力レイアウトを定義するために、レコード仕様書を入力して出力レイアウト情報を生成し、必要に応じて出力レイアウト情報をエディタにより変更し、出力レイアウト情報をプリントパラメタとして保存する。次に帳票を出力するために、プリントパラメタとデータファイルを読み込み、プリントパラメタに記録した出力レイアウトに従ってレコードを編集し、データファイルから読み出したレコードの順に帳票を出力する。
【０００６】
また、過去に定義した出力レイアウトを変更する場合は、プリントパラメタを読込むことでプリントパラメタに記録された出力レイアウト情報を読み出し、エディタにより出力レイアウト情報の変更を行い、新しいプリントパラメタとして保存する。
データ項目の追加や削除などレコード仕様書を変更した場合は、差分を出力レイアウトに反映し、必要に応じてエディタにて修正を加え、新しいプリントパラメタとして保存する。
レコード仕様書を入力して出力レイアウトを生成するため、表形式データベース記録形式に特定せず、また、表形式データベース記録形式に正規化されていない場合にも対応する。また、データファイルからの入力順序に従って帳票印刷するため、データの順序性も保証できる。
【０００７】
通常、データ項目設計では末尾に「年月日」や「額」などデータ項目の特性を表す単語を設定することが多い。予めデータ項目の末尾部分に対応する編集方法を決め、編集条件初期情報として保存しておくことで、出力レイアウト生成時に編集条件初期情報に登録されているデータ項目は個々に手作業による編集条件の定義を必要とせず、適切な編集条件を設定できる。例えば、「郵便番号」という末尾を持つデータ項目なら、ＸＸＸ−ＸＸＸＸという編集条件を設定することができる。また、手作業によって編集条件を変更することもできる。
【０００８】
コンピュータのログデータや外部機関との磁気媒体での受け渡しデータなど、レコード毎にレコード仕様が変更されるデータファイルの場合、通常、レコード仕様が可変となる部分の格納フォーマット（レコード仕様）を識別できる識別子を持つ。例えば、コンピュータ処理のログデータではログメッセージの識別子（ログメッセージＩＤ）があり、ログメッセージＩＤ毎にログメッセージのフォーマットが定められている。外部機関との受け渡しデータの例では、必ず定位置にレコードフォーマットを一意に識別する識別子（レコードフォーマットＩＤ）があり、このレコードフォーマットＩＤをもとに読み込むデータのフォーマットを特定する。このような場合、まず、レコードフォーマットＩＤに対応するレコード仕様毎に出力レイアウトを定義し、プリントパラメタを登録しておく。帳票出力時は、帳票出力の実行命令と同時にレコードフォーマットＩＤの位置や長さを指定しておくことで、レコードを読み込んだ時にレコードフォーマットＩＤの内容によって、適切なプリントパラメタを読み出し、そのレコードに合った出力レイアウトにデータを編集し、帳票に出力することができる。
【０００９】
【発明の実施の形態】
図1は本発明の実施形態の構成を示す昨日構成図を示す。101はプリンと派らメタ生成を行う制御手段である。102は汎用プリント出力を行う制御手段である。101と102の手段を実現する装置は、同一の装置でも異なる装置でもよい。103はレコード仕様書を格納している保管庫である。104は数字項目のカンマ編集や日付項目の西暦和暦編集などの編集条件の初期値を編集条件初期情報として格納している保管庫である。105は出力レイアウト情報を記録したプリントパラメタの保管庫である。106は帳票に出力するデータファイルを格納した保管庫である。107はデータファイルをプリントパラメタに定義した出力レイアウト情報に従って編集し打ち出した帳票である。
【００１０】
プリントパラメタ生成部101は、レコード仕様書の内容を出力レイアウト情報に変換するレイアウト生成手段108、出力項目の位置や編集条件などを変更するレイアウト編集手段109、出力レイアウト情報をプリントパラメタに書き出すパラメタ生成手段110、プリントパラメタから出力レイアウト情報を生成するレイアウト逆生成手段111、レコード仕様書変更時に新レコード仕様書と旧レコード仕様書の差分を抽出し出力レイアウト情報に反映する差分取り込み手段112、および出力レイアウト情報を格納する内部テーブル113から構成されている。
【００１１】
114および115はプリントパラメタ生成手段101および汎用プリント出力手段102にユーザが操作命令を与える端末装置であり、114はレイアウト編集機能109を行うエディタとしても使用する。114と115は同一の装置であっても異なる装置であってもよい。
【００１２】
以下図12〜18により動作の概要について説明する。
プリントパラメタ生成部101の機能については、以下の図12から図16で説明する。
図12は、レイアウト生成手段108の入出力図である。図13は、レイアウト編集手段109の入出力図である。図14は、パラメタ生成手段110の入出力図である。図15は、レイアウト逆生成手段111の入出力図である。図16は、差分取り込み手段112の入出力図である。
図17は、汎用プリント出力手段102の入出力図である。図18は、図12〜17の機能関連図である。
【００１３】
レコード仕様書から新規にプリントパラメタを生成する場合は、レイアウト生成手段108を起動する(図12)。ユーザが端末装置114から、レコード仕様書を一意に特定する識別子であるレコード仕様書IDを投入することにより、プリントパラメタ生成部101のレイアウト生成手段108は、編集条件初期情報を編集条件初期情報ライブラリ104から読み出し、投入されたレコード仕様書IDを持つレコード仕様書をレコード仕様書ライブラリ103から読み出し、レコード仕様書の定義内容から出力レイアウト情報を生成し、内部テーブル113に出力レイアウト情報を格納し、内部テーブル113の出力レイアウト情報を端末装置114上に表示する。プリントパラメタ生成については、後に図19にて説明する。
出力レイアウト情報を端末装置114上に表示した状態を出力レイアウトという。
【００１４】
端末装置114に表示されている出力レイアウトを変更する場合は、レイアウト編集手段109を起動する(図13)。ユーザがマウス等の端末装置114が備える入力装置から、端末装置114に表示されている出力レイアウトを変更することにより、レイアウト編集手段109は内部テーブル113に格納している出力レイアウト情報を更新し、端末装置114の出力レイアウトを更新する。レイアウト編集については、後に図20にて説明する。
【００１５】
出力レイアウト情報をプリントパラメタとして保存する場合は、パラメタ生成手段110を起動する(図14)。ユーザが端末装置114からパラメタ生成手段110の実行命令を投入することにより、プリントパラメタ生成部101のパラメタ生成手段110は内部テーブル113に保持している出力レイアウト情報をプリントパラメタとしてプリントパラメタライブラリ105に出力する。パラメタ生成については、後に図21にて説明する。
【００１６】
既に定義されている出力レイアウトを変更する場合は、レイアウト逆生成手段111を起動する(図15)。ユーザが端末装置114から、対象となるプリントパラメタIDを投入することにより、プリントパラメタ生成部101のレイアウト逆生成手段111は投入されたプリントパラメタIDに対応するプリントパラメタをプリントパラメタライブラリ105から読み出し、プリントパラメタに記録されている出力レイアウト情報を内部テーブル113に展開し、出力レイアウトを端末装置114に表示する。レイアウト逆生成については、後に図23にて説明する。
【００１７】
レコード仕様書に追加、削除などの変更がある場合にプリントパラメタを変更する場合は、差分取り込み手段112を起動する(図16)。ユーザが端末装置114から、差分取り込み機能の実行命令と新旧のレコード仕様書IDを投入することにより、差分取り込み手段112は、投入された新旧レコード仕様書IDに対応するレコード仕様書をレコード仕様書ライブラリ103から読み出し、編集条件初期情報を編集条件初期情報ライブラリ104から読み出し、旧レコード仕様書IDに対応するプリントパラメタをプリントパラメタライブラリ105から読み出し内部テーブル113に展開し、新旧レコード仕様書の差分情報を検出し、差分情報に対して編集条件初期情報により編集条件を設定し、内部テーブル113上の出力レイアウト情報を差分情報によって更新し、出力レイアウトを端末装置114に表示する。差分取り込みについては、後に図24にて説明する。
【００１８】
プリントパラメタライブラリ105に登録されたプリントパラメタに従って帳票を出力する場合は、汎用プリント出力手段102を起動する(図17)。ユーザが端末装置115から、汎用プリント出力手段の実行命令とデータファイルを一意に識別するデータファイルIDとプリントパラメタIDと、出力レイアウトを切り替える必要に応じて可変となるレコードフォーマットを一意に識別する識別子（可変部プリントパラメタID）を格納しているレコード上の位置を投入することにより、汎用プリント出力手段が起動する。このとき、汎用プリント出力手段を起動する方法は、端末装置115から対話的に起動してもよいし、データファイルIDとプリントパラメタIDなどを引数としたバッチ処理として起動してもよい。起動した汎用プリント出力手段102は、データファイルIDに対応するデータファイル106を読み出し、投入したプリントパラメタIDとレコードから抽出した可変部プリントパラメタIDに対応するプリントパラメタをプリントパラメタライブラリ105から読み出し、プリントパラメタに定義された出力レイアウト情報に従って編集し、帳票107に出力する。汎用プリント出力手段については、後に図22にて説明する。
【００１９】
図18の機能関連図では、例えば図12に示すレイアウト生成手段108を実行可能な状態を状態108とし、状態108の実行後、次段の処理として実行可能な処理を矢印で示す。
新規に帳票を出力する場合は、レイアウト生成手段108、パラメタ生成手段110、必要に応じてレイアウト編集手段109を用い、プリントパラメタを生成する。帳票を出力するには、汎用プリント出力手段102を用いる。既に定義された出力レイアウトを変更し、帳票を出力する場合は、レイアウト逆生成手段111、パラメタ生成手段110、必要に応じてレイアウト編集手段109を用い、汎用プリント出力手段102を用いる。レコード仕様書の追加、削除などの変更を反映した帳票を出力する場合は、差分取り込み手段112、パラメタ生成手段110、必要に応じてレイアウト編集手段109を用い、汎用プリント出力手段102を用いる。
【００２０】
図2〜11を例に、入出力図12〜17に対応する動作の詳細を図19〜24で説明する。
【００２１】
レイアウト生成手段108の動作について図19を用いて説明する。1901はレコード仕様書IDを受け付ける。1902は1901で受け付けたレコード仕様書IDに対応したレコード仕様書をレコード仕様書ライブラリ103から読み出す。
【００２２】
図2は、レコード仕様書の例である。図2の1行をデータ項目情報という。一つのデータ項目情報で一つのデータ項目を定義する。210はレコード仕様書IDでありプリントパラメタIDと同一である。220はデータファイル106のレコード長である。230はデータの内容を表すデータ項目日本語名称である。240はプログラムコーディングで使用するデータ項目記号名称である。250は集団項目、基本項目を識別するレベルである。あるデータ項目αのレベルの数字が、次の行にあるデータ項目のレベルの数字よりも小さいときは、データ項目αは集団項目という。そうでないときは、データ項目αは基本項目という。260はデータ項目の属性である。例えば、「G」は集団項目、「G」以外は基本項目であり、「X」は(半角)英数字項目、「N」は(全角)日本語項目、「9」は数字項目である。270はデータ項目の桁数である。280はデータ項目が繰り返し項目のときの繰り返し回数である。
【００２３】
1903は編集条件初期情報ライブラリ104から編集条件初期情報を読み出す。
【００２４】
図3は、編集条件初期情報ライブラリ(104)に格納される編集条件初期情報の例である。310はデータ項目記号名称204のドメインである。ドメインとは、データ項目記号名称の末尾から一つ目のハイフン“-”以降の部分を指す。320はドメインに対応した編集条件である。編集条件初期情報に定義したドメイン（311、312、…、317）をもつデータ項目については、対応した編集条件（321、322、…、327）を自動的に適用する。編集条件はレイアウト編集機能(109)にて変更が可能である。
【００２５】
1904は1902、1903で読み出したレコード仕様書、編集条件初期情報に従って出力レイアウト情報を生成する。生成した出力レイアウト情報は内部テーブル113に出力レイアウト情報として格納する。
【００２６】
図6は図2、図3から生成し、内部テーブル113に格納した出力レイアウト情報である。図6の1行をオブジェクト情報という。図6については後述する。
【００２７】
1905では、1904の内部テーブル113に格納した出力レイアウト情報を表示する。
【００２８】
図4は図2、図3から生成した出力レイアウトである。帳票に打ち出す見出しやデータの基本単位(401,402,…,416)をオブジェクトと呼ぶ。一つのオブジェクト情報で一つのオブジェクトを定義する。
【００２９】
レイアウト生成とはオブジェクトを配置し、内部テーブル113を更新することであり、オブジェクトの属性は内部テーブル113のオブジェクト情報と1対1で対応する。つまり、図4と図6のもつ属性は同一である。また、オブジェクトの集合を出力レイアウト、オブジェクト情報の集合を出力レイアウト情報と呼ぶ。
【００３０】
以下で、図4、図6について説明する。
【００３１】
まず図4について説明する。オブジェクトは見出し項目オブジェクトとデータ項目オブジェクトで構成する。図2に示すレコード仕様書の定義内容を出力レイアウトに配置する際には、レコード仕様書のデータ項目情報から、見出し項目オブジェクト、データ項目オブジェクトを抽出し、ラスタスキャン方式に従って、出力レイアウトの1行の表示桁を超えることが無いように順に配置する。ただし、配置順序は、ラスタスキャン方式に限定するものではない。図4では1行の表示枠を59桁とした。
【００３２】
オブジェクトの配置方法について説明する。
【００３３】
集団項目は見出し項目オブジェクトのみを配置する。集団項目は、見出し項目オブジェクトを行の左端に1項目のみ配置し、それより右側には配置しない。集団項目の見出し項目オブジェクトの長さはデータ項目日本語名称230の長さとする。見出し項目オブジェクトにはデータ項目日本語名称230を表示する。図4では、集団項目の見出し項目オブジェクトは401、402である。
【００３４】
基本項目は、見出し項目オブジェクトと、データ項目オブジェクトを配置する。基本項目の見出し項目オブジェクトはデータ項目日本語名称230にコロン“：”を付加した長さとし、データ項目日本語名称230とコロンを表示する。図4では、基本項目の見出し項目オブジェクトは403、405、407、409、411、415である。
【００３５】
次に、基本項目のデータ項目オブジェクトは以下に従う。図4では、基本項目のデータ項目オブジェクトは404、406、408、410、412、413、414、416である。編集条件初期情報の編集条件が適用されないデータ項目オブジェクトの場合は属性260と桁数270により必要な長さとし、例えば、日本語項目は1文字を2バイト分の長さ、半角英数字項目は1文字を1バイト分の長さとする。図4では、編集条件初期情報の編集条件が適用されないデータ項目オブジェクトは、404、410、412、413、414、416である。
編集条件初期情報の編集条件が適用されたデータ項目オブジェクトの場合は編集条件に従って編集された長さとする。図4では406が313,323、408が315,325の編集条件を適用した。データ項目オブジェクトには編集条件を表示する。編集条件初期情報に該当するデータ項目オブジェクトについては、編集条件初期情報から適用した編集条件を表示し、そうでないデータ項目オブジェクトについては属性260の内容をその桁数270分の長さを表示する（属性Ｎ、桁数４なら、「ＮＮＮＮ」となる）。複数の基本項目を1行の表示桁を越えない範囲で順に配置する。
【００３６】
繰り返し項目は、改行して見出し項目オブジェクトを配置、改行してデータ項目オブジェクトを繰返し項目の1番目から1行の表示枠を超えない範囲で順に配置する。繰り返し項目を表示する行には繰り返し項目以外を配置しない。つまり、繰り返し項目に続けてオブジェクトを配置する場合は改行してからオブジェクトを配置する。図4では、411が繰り返し項目の見出し項目オブジェクト、412,413,414が繰り返し項目のデータ項目オブジェクトである。
【００３７】
次に図6について説明する。601はこのレコード仕様書ID210に対応したプリントパラメタIDを設定する。605はオブジェクトがページの先頭から何行目にあるかを設定する。606はオブジェクトの位置が行の先頭から何列目かを設定する。607はオブジェクトを実際に印刷した後、改頁する場合に１を設定し、改頁しない場合には０を設定するフラグである。レイアウト生成手段108は最終のオブジェクトに１を設定する。608はオブジェクトが見出し項目オブジェクトの場合に、見出し内容を設定する。609はオブジェクトがデータ項目オブジェクトの場合に、文字編集、日付編集、数字編集の各編集条件を設定する。編集条件初期情報に定義したドメインを持つデータ項目については、レイアウト生成手段108が編集条件初期情報から編集条件を適用する。610はオブジェクトがデータ項目オブジェクトの場合に、レコードの先頭からの開始位置をバイト数で設定する。見出し項目オブジェクトの場合は0を設定する。ある基本項目βのファイル編集開始位置610は、レコード仕様書の属性260、桁数270から基本項目βより前にある基本項目全てのバイト数を加算することで算出する。613はオブジェクトがデータ項目オブジェクトの場合に、繰り返し項目であることを区別する繰り返しフラグである。繰り返し項目でないデータ項目は0、繰り返し項目のときは順番を設定する。614はオブジェクトがデータ項目オブジェクトであり、かつ、数字項目で小数点編集をする場合に小数点以下の桁数を設定する。それ以外は0を設定する。615はオブジェクトがデータ項目オブジェクトの場合に、データ項目記号名称240を設定する。
【００３８】
レイアウト編集手段109の動作について図20を用いて説明する。2001は出力レイアウトにおけるオブジェクトを端末装置114が備えるマウス等の入力装置により選択し編集対象を特定することである。2002は端末装置114が備えるマウス等の入力装置から特定したオブジェクトに対してユーザが行う4種類の編集操作により2003、2006、2007、2009に分岐する。
【００３９】
1番目に、オブジェクトの移動の場合は、2003に分岐し、移動したオブジェクトが他のオブジェクトと重なる(干渉する)ときにはエラーを表示して(2005)オブジェクトを移動前の位置に戻す。エラーでないときは内部テーブル113のライン605、カラム606を移動後の値に更新する(2004)。図5は、図4の出力レイアウトをレイアウト編集手段109により変更した例である。509、510、512、513、515、517、519は、それぞれ409、410、415、416、412、413、414のオブジェクトを移動した。
【００４０】
2番目に、オブジェクトの削除の場合は、2006に分岐し、内部テーブル113の該当するオブジェクト情報を削除する。図5は、オブジェクト411を削除した例である。
【００４１】
3番目に、見出し項目オブジェクトの追加の場合は、2007に分岐し、見出し内容(608)を入力する。このオブジェクトは出力レイアウトの最終行の次行に追加することで他のオブジェクトと干渉しない。2008ではこのオブジェクト情報を内部テーブル113に追加する。511、514、516、518は見出し項目オブジェクトを追加し、追加した後に移動した例である。
【００４２】
4番目に、オブジェクトの編集条件（見出し項目オブジェクトの見出し内容(608)、データ項目オブジェクトの編集区分609の変更は、2009に分岐する。編集条件を変更すると、2010でオブジェクトに対応した編集条件かどうかを判定し正しい編集条件でなければエラーを表示して(2011)、変更前の編集条件に戻す。例えばデータ項目オブジェクトが数字項目のとき、文字編集の編集条件を入力した場合はエラーとなる。エラーでない場合は、次に、2012にて編集したオブジェクトが他のオブジェクトと干渉するかを判定する。オブジェクトの干渉があるときにはエラーを表示して(2013)、変更前の編集条件に戻す。エラーでないときは内部テーブル113の見出し内容608または編集区分609を更新する(2014)。
【００４３】
図５の501、502は見出し項目オブジェクト401、402の見出し内容を変更した例である。510は410の、513は416のデータ項目オブジェクトの編集区分を変更した例である。
【００４４】
いずれの編集操作の場合も、2015で、内部テーブル113の出力レイアウト情報をもって端末装置114上に表示する。図9は、図5の出力レイアウト情報を示す。
【００４５】
パラメタ生成手段(110)の動作について図21を用いて説明する。2101は、ユーザが端末装置(114)から実行命令を投入することで、内部テーブル113に保持している出力レイアウト情報をプリントパラメタとしてプリントパラメタライブラリ105に出力する。図5の出力レイアウトでは、図9の出力レイアウト情報をプリントパラメタとしてパラメタライブラリ(105)に出力する。
【００４６】
レイアウト逆生成手段(111)の動作について図23を用いて説明する。2301は端末装置(114)からプリントパラメタIDを受け付ける。2302は2301で受け付けたプリントパラメタIDに対応したプリントパラメタをプリントパラメタライブラリ105から読み出す。2303では2302で読み出したプリントパラメタを内部テーブル113に展開する。2304は、内部テーブル113のオブジェクト情報に従い、端末装置114に出力レイアウトを表示する。図9のプリントパラメタからレイアウト逆生成した例を図5に示す。
【００４７】
差分取り込み機能112の動作について図24を用いて説明する。2401は端末装置(114)から新旧のレコード仕様書IDを受け付ける。2402は2401で受け付けたレコード仕様書IDに対応したレコード仕様書をレコード仕様書ライブラリ103から読み出す。2403は編集条件初期情報を編集条件初期情報ライブラリ104から読み出す。2404は2402で旧レコード仕様書に対応したプリントパラメタをプリントパラメタライブラリ105から読み出し、内部テーブル113に格納する。2405は2402で読み出した旧レコード仕様書に対して新レコード仕様書において追加、削除、変更したデータ項目情報(差分)を抽出する。差分抽出のアルゴリズムは問わない。2406は2404で抽出した差分のデータ項目情報の一つずつに対して、追加、削除、変更の差分の種類に応じて次のようにする。追加されたデータ項目情報は、新規にオブジェクトを追加する。削除されたデータ項目情報は、旧オブジェクトを削除する。変更されたデータ項目情報は、変更前の旧オブジェクトを削除し、変更後のオブジェクトを新規に追加する。オブジェクトの追加、削除のアルゴリズムはレイアウト編集手段109の追加、削除に準ずる。編集条件初期情報を適用するデータ項目については編集条件初期情報を適用し、内部テーブル113を更新する。2407では2406で更新した内部テーブル113のオブジェクト情報に従い、端末装置114に出力レイアウトを表示する。旧レコード仕様書を図2、新レコード仕様書を図10（「氏名コード」を追加）、旧レコード仕様書から生成したプリントパラメタを図9とするとき、差分取り込みを行った出力レイアウトの例は図11の1101と1102である。
【００４８】
なお、以上の説明は出力レイアウト上のオブジェクトと内部テーブル113の両方が存在することとしたが、出力レイアウト上のオブジェクトのみでも内部テーブル113のみでも本発明を実施できる。
【００４９】
汎用プリント出力手段102について説明する。  出力レイアウトをレコードごとに切り替えない場合、つまり、データファイルの全レコードについて同一の出力レイアウトを用いる場合の汎用プリント出力手段102の動作について、データファイル106の1レコード分を図7、出力レイアウトを図5、出力レイアウト情報を図9とした例で、図22のフローチャートを用いて説明する。
【００５０】
2201では、ユーザがデータファイルID、プリントパラメタIDを投入する。また、2201については、端末装置115から対話的に入力しても、バッチ処理の起動引数として入力してもよい。2202では、2201で受け付けたプリントパラメタIDと対応するプリントパラメタをプリントパラメタライブラリ105から読み出す。2203は、2201で受け付けたデータファイルIDと対応するデータファイルから1レコードを読み込む。2204は、2202で読み出したプリントパラメタの出力レイアウト情報に従い、2203のレコードを編集し、帳票(107)に出力する。2202で図5、図9に対応したプリントパラメタを、2203で図7のレコードを読み込み、2204で編集し帳票に出力した例が図8である。見出し項目オブジェクトについては、ライン605、カラム606の位置から見出し内容608を印字する。801、802、803、805、807、809、811、812、814、816、818は、それぞれ501、502、503、505、507、509、511、512、514、516、518に従って出力した例である。データ項目オブジェクトについては、ファイル編集開始位置610から桁数611、属性612に従ったバイト数をレコードから読み出し、ライン605、カラム606の位置に編集区分609の編集条件に編集した結果を印字する。804は、ファイル編集開始位置610から、桁数611「10」、属性612「N」に従い、図7の1バイト目から20バイトを編集区分609「ＮＮＮＮＮＮＮＮＮＮＮＮＮＮＮＮＮＮＮＮ」編集で印字した例である。以下同様に、806は、図7の21バイト目から8バイトを「yyyy.mm.dd」編集で印字した例である。808は、図7の29バイト目から7バイトを「XXX-XXXX」編集で印字した例である。810は、図7の36バイト目から9バイトを「ZZZ,ZZZ,ZZ9」編集で印字した例である。813は、図7の60バイト目から5バイトを「ZZ9.99」編集で印字した例である。815は、図7の45バイト目から5バイトを「XXXXX」編集で印字した例である。817は、図7の50バイト目から5バイトを「XXXXX」編集で印字した例である。819は、図7の55バイト目から5バイトを「XXXXX」編集で印字した例である。
【００５１】
2205では、出力レイアウトを切り替えるときに指定する可変部プリントパラメタIDの格納位置などの情報を2201で入力していないため、「なし」である。出力レイアウトを切り替えるときの説明は後で述べる。2208は、2203から2205までをデータファイルがなくなるまで繰り返す。
【００５２】
次に、出力レイアウトをレコードごとに切り替える場合の汎用プリント出力手段102の動作について、データファイル106の2レコード分（レコード1、レコード2）を図29、共通部のレコード仕様書を図25、共通部の出力レイアウト情報を図26とした例で、図22のフローチャートを用いて説明する。この例では、レコードは全てのレコードで同一の出力レイアウトを用いる共通部と、レコード毎に出力レイアウトを切り替えることができる可変部で構成されている。また、可変部で適用する出力レイアウトを一意に識別する識別子（可変部プリントパラメタID）を格納するデータ項目を共通部に定義しておく。
【００５３】
2201では、ユーザが投入したデータファイルID、共通部のプリントパラメタID、共通部の長さ、および、可変部プリントパラメタIDを格納しているデータ項目の位置と長さを受け付ける。図25の場合、共通部の長さは28バイト、可変部プリントパラメタIDを格納しているデータの位置は21バイト目から、長さは8バイトである。また、2201については、端末装置115から対話的に入力しても、バッチ処理の起動引数として入力してもよい。
【００５４】
2202では、2201で受け付けた固定部のプリントパラメタIDと対応するプリントパラメタをプリントパラメタライブラリ105から読み出す。図25のレコード仕様書の場合、図26に対応したプリントパラメタを読み出す。2203は、2201で受け付けたデータファイルIDと対応するデータファイルから1レコードを読み込む。図29の例では、レコード１、レコード２の順番で読み込む事とし、まずレコード１を読み込むとする。2204は、2202で読み出したプリントパラメタの出力レイアウト情報に従い、2203で読み出した図29レコード１の共通部（レコード１の先頭から2201で指定した28バイトが共通部）を編集し、帳票107に出力する。編集と帳票出力については、データファイルの全レコードについて同一の出力レイアウトを用いる場合と同様である。図30帳票1の3001、3002で示す行は、図29のレコード1の共通部を帳票出力した結果の例である。
【００５５】
2205では、2201で可変部プリントパラメタIDの位置等を指定しているため、「あり」となる。2206では、2203で読み出した図29のレコード１から、2201で入力した可変部プリントパラメタIDを格納しているデータ項目の位置と長さに対応するデータを抜き出し、可変部プリントパラメタIDとしてプリントパラメタライブラリ105から読み出す。2201で共通部の長さは28バイト、可変部プリントパラメタIDを格納しているデータの位置を21バイト目から、長さは8バイトと指定した場合、図29のレコード１の例では「ＤＡＢ００００２」が可変部プリントパラメタIDとなる。「ＤＡＢ００００２」という可変部プリントパラメタID を持つプリントパラメタで定義している出力レイアウト情報の例を図27とする。2207では、2206で読み出した可変部プリントパラメタの出力レイアウト情報に従い、2203で読み出したレコードの可変部を編集し、帳票107に出力する。図30帳票1の3003、3004、3005で示す行は、図27の出力レイアウト情報に従って図29のレコード１の可変部を編集し、帳票に出力した結果の例である。編集と帳票出力については、データファイルの全レコードについて同一の出力レイアウトを用いる場合と同様である。2208は、2203から2207までをデータファイルがなくなるまで繰り返す。
【００５６】
同様に、図30帳票2は、図29のレコード2を、図26に示す共通部の出力レイアウト情報と図28に示す出力レイアウト情報に従って編集し、帳票出力した結果の例である。3006、3007で示す行が共通部、3008、3009で示す行が可変部を帳票出力した結果の例である。
【００５７】
なお、以上の説明は共通部があることとしたが、共通部はなくてもよい。共通部がない場合は2201で指定する共通部の長さはゼロとし、2202、2204はなにもしない。また、可変部プリントパラメタIDは共通部にある例で説明したが、共通部、可変部のどちらにあってもよい。
【００５８】
上述したように、本発明の実施例によれば、データ項目毎に必要な編集条件の設定は、データ項目名称の末尾部分に対応する編集方法を予め登録しておき、データ項目毎に編集条件を自動設定することによって、データ項目の特性に応じたきめこまかな編集条件の自動設定が可能となり、データ項目の編集条件を設定する時の作業量の減少による帳票作成に関する作業効率と信頼性の向上が期待できる。
【００５９】
レコード仕様が複数混在するデータファイルには、予め複数のレコード仕様に対応した出力レイアウトを登録しておき、帳票出力時、レコード毎に適切な出力レイアウトを判断し、出力レイアウトを切り替えることで、プログラム作成やプログラムテストを不要とし、帳票作成に間する作業効率と信頼性の向上が期待できる。
【００６０】
【発明の効果】
帳票の出力に必要な情報をパラメタ化し、そのパラメタを自動生成することによって、プログラム作成やプログラムテストを不要とし、帳票作成に関する作業効率と信頼性の向上が期待できる。
【００６１】
帳票の入力ファイルのレコード仕様や出力レイアウトの変更時においては、プログラム修正およびプログラムテストを必要とせず、エディタで出力レイアウトを変更することでパラメタを修正し変更に対応するため、修正・変更時の作業効率と信頼性の向上が期待できる。
【００６２】
レコード仕様書を入力して出力レイアウトを自動生成するため、表形式データベース記録形式に特定せず、表形式データベース記録形式に正規化されていない場合にも対応するため、帳票作成に関する作業効率と信頼性の向上が期待できる。また、データファイルからの入力順序に従って帳票印刷するため、データの順序性も保証できるため、帳票作成に関する信頼性の向上が期待できる。
【図面の簡単な説明】
【図１】汎用プリントパラメタ帳票出力システムの機能構成図。
【図２】レコード仕様書（旧版）を示す図。
【図３】編集条件初期情報を示す図。
【図４】レイアウト生成時の出力レイアウトを示す図。
【図５】レイアウト編集後の出力レイアウトを示す図。
【図６】レイアウト生成時の出力レイアウト情報を示す図。
【図７】レコード仕様書（旧版）に対応したデータファイルを示す図。
【図８】レコード仕様書（旧版）に対応した帳票出力結果を示す図。
【図９】レイアウト編集後の出力レイアウト情報を示す図。
【図１０】レコード仕様書（新版）を示す図。
【図１１】旧版と新版のレコード仕様書から差分取込み後の出力レイアウトを示す図。
【図１２】レイアウト生成手段108の入出力を示す図。
【図１３】レイアウト編集手段109の入出力を示す図。
【図１４】パラメタ生成手段110の入出力を示す図。
【図１５】レイアウト逆生成手段111の入出力を示す図。
【図１６】差分取り込み手段112の入出力を示す図。
【図１７】汎用プリント出力手段の入出力を示す図。
【図１８】プリントパラメタ生成部101、汎用プリント出力手段（図12〜17）の機能関連図。
【図１９】レイアウト生成の流れを表すフローチャート。
【図２０】レイアウト編集の流れを表すフローチャート。
【図２１】パラメタ生成の流れを表すフローチャート。
【図２２】汎用プリント出力の流れを表すフローチャート。
【図２３】レイアウト逆生成の流れを表すフローチャート。
【図２４】差分取り込みの流れを表すフローチャート。
【図２５】共通部のレコード仕様書を示す図。
【図２６】共通部の出力レイアウト情報を示す図。
【図２７】レコード1の可変部に対応した出力レイアウト情報を示す図。
【図２８】レコード2の可変部に対応した出力レイアウト情報を示す図。
【図２９】出力レイアウト切替を行うデータファイルを示す図。
【図３０】出力レイアウト切替を行った帳票出力結果を示す図。
【符号の説明】
101：プリントパラメタ生成部、102：汎用プリント出力手段、103：レコード仕様書ライブラリ、104：編集条件初期情報ライブラリ、105：プリントパラメタライブラリ、
106：データファイル、107：データファイルをプリントパラメタに定義した出力レイアウト情報に従って編集し打ち出した帳票、108：レコード仕様書の内容を出力レイアウト情報に変換するレイアウト生成手段、109：出力項目の位置や編集条件などを変更するレイアウト編集手段、110：出力レイアウト情報をプリントパラメタに書き出すパラメタ生成手段、
111：プリントパラメタから出力レイアウト情報を生成するレイアウト逆生成手段、
112：レコード仕様書変更時に新レコード仕様書と旧レコード仕様書の差分を抽出し出力レイアウト情報に反映する差分取り込み手段、113：出力レイアウト情報を格納する内部テーブル、114、115：プリントパラメタ生成部101および汎用プリント出力手段102に操作命令を与える端末装置。
【図１】
0004085599.tif 000002
【図２】
0004085599.tif 000003
【図３】
0004085599.tif 000004
【図４】
0004085599.tif 000005
【図５】
0004085599.tif 000006
【図６】
0004085599.tif 000007
【図７】
0004085599.tif 000008
【図８】
0004085599.tif 000009
【図９】
0004085599.tif 000010
【図１０】
0004085599.tif 000011
【図１１】
0004085599.tif 000012
【図１２】
0004085599.tif 000013
【図１３】
0004085599.tif 000014
【図１４】
0004085599.tif 000015
【図１５】
0004085599.tif 000016
【図１６】
0004085599.tif 000017
【図１７】
0004085599.tif 000018
【図１８】
0004085599.tif 000019
【図１９】
0004085599.tif 000020
【図２０】
0004085599.tif 000021
【図２１】
0004085599.tif 000022
【図２２】
0004085599.tif 000023
【図２３】
0004085599.tif 000024
【図２４】
0004085599.tif 000025
【図２５】
0004085599.tif 000026
【図２６】
0004085599.tif 000027
【図２７】
0004085599.tif 000028
【図２８】
0004085599.tif 000029
【図２９】
0004085599.tif 000030
【図３０】
0004085599.tif 000031