(57)【特許請求の範囲】
【請求項１】
コンピュータに、
定義情報を同じくする複数の印刷データのうちの少なくともいずれかに含まれる表データの、数値情報を項目値に含む項目の、項目値に対する演算処理を行い、
前記演算処理の演算結果の値に基づいて、前記演算処理を行った前記印刷データにおける前記表データの項目値の演算結果の値の有無、および該演算結果の値が印字される前記印刷データにおける位置を特定し、
前記複数の印刷データの表データから、所定の条件に基づいて抽出した部分データを集約した印刷データを生成する際に、前記部分データを集約した印刷データに含まれる項目値に対する演算処理の演算結果の値が、特定された前記位置に対応する位置に印字された印刷データを生成する、
処理を実行させることを特徴とする印刷データ生成プログラム。
【請求項２】
前記コンピュータに、
前記印刷データから、前記演算処理の処理内容を示す文字列が印字される前記印刷データにおける位置を検索する、処理を実行させ、
前記特定する処理は、
検索した前記文字列が印字される前記印刷データにおける位置と、前記演算処理の演算結果の値とに基づいて、前記印刷データにおける前記表データの項目値の演算結果の値の有無、および該演算結果の値が印字される前記印刷データにおける位置を特定することを特徴とする請求項１に記載の印刷データ生成プログラム。
【請求項３】
前記特定する処理は、
前記演算処理の演算結果の値と、前記印刷データにおける前記表データの項目値の演算結果の値との差分が所定の範囲内であれば、前記演算処理を行った前記印刷データにおける前記表データの項目値の演算結果の値が有ることを特定するとともに、該演算結果の値が印字される前記印刷データにおける位置を特定することを特徴とする請求項１または２に記載の印刷データ生成プログラム。
【請求項４】
前記演算処理を行う処理は、
前記印刷データにおける前記表データの項目のうち数値情報を項目値に含む項目が複数ある場合、数値情報を項目値に含む各項目の項目値に対する演算処理を行い、
前記特定する処理は、
さらに、前記各項目の項目値に対する前記演算処理の演算結果の値と前記印刷データにおける前記表データの項目値の演算結果の値との比較結果に基づいて、前記各項目からいずれかの項目を特定し、
前記生成する処理は、
前記複数の印刷データの表データから、前記部分データを集約した印刷データを生成する際に、前記部分データを集約した印刷データに含まれる前記いずれかの項目の項目値に対する演算処理の演算結果の値が、特定された前記位置に対応する位置に印字された印刷データを生成することを特徴とする請求項１〜３のいずれか一つに記載の印刷データ生成プログラム。
【請求項５】
定義情報を同じくする複数の印刷データのうちの少なくともいずれかに含まれる表データの、数値情報を項目値に含む項目の、項目値に対する演算処理を行い、
前記演算処理の演算結果の値に基づいて、前記演算処理を行った前記印刷データにおける前記表データの項目値の演算結果の値の有無、および該演算結果の値が印字される前記印刷データにおける位置を特定し、
前記複数の印刷データの表データから、所定の条件に基づいて抽出した部分データを集約した印刷データを生成する際に、前記部分データを集約した印刷データに含まれる項目値に対する演算処理の演算結果の値が、特定された前記位置に対応する位置に印字された印刷データを生成する、
制御部を有することを特徴とする印刷データ生成装置。
【請求項６】
コンピュータが、
定義情報を同じくする複数の印刷データのうちの少なくともいずれかに含まれる表データの、数値情報を項目値に含む項目の、項目値に対する演算処理を行い、
前記演算処理の演算結果の値に基づいて、前記演算処理を行った前記印刷データにおける前記表データの項目値の演算結果の値の有無、および該演算結果の値が印字される前記印刷データにおける位置を特定し、
前記複数の印刷データの表データから、所定の条件に基づいて抽出した部分データを集約した印刷データを生成する際に、前記部分データを集約した印刷データに含まれる項目値に対する演算処理の演算結果の値が、特定された前記位置に対応する位置に印字された印刷データを生成する、
処理を実行することを特徴とする印刷データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データ生成プログラム、印刷データ生成装置、および印刷データ生成方法に関する。
【背景技術】
【０００２】
従来、データベースから条件に合致するレコード群を表データとして抽出し、抽出した表データを含む印刷データを生成する技術がある。また、ある印刷データに含まれる表データの項目の項目値に対して、合計、平均等の演算処理を行い、演算処理の演算結果の値を、ある印刷データに含めることがある。関連する先行技術として、例えば、集計計算を実行するときに各集計表の各フィールドに対してどのような計算を実行するかを識別する集計計算要素ＩＤ（ＩＤｅｎｔｉｔｙ）とその内容を、処理ＩＤと集計ＩＤと集計フィールドＩＤに関連づけて定義する集計計算要素テーブルとを記憶するものがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３２７１３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、表データを含む複数の印刷データから所定の条件に合致するデータを集約した印刷データを生成する際、元の印刷データに項目値の演算結果の値が含まれると、集約した印刷データにおいて正確な値を出力することが難しい。
【０００５】
具体的には、例えば、データベースにアクセスせずに、複数の印刷データから集約した印刷データを生成することが考えられる。この場合、元の印刷データの印字上では項目値の演算結果の値が含まれていたとしても、そもそも、元の帳票データに印字されている値が、演算結果の値であるか明確でない場合がある。さらに、演算結果の値であることが明確であったとしても、演算結果の値が、どの項目の項目値の演算結果の値なのか明確でない場合がある。演算結果の値であるか明確でない場合、または、どの項目の項目値の演算結果の値なのか明確でない場合、集約した印刷データにおいて正確な値を出力することができない。
【０００６】
一方、複数の印刷データに含まれる表データの抽出元となるデータベースにアクセスし、データベースに演算処理を行わせることにより、集約した印刷データにおける正確な値を特定することが考えられる。しかしながら、この際、データベースに対して負荷が発生することになり、発生する負荷にデータベースが耐えられない可能性がある。また、集約した印刷データの生成要求を行った利用者の権限では、データベースにアクセスすることが許容されていない場合がある。
【０００７】
１つの側面では、本発明は、表データを含む複数の印刷データから所定の条件に合致するデータを集約した印刷データに含まれる項目値に対する演算処理の値を正確に出力できる印刷データ生成プログラム、印刷データ生成装置、および印刷データ生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、定義情報を同じくする複数の印刷データのうちの少なくともいずれかに含まれる表データの、数値情報を項目値に含む項目の、項目値に対する演算処理を行い、演算処理の演算結果の値に基づいて、演算処理を行った印刷データにおける表データの項目値の演算結果の値の有無、および該演算結果の値が印字される印刷データにおける位置を特定し、複数の印刷データの表データから、所定の条件に基づいて抽出した部分データを集約した印刷データを生成する際に、部分データを集約した印刷データに含まれる項目値に対する演算処理の演算結果の値が、特定された位置に対応する位置に印字された印刷データを生成する印刷データ生成プログラム、印刷データ生成装置、および印刷データ生成方法が提案される。
【発明の効果】
【０００９】
本発明の一側面によれば、表データを含む複数の印刷データから所定の条件に合致するデータを集約した印刷データに含まれる項目値に対する演算処理の値を正確に出力できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態にかかる印刷データ生成装置１０１の動作例を示す説明図である。
【図２】図２は、電子文書システム２００の構成図を示す説明図である。
【図３】図３は、印刷データ生成装置１０１のハードウェア構成例を示す説明図である。
【図４】図４は、印刷データ生成装置１０１の機能構成例を示す説明図である。
【図５】図５は、項目情報ファイル４１１の記憶内容の一例を示す説明図である。
【図６】図６は、検索情報ファイル４１２の記憶内容の一例を示す説明図である。
【図７】図７は、描画データ４１３の記憶内容の一例を示す説明図である。
【図８】図８は、検索属性ファイル４１４の記憶内容の一例を示す説明図である。
【図９】図９は、２次帳票生成処理の動作の一例を示す説明図（その１）である。
【図１０】図１０は、２次帳票生成処理の動作の一例を示す説明図（その２）である。
【図１１】図１１は、２次帳票生成処理の動作の一例を示す説明図（その３）である。
【図１２】図１２は、２次帳票生成処理手順の一例を示すフローチャートである。
【図１３】図１３は、合計対象項目ごとの合計値集計処理手順の一例を示すフローチャートである。
【図１４】図１４は、合計値印字位置特定処理手順の一例を示すフローチャート（その１）である。
【図１５】図１５は、合計値印字位置特定処理手順の一例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１１】
以下に図面を参照して、開示の印刷データ生成プログラム、印刷データ生成装置、および印刷データ生成方法の実施の形態を詳細に説明する。
【００１２】
図１は、本実施の形態にかかる印刷データ生成装置１０１の動作例を示す説明図である。印刷データ生成装置１０１は、表データを含む複数の印刷データから所定の条件に合致するデータを集約した印刷データを生成するコンピュータである。印刷データ生成装置１０１は、例えば、サーバである。ここで、印刷データは、表データを有しており、さらに、印刷時の文字そのもののデータや、文字の位置、大きさ、フォント名、文字間隔等の書式情報を有する。例えば、表データを含む印刷データは、表データを含む帳票を示す印刷データである。以下、表データを含む印刷データは、表データを含む帳票を示す印刷データであるとする。そして、表データを含む帳票を示す印刷データを、以下、「帳票データ」と称する。また、複数の帳票データから所定の条件に合致するデータを集約した帳票データを、「２次帳票データ」と称する。ここで、所定の条件は、印刷データ生成装置１０１の利用者が指定した条件である。
【００１３】
ここで、帳票は、金銭や物品、サービスの取引や出入りを記録した、帳簿や伝票などの定型的な書類の総称である。従って、帳票データは、金銭や物品、サービスの取引や出入りを記録した、帳簿や伝票などの定型的な書類の印刷データである。例えば、帳票データは、口座の取引内容を記録した印刷データでもよいし、ある店舗の一日の売上内容を記録した印刷データでもよい。
【００１４】
また、帳票データは、帳票データに含まれる表データの項目の項目値に対して、合計、平均等の演算処理の演算結果の値を含むことがある。例えば、帳票データが口座の取引内容を記録した印刷データである場合、帳票データは、口座の取引金額の小計値や合計値を含むことがある。項目値に対する演算処理は、１つ以上の値を集計する処理であれば、どのような処理であってもよい。例えば、項目値に対する演算処理は、項目値の合計値を算出する処理でもよいし、項目値の平均値を算出する処理でもよい。図１の例では、説明の簡略化のため、項目値に対する演算処理は、項目値の合計値を算出する処理であるとする。
【００１５】
ここで、帳票データの生成例について説明する。印刷データ生成装置１０１は、利用者が利用するクライアント端末から、例えば、利用者の口座の帳票データの生成要求を受け付ける。生成要求を受け付けた印刷データ生成装置１０１は、データベース（ＤＢ：ＤａｔａＢａｓｅ）サーバに対して、利用者の口座の帳票データを生成するために用いるデータの検索要求をＳＱＬにより依頼する。印刷データ生成装置１０１、クライアント装置、ＤＢサーバの接続関係については、図２で説明する。そして、ＤＢサーバは、検索要求に対応したデータを検索し、印刷データ生成装置１０１に検索結果となる表データを返す。印刷データ生成装置１０１は、表データから帳票データを生成し、クライアント装置に帳票データを出力する。
【００１６】
また、ここで、２次帳票データが生成される契機について説明する。例えば、印刷データ生成装置１０１のある利用者が複数の口座を有するとする。この場合、利用者自身や、利用者が有する口座の金融機関は、印刷データ生成装置１０１に対して、複数の口座の各々に対する帳票データを生成させる。さらに、利用者や金融機関は、印刷データ生成装置１０１に対して、複数の口座の各々に対する帳票データから所定の条件で検索を行わせ、条件に合致するデータを集約した２次帳票データを作成させる。そして、利用者や金融機関は、作成された２次帳票データにより、情報分析を行う。
【００１７】
ここで、２次帳票データを生成する際、元の帳票データに項目値の演算結果の値が含まれると、２次帳票データにおいて正確な値を出力することが難しい。
【００１８】
具体的には、例えば、ＤＢサーバにアクセスせずに、複数の帳票データから２次帳票データを生成することが考えられる。この場合、元の帳票データの印字上では項目値の合計値が含まれていたとしても、そもそも、元の帳票データに印字されている値が、項目値の合計値であるか明確でない場合がある。元の帳票データには、結果となる値が格納されており、どのような演算を行ったかは含まれていないためである。そして、元の帳票データに印字されている値が、項目値の合計値でない例としては、元の帳票データに印字されている値が、帳票データを生成した日付である場合がある。また、演算結果の値であることが明確であったとしても、演算結果の値が、どの項目の項目値の演算結果の値なのか明確でない場合がある。演算結果の値であるか明確でない場合、または、どの項目の項目値の演算結果の値なのか明確でない場合、集約した印刷データにおいて正確な値を出力することができない。
【００１９】
一方、ＤＢサーバにアクセスし、ＤＢサーバに演算処理を行わせることにより、２次帳票データにおける正確な値を特定することが考えられる。しかしながら、この際、ＤＢサーバに対して負荷が発生することになり、発生する負荷にＤＢサーバが耐えられない可能性がある。この場合、ＤＢサーバに演算処理を行わせるという形態を適用することは現実的にはできない。また、ＤＢサーバにＳＱＬにより問い合わせるには、元の帳票データの項目が、ＤＢ上のどのレコードに属しているかといった、ＤＢ構造を把握することになり、ＤＢサーバに問い合わせることは困難である。また、集約した印刷データの生成要求を行った利用者の権限では、ＤＢサーバにアクセスすることが許容されていない場合がある。
【００２０】
従って、２次帳票データにおける項目値の合計値を得ようとするならば、利用者は、２次帳票データの項目値を表計算ソフトウェア等にコピーして、表計算ソフトウェア等に合計値を算出させることになり、利用者の手間がかかる。
【００２１】
そこで、本実施の形態では、複数の帳票データのある帳票データの項目の合計値と同じ値がある帳票データにあれば、ある帳票データにおける合計値の位置に複数の帳票データを集約した項目の合計値を印字した２次帳票データを生成する方法について説明する。
【００２２】
図１を用いて、印刷データ生成装置１０１の動作を説明する。図１に示す印刷データ生成装置１０１は、複数の帳票データ１１１を生成した状態である。ここで、複数の帳票データ１１１は、定義情報１１２を同じくするデータである。定義情報１１２は、帳票データ１１１のフォーマットを定義する情報である。
【００２３】
具体的には、定義情報１１２は、図１に示す、複数の帳票データ１１１のいずれかとなる帳票データ１１１−１における「売上伝票」、「売上合計」を示すそれぞれの文字のデータや、それぞれの位置、大きさ、フォント名、文字間隔を含む。さらに、定義情報１１２は、帳票データ１１１−１における「売上合計」の下に、数値情報が印字される項目があることを示す情報を含む。なお、帳票データ１１１−１に印字されている「￥２０２，０００」は定義情報１１２に含まれず、複数の帳票データ１１１のそれぞれで異なる値である。
【００２４】
さらに、定義情報１１２は、帳票データ１１１−１における表データ１１３−１の項目名「商品名」や、「金額」を示すそれぞれの文字のデータや、それぞれの位置、大きさ、フォント名、文字間隔を含む。さらに、定義情報１１２は、項目名「商品名」の項目値がテキスト情報であり、項目名「金額」の項目値が数値情報であることを示す情報を含む。なお、表データ１１３−１の項目値となる「カラーテレビ」、「￥１２０，０００」、「カラオケセット」、「￥８２，０００」については、定義情報１１２に含まれず、複数の帳票データ１１１のそれぞれで異なる値である。
【００２５】
印刷データ生成装置１０１は、複数の帳票データ１１１のうちの少なくともいずれかの帳票データ１１１−１に含まれる表データ１１３−１の数値情報を項目値に含む項目の項目値に対する合計値を算出する。ここで、算出対象とする帳票データは、１つでもよいし、複数でもよい。複数の帳票データ１１１に対して算出する例については、図４で説明する。
【００２６】
例えば、図１の（１）で示すように、印刷データ生成装置１０１は、数値情報の項目として項目名「金額」の項目値に対する合計値を算出する。具体的には、印刷データ生成装置１０１は、項目名「金額」の項目値に対する合計値を、１２００００＋８２０００＝２０２０００と算出する。
【００２７】
次に、印刷データ生成装置１０１は、算出した合計値に基づき、帳票データ１１１−１における表データ１１３−１の項目値に対する合計値の有無、および表データ１１３−１の項目値に対する合計値が印字される帳票データ１１１−１における位置を特定する。以下、表データ１１３−１の項目値に対する合計値が印字される帳票データ１１１−１における位置を、単に、「合計値印字位置」と称する。具体的には、印刷データ生成装置１０１は、算出した合計値が、帳票データ１１１−１に含まれているか否かを判断する。算出した合計値が帳票データ１１１−１に含まれていれば、印刷データ生成装置１０１は、帳票データ１１１−１における表データ１１３−１の項目値に対する合計値が有ると特定するとともに、合計値印字位置を特定する。また、算出した合計値が帳票データ１１１−１に含まれていなければ、印刷データ生成装置１０１は、帳票データ１１１−１における表データ１１３−１の項目値に対する和が無いと特定する。
【００２８】
例えば、図１の（２）で示すように、印刷データ生成装置１０１は、算出した「２０２０００」が、帳票データ１１１−１に含まれていることを検出する。従って、印刷データ生成装置１０１は、帳票データ１１１−１における表データ１１３−１の項目値に対する合計値が有ると特定するとともに、合計値印字位置を特定する。ここで、特定する合計値印字位置について、印刷データ生成装置１０１は、合計値印字位置として、項目値の合計値が印字される領域の左上の座標位置を特定してもよいし、項目値の合計値が印字される領域の中央の座標位置を特定してもよい。
【００２９】
そして、印刷データ生成装置１０１は、複数の帳票データ１１１の表データ１１３から、所定の条件に基づいて抽出した部分データを集約した２次帳票データ１２１を生成する。ここで、部分データは、表データ１１３のレコードとなる。また、部分データは、表データ１１３が有する全ての項目の項目値を有するレコードでもよいし、一部の項目の項目値を有するレコードでもよい。また、印刷データ生成装置１０１は、定義情報１１２に従って２次帳票データ１２１を生成する。なお、印刷データ生成装置１０１は、定義情報１１２に基づいた定義情報に従って２次帳票データ１２１を生成してもよい。
【００３０】
例えば、図１の（３）で示すように、印刷データ生成装置１０１は、複数の帳票データ１１１の表データ１１３から、所定の条件として「カラーテレビ」を含むレコードを抽出し、抽出したレコードを集約した２次帳票データ１２１を生成する。
【００３１】
ここで、２次帳票データ１２１を生成する際に、印刷データ生成装置１０１は、２次帳票データ１２１に含まれる項目値の合計値が、特定した帳票データ１１１−１における位置に対応する位置に印字されるようにする。具体的には、まず、印刷データ生成装置１０１は、図１の（３−１）で示すように、項目名「金額」の項目値に対する合計値を算出する。具体的には、印刷データ生成装置１０１は、項目名「金額」の項目値に対する合計値を、１２００００＋７００００＝１９００００と算出する。そして、印刷データ生成装置１０１は、図１の（３−２）で示すように、算出した合計値「１９０，０００」を、２次帳票データ１２１における、特定した合計値印字位置と同じ位置に設定する。
【００３２】
以上により、印刷データ生成装置１０１は、２次帳票データ１２１において項目値の合計値を正確に出力することができる。次に、印刷データ生成装置１０１を含めた電子文書システムについて、図２を用いて説明する。
【００３３】
図２は、電子文書システム２００の構成図を示す説明図である。電子文書システム２００は、帳票データ１１１を電子登録するシステムである。電子文書システム２００は、印刷データ生成装置１０１と、ＤＢサーバ２０１と、クライアント装置２０２とを有する。印刷データ生成装置１０１とＤＢサーバ２０１とは、ネットワーク２０３により接続される。また、印刷データ生成装置１０１とクライアント装置２０２とは、ネットワーク２０４により接続される。ここで、ネットワーク２０３、２０４は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。ＤＢサーバ２０１は、ＤＢ２１１に接続する。
【００３４】
クライアント装置２０２は、電子文書システム２００を利用する利用者によって操作されるコンピュータである。ＤＢサーバ２０１は、印刷データ生成装置１０１からの検索要求に対応したデータをＤＢ２１１から検索し、印刷データ生成装置１０１に検索結果となる表データを返す。
【００３５】
（印刷データ生成装置１０１のハードウェア構成例）
図３は、印刷データ生成装置１０１のハードウェア構成例を示す説明図である。図３において、印刷データ生成装置１０１は、ＣＰＵ３０１と、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、を含む。また、印刷データ生成装置１０１は、ディスクドライブ３０４およびディスク３０５と、通信インターフェース３０６と、を含む。また、ＣＰＵ３０１〜ディスクドライブ３０４、通信インターフェース３０６はバス３０７によってそれぞれ接続される。
【００３６】
ＣＰＵ３０１は、印刷データ生成装置１０１の全体の制御を司る演算処理装置である。また、印刷データ生成装置１０１は、複数のＣＰＵを有してもよい。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。
【００３７】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ３０４には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ３０４が磁気ディスクドライブである場合、ディスク３０５には、磁気ディスクを採用することができる。また、ディスクドライブ３０４が光ディスクドライブである場合、ディスク３０５には、光ディスクを採用することができる。また、ディスクドライブ３０４がソリッドステートドライブである場合、ディスク３０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００３８】
通信インターフェース３０６は、ネットワーク２０３、２０４と内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース３０６は、通信回線を通じてネットワーク２０３、２０４を介して他の装置に接続される。通信インターフェース３０６には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００３９】
また、電子文書システム２００の管理者が、印刷データ生成装置１０１を直接操作する場合、印刷データ生成装置１０１は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。また、図示していないが、ＤＢサーバ２０１も、印刷データ生成装置１０１と同様のハードウェアを有する。また、図示していないが、クライアント装置２０２も、印刷データ生成装置１０１が有するハードウェアと、ディスプレイ、キーボード、マウスといったハードウェアとを有する。
【００４０】
（印刷データ生成装置１０１の機能構成例）
図４は、印刷データ生成装置１０１の機能構成例を示す説明図である。印刷データ生成装置１０１は、制御部４００を有する。制御部４００は、演算処理実行部４０１と、検索部４０２と、特定部４０３と、生成部４０４と、を含む。制御部４００は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、ディスク３０５などである。また、各部の処理結果は、ＣＰＵ３０１のレジスタや、ＣＰＵ３０１のキャッシュメモリ等に格納される。
【００４１】
また、印刷データ生成装置１０１は、項目情報ファイル４１１と、検索情報ファイル４１２と、描画データ４１３と、検索属性ファイル４１４とにアクセス可能である。項目情報ファイル４１１〜検索属性ファイル４１４は、ＲＡＭ３０３、ディスク３０５といった記憶装置に格納される。
【００４２】
項目情報ファイル４１１は、帳票データ１１１に含まれる表データ１１３の項目の種別が記憶されたファイルである。項目情報ファイル４１１の記憶内容の一例については、図５で示す。検索情報ファイル４１２は、帳票データ１１１に含まれる表データ１１３の実際の値が記憶されたファイルである。検索情報ファイル４１２の記憶内容の一例については、図６で示す。ここで、ＤＢ２０１は、帳票データ１１１の表データ１１３を生成した際に、項目情報ファイル４１１と検索情報ファイル４１２とを出力する。具体的には、複数の帳票データ１１１のうちのいずれかとして、ＤＢ２０１は、帳票データ１１１−１の表データ１１３を生成した際に、併せて、項目情報ファイル４１１と検索情報ファイル４１２とを出力する。
【００４３】
描画データ４１３は、帳票データ１１１を印字する際に描画するデータである。描画データ４１３の記憶内容の一例については、図７で説明する。検索属性ファイル４１４は、２次帳票データを生成する際に、利用者の操作によってクライアント装置２０２から送信されるファイルである。検索属性ファイル４１４の記憶内容の一例については、図８で説明する。
【００４４】
演算処理実行部４０１は、定義情報１１２を同じくする複数の帳票データ１１１のうちの少なくともいずれかに含まれる表データ１１３の、数値情報を項目値に含む項目の、項目値に対する演算処理を行う。図１で説明したように、項目値に対する演算処理は、１つ以上の値を集計する処理であれば、どのような処理でもよい。項目値に対する演算処理は、図１に挙げた以外にも、例えば、項目値の分散値を算出する処理でもよいし、項目値の標準偏差を算出する処理でもよい。以下の説明では、項目値に対する演算処理は、項目値の合計値を算出する処理であるとする。
【００４５】
検索部４０２は、帳票データ１１１から、項目値の合計値を算出する処理の処理内容を示す文字列が印字される帳票データ１１１における位置を検索する。具体的には、例えば、項目値の合計値を算出する処理の処理内容を示す文字列として、検索属性ファイル４１４により「売上合計」が指定されているとする。この場合、検索部４０２は、帳票データ１１１から、「売上合計」が印字される帳票データ１１１における位置を検索する。また、例えば、演算処理が、項目値の平均値を算出する処理であれば、項目値の平均値を算出する処理の処理内容を示す文字列は、「平均」が指定される。
【００４６】
特定部４０３は、演算処理実行部４０１による項目値の合計値を算出する処理の結果の値に基づいて、項目値の合計値を算出する処理を行った帳票データ１１１における表データ１１３の項目値の合計値の値の有無、および合計値印字位置を特定する。
【００４７】
また、特定部４０３は、検索部４０２が検索した位置と、演算処理実行部４０１による項目値の合計値を算出する処理の結果の値とに基づいて、帳票データ１１１における表データ１１３の項目値の合計値の値の有無、および合計値印字位置を特定してもよい。例えば、特定部４０３は、検索部４０２が検索した位置の周囲にある数値項目の値と、演算処理実行部４０１による結果の値とが一致すれば、帳票データ１１１における表データ１１３の項目値の合計値の値が有ると特定する。
【００４８】
また、検索属性ファイル４１４により「下方向」が指定されているとする。この場合、特定部４０３は、検索部４０２が検索した位置の下方向にある数値項目の値と、演算処理実行部４０１による結果の値とが一致すれば、帳票データ１１１における表データ１１３の項目値の合計値の値が有ると特定する。
【００４９】
また、演算処理実行部４０１による項目値の合計値を算出する処理の結果の値と、帳票データ１１１における表データ１１３の項目値の合計値との差分が所定の範囲内であるとする。所定の範囲は、印刷データ生成装置１０１が予め決めた数値の範囲でもよいし、検索属性ファイル４１４により指定された数値の範囲でもよい。このとき、特定部４０３は、帳票データ１１１における表データ１１３の項目値の合計値の値が有ることを特定するとともに、合計値印字位置を特定してもよい。
【００５０】
所定の範囲を設定する理由としては、帳票データ１１１における表データ１１３の項目値の合計値が、真に項目値の合計値であるとしても、帳票データ１１１における表データ１１３の項目値の合計値と算出した項目値の合計値とが異なる場合があるためである。具体的には、例えば、帳票データ１１１に印字されている項目値が、切り捨て、四捨五入等により丸められた値であり、帳票データ１１１における表データ１１３の項目値の合計値が、丸められる前の値で算出されたものである場合である。
【００５１】
生成部４０４は、２次帳票データ１２１を生成する際に、２次帳票データ１２１に含まれる項目値の合計値を算出する処理の結果の値が、特定部４０３が特定した位置に対応する位置に印字された帳票データ１１１を生成する。例えば、定義情報１１２に従って２次帳票データ１２１を生成するものとする。この場合、生成部４０４は、２次帳票データ１２１に含まれる項目値の合計値を算出する処理の結果の値が、特定部４０３が特定した合計値印字位置と同じ位置に設定されるように、２次帳票データ１２１を生成する。
【００５２】
また、生成部４０４が、定義情報１１２に基づいた定義情報に従って２次帳票データ１２１を生成するものとする。定義情報１１２に基づいた定義情報は、具体的には、例えば、定義情報１１２に含まれる文字、図等が下方向に所定画素数移動しており、かつ、２次帳票データ１２１の上部に、２次帳票データ１２１であることを示す文字列が付与されたものであるとする。この場合、２次帳票データ１２１に含まれる項目値の合計値を算出する処理の結果の値が、特定部４０３が特定した合計値印字位置より所定画素数分下となる位置に設定されるように、２次帳票データ１２１を生成する。
【００５３】
また、帳票データ１１１における表データ１１３の項目のうち数値情報を項目値に含む項目が複数ある場合がある。この場合、演算処理実行部４０１は、帳票データ１１１における表データ１１３の項目のうち数値情報を項目値に含む項目が複数ある場合、数値情報を項目値に含む各項目の項目値の合計値を算出する処理を行う。例えば、表データ１１３に、数値情報を項目値に含む項目として、項目名「単価」、「金額」があるとする。この場合、演算処理実行部４０１は、表データ１１３の項目名「単価」、「金額」のそれぞれに対して、項目値の合計値を算出する。
【００５４】
また、特定部４０３は、さらに、演算処理実行部４０１による各項目の項目値に対する項目値の合計値を算出する処理の結果の値と帳票データ１１１における表データ１１３の項目値の演算結果の値との比較結果に基づいて、各項目からいずれかの項目を特定する。例えば、演算処理実行部４０１が、項目名「単価」、「金額」のそれぞれに対して、項目値の合計値を算出したとする。この場合、特定部４０３は、例えば、項目名「単価」、「金額」のそれぞれに対する項目値の合計値と、帳票データ１１１における表データ１１３の項目値の演算結果の値とを比較して、より値が近い項目をいずれかの項目として特定する。
【００５５】
ここで、値が近い項目が複数存在する場合も考えられる。例えば、表データ１１３に、数値情報を項目値に含む項目として、項目名「単価」、「数量」、「金額」があるとする。そして、項目名「金額」の項目値は、項目名「単価」の項目値に、項目名「数量」の項目値を掛けた値であるとする。このとき、ある帳票データ１１１において、項目名「数量」の項目値が全て１である場合、項目名「単価」の項目値の合計値と、項目名「金額」の項目値の合計値とは一致することになる。このように、合計値が近い項目が複数存在する場合、演算処理実行部４０１は、項目名「数量」の項目値が全て１となった帳票データ１１１とは別の帳票データ１１１に対して、項目値の合計値を算出してもよい。そして、特定部４０３は、別の帳票データ１１１に対して算出した各項目の項目値の合計値と、別の帳票データ１１１における表データ１１３の項目値の演算結果の値との比較結果に基づいて、各項目からいずれかの項目を特定する。
【００５６】
また、生成部４０４は、２次帳票データ１２１を生成する際に、２次帳票データ１２１に含まれるいずれかの項目の項目値に対する項目値の合計値を算出する処理の値が、特定部４０３が特定した位置に対応する位置に印字された帳票データ１２１を生成する。
【００５７】
図５は、項目情報ファイル４１１の記憶内容の一例を示す説明図である。図５に示す項目情報ファイル４１１は、行５０１−１〜６を有する。
【００５８】
項目情報ファイル４１１は、ＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）形式として、１つの行に、定義体番号と、定義体名と、項目番号と、項目名と、項目種別（数値）と、項目詳細（数値）という情報を有する。
【００５９】
定義体番号は、定義体を一意に識別する番号である。また、定義体番号は、定義体名と１対１で対応する番号であり、１以上の値となる。定義体名は、項目が定義されている定義体名である。項目番号は、項目の番号である。また、項目番号は、帳票の項目を一意に識別する値である。また、項目番号は、項目名と１対１で対応する番号であり、１以上の値となる。項目名は、帳票の項目の名称である。項目種別（数値）は、帳票の項目の種別を示す識別子である。具体的には、例えば、項目種別（数値）は、帳票の項目が数値項目であることを示す識別子「１」か、帳票の項目がテキスト項目であることを示す識別子「２」か、帳票の項目が矩形テキスト項目であることを示す識別子「３」かのいずれかとなる。
【００６０】
項目詳細（数値）は、帳票の項目の詳細を示す識別子である。項目詳細（数値）は、項目種別（数値）に応じて示す意味が変わる。具体的には、例えば、項目種別（数値）が数値項目であることを示す識別子「１」である場合には、項目詳細（数値）は、次に示す４つの識別子のいずれかとなる。１つ目が、帳票の項目に入力される値が数値であることを示す識別子「０」である。２つ目が、帳票の項目に入力される値が通貨であることを示す識別子「１」である。３つ目が、帳票の項目に入力される値が区切りであることを示す識別子「２」である。４つ目が、帳票の項目に入力される値が日付であることを示す識別子「３」である。
【００６１】
また、例えば、項目種別（数値）がテキスト項目であることを示す識別子「２」である場合には、項目詳細（数値）は、次に示す３つの識別子のいずれかとなる。１つ目が、帳票の項目に入力されるテキストが標準であることを示す識別子「０」である。２つ目が、帳票の項目に入力されるテキストがハイパーリンクであることを示す識別子「１」である。３つ目が、帳票の項目に入力されるテキストが郵便番号であることを示す識別子「２」である。
【００６２】
また、例えば、項目種別（数値）が矩形テキスト項目であることを示す識別子「３」である場合には、項目詳細（数値）は、固定で、識別子「０」となる。
【００６３】
図６は、検索情報ファイル４１２の記憶内容の一例を示す説明図である。図６に示す検索情報ファイル４１２は、行６０１−１〜８を有する。
【００６４】
検索情報ファイル４１２は、ＣＳＶ形式として、１つの行に、３つの情報を有する。１つ目の情報は、帳票データの項目が出力されたページ数である。２つ目の情報は、ｉｘ＝ファイル番号−インデックスというｋｅｙ＝ｖａｌｕｅ形式で表現される情報である。ここで、ファイル番号は、トレースインデックスファイルのファイル番号である。また、インデックスは、トレースインデックスファイルのインデックスである。３つ目の情報は、項目番号＝データという形式で表現される情報である。ここで、項目番号は、帳票データの項目の番号である。また、データは、等号の左辺で示された項目番号の項目種別がテキスト項目または矩形テキスト項目であれば、実際に出力されたデータである。また、等号の左辺で示された項目番号の項目種別が数字項目であれば、データは、区切り、通貨記号等がない、入力されたデータである。また、等号の左辺で示された項目番号の項目種別がテキスト項目または矩形テキスト項目である場合に、データは、「”」で囲まれた形式となる。また、データに「”」が含まれる場合には、データに含まれる「”」は、「””」に変換される。
【００６５】
図７は、描画データ４１３の記憶内容の一例を示す説明図である。図７に示す描画データ４１３は、レコード７０１−１、２を有する。
【００６６】
描画データ４１３は、開始Ｘ座標と、開始Ｙ座標と、文字属性と、数値／文字データというフィールドを含む。開始Ｘ座標フィールドには、数値／文字データが印字される帳票データにおける開始位置のＸ座標が格納される。開始Ｙ座標フィールドには、数値／文字データが印字される帳票データにおける開始位置のＹ座標が格納される。文字属性フィールドには、数値／文字データの文字の大きさ、フォント名、文字間隔といった書式情報が格納される。数値／文字データフィールドには、描画する実際の数値や文字そのものの情報が格納される。
【００６７】
図８は、検索属性ファイル４１４の記憶内容の一例を示す説明図である。検索属性ファイル４１４は、ＳｅａｒｃｈＫｅｙ、Ｋｅｙ、Ｄｉｒｅｃｔｉｏｎ、Ｍａｒｇｉｎという４つのキーワードを有し得る。検索属性ファイル４１４は、ＳｅａｒｃｈＫｅｙ以外の３つのキーワードについては有してなくともよい。
【００６８】
ＳｅａｒｃｈＫｅｙキーワードは、帳票データ１１１の表データからレコードを抽出する条件となる文字列を指定するキーワードである。Ｋｅｙキーワードは、項目値の合計値を算出する処理の処理内容を示す文字列を指定するキーワードである。ここで、ＳｅａｒｃｈＫｅｙキーワードとＫｅｙキーワードとについては、任意の長さの任意の文字を示す「＊」といったワイルドカードや、文字列の集合を一つの文字列で表現する方法の１つである正規表現を用いてもよい。
【００６９】
Ｄｉｒｅｃｔｉｏｎキーワードは、Ｋｅｙキーワードにより見つかった文字列が印字される帳票データ１１１における位置から、合計値印字位置を探索する方向を指定するキーワードである。Ｍａｒｇｉｎキーワードは、帳票データ１１１に印字されている値と、印刷データ生成装置１０１が算出した合計値とが一致したと見做す範囲を指定するキーワードである。
【００７０】
例えば、図８に示す検索属性ファイル４１４は、ＳｅａｒｃｈＫｅｙキーワードにより、帳票データ１１１の表データから「カラーテレビ」という文字列を含むレコードを２次帳票として生成することを示す。さらに、図８に示す検索属性ファイル４１４は、演算処理の処理内容を示す文字列が「売上合計」であることを示す。さらに、図８に示す検索属性ファイル４１４は、「売上合計」が印字される帳票データ１１１における位置から下方向に、合計値印字位置を探索することを示す。さらに、図８に示す検索属性ファイル４１４は、帳票データ１１１に印字されている値と、印刷データ生成装置１０１が算出した項目の項目値の合計値との差分が１０％以内であれば、一致したと見做し、印刷データ生成装置１０１が項目を特定することを示す。
【００７１】
次に、２次帳票データを生成する２次帳票生成処理の動作を、図９〜図１１を用いて説明する。ここで、図９〜図１１で示す例では、帳票データ１１１に合計値があるものとする。また、図９〜図１１で示す例では、クライアント装置２０２から、図８に示す検索属性ファイル４１４が送信されたものとする。
【００７２】
図９は、２次帳票生成処理の動作の一例を示す説明図（その１）である。図９に示す状態は、ＤＢ２０１が、複数の帳票データ１１１の表データ１１３を出力し、印刷データ生成装置１０１が複数の帳票データ１１１を出力した状態である。ここで、図４で説明したように、ＤＢ２０１は、帳票データ１１１の表データ１１３を生成した際に、項目情報ファイル４１１と検索情報ファイル４１２とを出力する。具体的には、例えば、行６０１−１の「０１」は、帳票データ１１１−１のＮｏ項目のデータである「０１」に相当する。
【００７３】
印刷データ生成装置１０１は、帳票データ１１１−１から、合計対象項目ごとに、合計値を集計する。図９の例では、印刷データ生成装置１０１は、図９の（１）で示すように、合計対象項目として、数値項目であるＮｏ、商品コード、数量、単価、金額という項目を取り出して、各項目の項目値の合計値を算出する。印刷データ生成装置１０１は、算出した合計値を項目に対応付けて、一時的に用意した合計値群テーブル９０１に書き込む。
【００７４】
ここで、帳票データ１１１−１から数値項目である項目を取り出して、各項目の項目値の合計値を算出する方法として、印刷データ生成装置１０１は、項目情報ファイル４１１−１と検索情報ファイル４１２−１とを用いる。具体的には、印刷データ生成装置１０１は、項目情報ファイル４１１−１を参照して、項目種別が数字項目であり、項目詳細が数値である項目を取り出す。さらに、印刷データ生成装置１０１は、項目種別が数字項目であり、項目詳細が通貨、区切り、日付である項目を取り出してもよい。図９の例では、印刷データ生成装置１０１は、行５０１−１、２、４〜６を取り出す。
【００７５】
そして、印刷データ生成装置１０１は、検索情報ファイル４１２−１を参照して、取り出した項目の項目値を取り出し、取り出した項目値の合計値を算出する。図９の例では、印刷データ生成装置１０１は、行５０１−１に対応する行６０１−１、７、…を参照して、「０１」、「０２」、…を取り出し、取り出した「０１」、「０２」、…の合計値「２１」を算出する。同様に、印刷データ生成装置１０１は、行５０１−２、４〜６についても同様に、描画データ４１３から対応する行を取り出し、取り出した項目値の合計値を算出する。ここで、項目詳細が通貨、区切り、日付である項目の項目値の合計値を算出する場合、印刷データ生成装置１０１は、通貨、区切り、日付を数値に変換して合計値を算出してもよいし、項目値をそのまま数値と見做して算出してもよい。
【００７６】
図９の（１）で示す処理が完了した結果、合計値群テーブル９０１は、以下の通りとなる。
【００７７】
項目名「Ｎｏ」に対応付けた「２１」
項目名「商品コード」に対応付けた「２０４」
項目名「数量」に対応付けた「１９」
項目名「単価」に対応付けた「６３５０００」
項目名「金額」に対応付けた「１７５８０００」
【００７８】
図１０は、２次帳票生成処理の動作の一例を示す説明図（その２）である。図１０に示す状態は、図９の（１）で示す処理が完了した状態である。印刷データ生成装置１０１は、合計値印字位置を検索する処理として、合計の処理内容を示す文字列が印字される帳票データ１１１−１における位置を特定する。図１０の例では、印刷データ生成装置１０１は、図１０の（１）で示すように、検索属性ファイル４１４のＫｅｙキーワードで指定された“売上合計”が印字される帳票データ１１１−１における位置を特定する。より具体的には、印刷データ生成装置１０１は、描画データ４１３から、データが“売上合計”となるレコードを探索し、見つかったレコードの開始Ｘ座標と開始Ｙ座標とを、“売上合計”が印字される帳票データ１１１−１における位置として特定する。
【００７９】
次に、印刷データ生成装置１０１は、合計値群テーブル９０１と、合計の処理内容を示す文字列が印字される帳票データ１１１−１における位置とに基づいて、帳票データ１１１における合計の値の有無と、合計の値が印字される位置とを特定する。図１０の例では、検索属性ファイル４１４のＤｉｒｅｃｔｉｏｎキーワードとして“下方向”が指定されている。従って、印刷データ生成装置１０１は、図１０の（２）で示すように、“売上合計”が印字される帳票データ１１１−１における位置の下方向にある数値描画データを探索する。より具体的には、印刷データ生成装置１０１は、描画データ４１３を参照して、“売上合計”が印字される帳票データ１１１−１における位置の下方向にある数値描画データを探索する。図１０の例では、印刷データ生成装置１０１は、「￥１，７５８，０００」を見つける。
【００８０】
そして、印刷データ生成装置１０１は、図１０の（３）で示すように、合計値群テーブル９０１と、「￥１，７５８，０００」とを比較することにより、帳票データ１１１−１における合計の値の有無と、合計の値が印字される位置を特定する。具体的には、印刷データ生成装置１０１は、合計値群テーブル９０１の各合計値と「￥１，７５８，０００」とを比較する。そして、一致した合計値があれば、印刷データ生成装置１０１は、帳票データ１１１において合計の値が有ると特定するとともに、「￥１，７５８，０００」の位置を、合計の値が印字される位置として特定する。一方、一致した合計値がなければ、印刷データ生成装置１０１は、帳票データ１１１において合計の値が無いと特定する。
【００８１】
さらに、図１０の例では、検索属性ファイル４１４のＭａｒｇｉｎキーワードとして１０％が指定されている。従って、印刷データ生成装置１０１は、合計値群テーブル９０１の各合計値のうち、「￥１，７５８，０００」との差分が１０％以内となる合計値があれば、帳票データ１１１において合計の値が有ると特定する。
【００８２】
図１０の例では、合計値群テーブル９０１のうち、項目名「金額」に対応する「１７５８０００」が、「￥１，７５８，０００」と一致する。従って、印刷データ生成装置１０１は、帳票データ１１１において合計の値が有ると特定するとともに、「￥１，７５８，０００」の位置を、合計の値が印字される位置として特定する。さらに、印刷データ生成装置１０１は、図１０の（４）で示すように、合計値群テーブル９０１のうち、一致した項目名「金額」を特定する。
【００８３】
図１１は、２次帳票生成処理の動作の一例を示す説明図（その３）である。図１１に示す状態は、ＳｅａｒｃｈＫｅｙキーワードにより、帳票データ１１１の表データから「カラーテレビ」という文字列を含むレコードを２次帳票データ１２１として生成中であり、かつ、図１０の（４）で示す処理が完了した状態である。
【００８４】
印刷データ生成装置１０１は、図１１の（１）で示すように、２次帳票データ１２１の表データから、特定した項目名「金額」の項目値を取り出し、合計値を算出する。具体的には、印刷データ生成装置１０１は、項目名「金額」の項目値を取り出し、合計値を６９００００＋６６００００＋…＋４９００００＝２４８２０００というように合計値を算出する。
【００８５】
そして、印刷データ生成装置１０１は、図１１の（２）で示すように、算出した合計値を、図１０の（１）で特定した位置に対応する位置に印字されるように２次帳票データ１２１を設定する。具体的には、印刷データ生成装置１０１は、２次帳票データ１２１の描画データ４１３から、特定した位置に一致するレコードを検索し、見つかったレコードの数値／文字データフィールドに、算出した合計値を格納する。算出した合計値を格納することにより、印刷データ生成装置１０１は、２次帳票データ１２１の生成を完了する。
【００８６】
次に、図１２〜図１５を用いて、印刷データ生成装置１０１が行う２次帳票生成処理のフローチャートを示す。
【００８７】
図１２は、２次帳票生成処理手順の一例を示すフローチャートである。印刷データ生成装置１０１は、複数の帳票データ１１１から、ＳｅａｒｃｈＫｅｙキーワードが示す条件に一致するレコードを抽出する（ステップＳ１２０１）。次に、印刷データ生成装置１０１は、合計対象項目ごとの合計値集計処理を実行する（ステップＳ１２０２）。合計対象項目ごとの合計値集計処理については、図１３で説明する。そして、印刷データ生成装置１０１は、合計値印字位置特定処理を実行する（ステップＳ１２０３）。合計値印字位置特定処理は、図１４と図１５とで説明する。
【００８８】
次に、印刷データ生成装置１０１は、抽出したレコードを集約した２次帳票データ１２１を生成する（ステップＳ１２０４）。そして、印刷データ生成装置１０１は、２次帳票データ１２１内の記憶した位置座標に、抽出したレコードの合計値を設定する（ステップＳ１２０５）。ステップＳ１２０５の処理終了後、印刷データ生成装置１０１は、２次帳票生成処理を終了する。２次帳票生成処理を実行することにより、印刷データ生成装置１０１は、合計値が正確な値となる２次帳票データ１２１を生成することができる。
【００８９】
図１３は、合計対象項目ごとの合計値集計処理手順の一例を示すフローチャートである。印刷データ生成装置１０１は、検索情報ファイル４１２と項目情報ファイル４１１とを読み込む（ステップＳ１３０１）。次に、印刷データ生成装置１０１は、項目情報ファイル４１１内に読み込む数値項目がなくなったか否かを判断する（ステップＳ１３０２）。項目情報ファイル４１１内に読み込む数値項目がなくなった場合（ステップＳ１３０２：Ｙｅｓ）、印刷データ生成装置１０１は、合計対象項目ごとの合計値集計処理を終了する。
【００９０】
一方、項目情報ファイル４１１内に読み込む数値項目がある場合（ステップＳ１３０２：Ｎｏ）、印刷データ生成装置１０１は、項目情報ファイル４１１の数値項目の項目番号を取り出す（ステップＳ１３０３）。次に、印刷データ生成装置１０１は、検索情報ファイル４１２内に読み込む項目番号の値がなくなったか否かを判断する（ステップＳ１３０４）。検索情報ファイル４１２内に読み込む項目番号の値がある場合（ステップＳ１３０４：Ｎｏ）、印刷データ生成装置１０１は、検索情報ファイル４１２内の同一項目名の値を取り出す（ステップＳ１３０５）。次に、印刷データ生成装置１０１は、取り出した値を加算する（ステップＳ１３０６）。そして、印刷データ生成装置１０１は、ステップＳ１３０４の処理に移行する。
【００９１】
一方、検索情報ファイル４１２内に読み込む項目番号の値がなくなった場合（ステップＳ１３０４：Ｙｅｓ）、印刷データ生成装置１０１は、加算結果を合計値として合計値群テーブル９０１に書き込む（ステップＳ１３０７）。そして、印刷データ生成装置１０１は、ステップＳ１３０２の処理に移行する。
【００９２】
図１４は、合計値印字位置特定処理手順の一例を示すフローチャート（その１）である。また、図１５は、合計値印字位置特定処理手順の一例を示すフローチャート（その２）である。
【００９３】
印刷データ生成装置１０１は、検索情報ファイル４１２を読み込む（ステップＳ１４０１）。次に、印刷データ生成装置１０１は、検索属性ファイル４１４にＫｅｙキーワードがあるか否かを判断する（ステップＳ１４０２）。一方、Ｋｅｙキーワードがない場合（ステップＳ１４０２：Ｎｏ）、印刷データ生成装置１０１は、探索キーワードを「＊計」に設定する（ステップＳ１４０３）。一方、Ｋｅｙキーワードがある場合（ステップＳ１４０２：Ｙｅｓ）、印刷データ生成装置１０１は、探索キーワードをＫｅｙキーワード指定値に設定する（ステップＳ１４０４）。
【００９４】
ステップＳ１４０３、またはステップＳ１４０４の処理終了後、印刷データ生成装置１０１は、Ｄｉｒｅｃｔｉｏｎキーワードがあるか否かを判断する（ステップＳ１４０５）。Ｄｉｒｅｃｔｉｏｎキーワードがない場合（ステップＳ１４０５：Ｎｏ）、印刷データ生成装置１０１は、探索方向を「下方向」に設定する（ステップＳ１４０６）。一方、Ｄｉｒｅｃｔｉｏｎキーワードがある場合（ステップＳ１４０５：Ｙｅｓ）、印刷データ生成装置１０１は、探索方向をＤｉｒｅｃｔｉｏｎキーワード指定値に設定する（ステップＳ１４０７）。
【００９５】
ステップＳ１４０６、またはステップＳ１４０７の処理終了後、印刷データ生成装置１０１は、Ｍａｒｇｉｎキーワードがあるか否かを判断する（ステップＳ１４０８）。Ｍａｒｇｉｎキーワードがない場合（ステップＳ１４０８：Ｎｏ）、印刷データ生成装置１０１は、誤差を±２０％に設定する（ステップＳ１４０９）。一方、Ｍａｒｇｉｎキーワードがある場合（ステップＳ１４０８：Ｙｅｓ）、印刷データ生成装置１０１は、誤差をＭａｒｇｉｎキーワード指定値に設定する（ステップＳ１４１０）。
【００９６】
ステップＳ１４０９、またはステップＳ１４１０の処理終了後、印刷データ生成装置１０１は、描画データ４１３から、探索キーワードが示す条件に一致するレコードを探索する（ステップＳ１５０１）。次に、印刷データ生成装置１０１は、描画データ４１３から、見つかったレコードが示す座標位置の探索方向にある誤差範囲の数値描画データを探索する（ステップＳ１５０２）。そして、印刷データ生成装置１０１は、見つかった数値描画データ内の数値と、合計値群テーブル９０１の各合計値とを比較する（ステップＳ１５０３）。次に、印刷データ生成装置１０１は、比較した結果、値が一致した項目名と、数値描画データ内の位置座標とを記憶する（ステップＳ１５０４）。ステップＳ１５０４の処理終了後、印刷データ生成装置１０１は、合計値印字位置特定処理を終了する。合計値印字位置特定処理を実行することにより、印刷データ生成装置１０１は、合計値印字位置を特定することができる。
【００９７】
以上説明したように、印刷データ生成装置１０１は、帳票データ１１１−１の項目の合計値と同じ値が帳票データ１１１−１にあれば、合計値印字位置に複数の帳票データ１１１を集約した項目の合計値を印字した２次帳票データ１２１を生成する。これにより、印刷データ生成装置１０１は、２次帳票データ１２１において項目値の合計値を正確に出力することができる。また、印刷データ生成装置１０１は、ＤＢサーバ２０１にアクセスせずに、２次帳票データ１２１において項目値の合計値を正確に出力することができる。また、印刷データ生成装置１０１は、項目情報ファイル４１１と検索情報ファイル４１２とを使用することにより、数値項目のデータにアクセスし、テキスト項目や矩形テキスト項目に対してアクセスしない。従って、印刷データ生成装置１０１は、２次帳票データ１２１を生成する際にかかる負荷を抑制することができる。
【００９８】
また、印刷データ生成装置１０１は、項目値の合計値を算出する処理の処理内容を示す文字列が印字される帳票データ１１１における位置を検索し、検索により見つかった位置と、演算処理の演算結果の値とに基づいて、合計値印字位置を特定してもよい。これにより、帳票データ１１１内に複数の数値項目があったとしても、印刷データ生成装置１０１は、合計値印字位置を特定でき、２次帳票データ１２１における合計値を正確に出力することができる。また、印刷データ生成装置１０１は、検索により見つかった位置と、予め指定された探索方向と、演算処理の演算結果の値とに基づいて、合計値印字位置を特定してもよい。これにより、検索により見つかった位置と合計値が印字された位置とが離れた位置にあったとしても、見つかった位置を始点として予め指定された探索方向に合計値が印字されていれば、印刷データ生成装置１０１は、合計値印字位置を特定することができる。
【００９９】
また、印刷データ生成装置１０１は、算出した合計値と、帳票データ１１１における表データ１１３の項目値の演算結果の値との差分が所定の範囲内であれば、合計値印字位置を特定してもよい。これにより、帳票データ１１１に印字されている項目値が、四捨五入等により丸められた値であったとしても、印刷データ生成装置１０１は、合計値印字位置を特定でき、２次帳票データ１２１における合計値を正確に出力することができる。
【０１００】
また、印刷データ生成装置１０１は、帳票データ１１１における表データ１１３の項目のうち数値情報を項目値に含む項目が複数ある場合、各項目の項目値の合計値を算出し、いずれかの項目を特定してもよい。これにより、印刷データ生成装置１０１は、帳票データ１１１の数値情報を項目値に含む項目が複数あったとしても、合計値を算出した項目を正確に特定することができ、２次帳票データ１２１における合計値を正確に出力することができる。
【０１０１】
なお、本実施の形態では、印刷データ生成装置１０１は、複数の帳票データから２次帳票データを生成したが、複数の帳票データと２次帳票データとから、前述の２次帳票データとは異なる２次帳票データを生成してもよい。さらに、印刷データ生成装置１０１は、２つ以上の２次帳票データから、前述の２つ以上の２次帳票データとは異なる２次帳票データを生成してもよい。
【０１０２】
また、本実施の形態では、表データを含む印刷データを帳票データとしたが、他の印刷データであってもよい。例えば、表データを含む印刷データは、表データを含むプログラムの設計仕様書を示す印刷データでもよい。プログラムの設計仕様書を示す印刷データに含まれる表データは、例えば、プログラム内の関数の各引数の型と各引数の説明が記載されたデータである。
【０１０３】
また、本実施の形態で説明した印刷データ生成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本印刷データ生成プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本印刷データ生成プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１０４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１０５】
（付記１）コンピュータに、
定義情報を同じくする複数の印刷データのうちの少なくともいずれかに含まれる表データの、数値情報を項目値に含む項目の、項目値に対する演算処理を行い、
前記演算処理の演算結果の値に基づいて、前記演算処理を行った前記印刷データにおける前記表データの項目値の演算結果の値の有無、および該演算結果の値が印字される前記印刷データにおける位置を特定し、
前記複数の印刷データの表データから、所定の条件に基づいて抽出した部分データを集約した印刷データを生成する際に、前記部分データを集約した印刷データに含まれる項目値に対する演算処理の演算結果の値が、特定された前記位置に対応する位置に印字された印刷データを生成する、
処理を実行させることを特徴とする印刷データ生成プログラム。
【０１０６】
（付記２）前記コンピュータに、
前記印刷データから、前記演算処理の処理内容を示す文字列が印字される前記印刷データにおける位置を検索する、処理を実行させ、
前記特定する処理は、
検索した前記文字列が印字される前記印刷データにおける位置と、前記演算処理の演算結果の値とに基づいて、前記印刷データにおける前記表データの項目値の演算結果の値の有無、および該演算結果の値が印字される前記印刷データにおける位置を特定することを特徴とする付記１に記載の印刷データ生成プログラム。
【０１０７】
（付記３）前記特定する処理は、
前記演算処理の演算結果の値と、前記印刷データにおける前記表データの項目値の演算結果の値との差分が所定の範囲内であれば、前記演算処理を行った前記印刷データにおける前記表データの項目値の演算結果の値が有ることを特定するとともに、該演算結果の値が印字される前記印刷データにおける位置を特定することを特徴とする付記１または２に記載の印刷データ生成プログラム。
【０１０８】
（付記４）前記演算処理を行う処理は、
前記印刷データにおける前記表データの項目のうち数値情報を項目値に含む項目が複数ある場合、数値情報を項目値に含む各項目の項目値に対する演算処理を行い、
前記特定する処理は、
さらに、前記各項目の項目値に対する前記演算処理の演算結果の値と前記印刷データにおける前記表データの項目値の演算結果の値との比較結果に基づいて、前記各項目からいずれかの項目を特定し、
前記生成する処理は、
前記複数の印刷データの表データから、前記部分データを集約した印刷データを生成する際に、前記部分データを集約した印刷データに含まれる前記いずれかの項目の項目値に対する演算処理の演算結果の値が、特定された前記位置に対応する位置に印字された印刷データを生成することを特徴とする付記１〜３のいずれか一つに記載の印刷データ生成プログラム。
【０１０９】
（付記５）前記項目値に対する演算処理は、前記項目値の和を算出する処理であることを特徴とする付記１〜４のいずれか一つに記載の印刷データ生成プログラム。
【０１１０】
（付記６）定義情報を同じくする複数の印刷データのうちの少なくともいずれかに含まれる表データの、数値情報を項目値に含む項目の、項目値に対する演算処理を行い、
前記演算処理の演算結果の値に基づいて、前記演算処理を行った前記印刷データにおける前記表データの項目値の演算結果の値の有無、および該演算結果の値が印字される前記印刷データにおける位置を特定し、
前記複数の印刷データの表データから、所定の条件に基づいて抽出した部分データを集約した印刷データを生成する際に、前記部分データを集約した印刷データに含まれる項目値に対する演算処理の演算結果の値が、特定された前記位置に対応する位置に印字された印刷データを生成する、
制御部を有することを特徴とする印刷データ生成装置。
【０１１１】
（付記７）コンピュータが、
定義情報を同じくする複数の印刷データのうちの少なくともいずれかに含まれる表データの、数値情報を項目値に含む項目の、項目値に対する演算処理を行い、
前記演算処理の演算結果の値に基づいて、前記演算処理を行った前記印刷データにおける前記表データの項目値の演算結果の値の有無、および該演算結果の値が印字される前記印刷データにおける位置を特定し、
前記複数の印刷データの表データから、所定の条件に基づいて抽出した部分データを集約した印刷データを生成する際に、前記部分データを集約した印刷データに含まれる項目値に対する演算処理の演算結果の値が、特定された前記位置に対応する位置に印字された印刷データを生成する、
処理を実行することを特徴とする印刷データ生成方法。
【符号の説明】
【０１１２】
１０１  印刷データ生成装置
１１１  帳票データ
１１２  定義情報
１２１  ２次帳票データ
２００  電子文書システム
２０１  ＤＢサーバ
２０２  クライアント装置
４００  制御部
４０１  演算処理実行部
４０２  検索部
４０３  特定部
４０４  生成部
４１１  項目情報ファイル
４１２  検索情報ファイル
４１３  描画データ
４１４  検索属性ファイル
【図１】
0006500640.tif 000002
【図２】
0006500640.tif 000003
【図３】
0006500640.tif 000004
【図４】
0006500640.tif 000005
【図５】
0006500640.tif 000006
【図６】
0006500640.tif 000007
【図７】
0006500640.tif 000008
【図８】
0006500640.tif 000009
【図９】
0006500640.tif 000010
【図１０】
0006500640.tif 000011
【図１１】
0006500640.tif 000012
【図１２】
0006500640.tif 000013
【図１３】
0006500640.tif 000014
【図１４】
0006500640.tif 000015
【図１５】
0006500640.tif 000016