JP3978173B2 - 帳票作成方法 - Google Patents

帳票作成方法 Download PDF

Info

Publication number
JP3978173B2
JP3978173B2 JP2003408408A JP2003408408A JP3978173B2 JP 3978173 B2 JP3978173 B2 JP 3978173B2 JP 2003408408 A JP2003408408 A JP 2003408408A JP 2003408408 A JP2003408408 A JP 2003408408A JP 3978173 B2 JP3978173 B2 JP 3978173B2
Authority
JP
Japan
Prior art keywords
data
area
output
row
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003408408A
Other languages
English (en)
Other versions
JP2004152314A (ja
Inventor
哲也 丸岡
哲也 増石
康一 嶋崎
喜正 金森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2003408408A priority Critical patent/JP3978173B2/ja
Publication of JP2004152314A publication Critical patent/JP2004152314A/ja
Application granted granted Critical
Publication of JP3978173B2 publication Critical patent/JP3978173B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は計算機を用いた帳票作成方法および装置に係り、特に一定の表示パタ
ーンが繰返し現れる帳票を、表形式データを参照して作成するのに好適な帳票作
成方法に関する。
帳票の作成に関する従来技術として、日立製作所のパーソナルコンピュータB
16シリーズや日本電気のパーソナルコンピュータPC98シリーズ上で稼働す
るソフトウェア「DATABOX−II」がある。
本ソフトウェアには、レポート出力機能として、特定の繰返しパターンで構成
される帳票を作成するための明細印字機能がある。
上記機能はレポート上に配置したデータのうち指定した範囲を一覧形式で繰り
返して連続印字するものである。また、繰返し元となるデータに罫線情報や固定
文字列が配置でき、さらに、メモ帳と呼ばれる一件一件の関連情報を表形式デー
タとして格納する際に、格納するデ−タ保存様式の指定項目データの項目名称を
指定することで上記の関連情報を配置できる。そして、印字の際、配置したメモ
帳の項目に順々に次データ(表形式データでいえば次のレコード)が対応して表
示される。この時、画面上のレポートには、指定項目の項番が"#01"の様に表
示され、繰返しによって配置された項目も同様に"#01"の様に表示される。
また、繰返し印字の際は、指定した範囲を単純に下方向へ繰り返す、あるいは
この繰返し印字を複数列(最大4列)に適用するための指定ができる(例えば非特許文献1参照。)。
日立製作所のパーソナルコンピュータB16シリーズのDATABOX−IIのマニュアルp.280〜283
上記従来技術では、利用者が帳票を作成する場合以下の問題点がある。
レポートに配置する表形式データの項目は必ず同一のレコードに含まれている
ものに限られるため、表形式デ−タが時系列で並んでいる場合などに、一つ前の
レコ−ドの項目をレポ−トに配置することはできない。すなわち、サンプルとし
て配置できるのはある1レコードのみで、複数レコードに股がってデータを配置
し、これをサンプルとして繰返し適用することができない。
上記の状況で、同一レコ−ド上にない関連項目を帳票上に見比べやすいように
配置したい場合には、その関連項目を予め表形式データの同一レコードとして格
納する作業が必要となり、記憶領域も2倍必要となる。
さらに従来技術は、必ず1レコ−ドずつ順に繰返し処理を適用するので、2つ
あるいは3つおきにレコ−ドをスキップして処理を繰り返すことができない。
以上示したように従来の方法は、複数レコードに股がった項目をサンプルに指
定したり、これを柔軟に複数レコード単位で繰返し適用するといった状況を十分
に考慮していない。このため、帳票作成の際に無駄な作業やメモリを必要とする
といった問題点があった。
本発明の目的は上記問題点を解決して、複数レコードに股がったデータを帳票
上に配置し、これを繰返して帳票を作成する際に効率的な方法を提供することで
ある。
上記目的を達成するため、本発明は、計算機の出力装置に対して、記憶装置に
格納された表形式データを表示するための領域と、作成すべき帳票の出力領域と
を設け、以下の処理を行う。
表形式データの特定行を指定する情報を入力装置から入力し、指定された特定
行を出力装置の表形式データ上に示し、表形式データ上で指定されたデータを帳
票出力領域へ配置する時に、表形式データの指定場所を特定行からの相対位置情
報として記憶装置へ格納する。そして、繰返し表示の時は、表形式データの特定
行を予め定まった行数だけ移動して、この移動後の行を基準として前記相対位置
情報に対応するデータを取り出し、帳票出力領域へ出力する。さらに、繰返し表
示の時に移動する行数を入力装置から入力する。
本発明によれば、対話操作により、2次元形式の表データを各種のレイアウト
をもつ帳票に変更できる。その際、表形式データ上における、基準となるレコー
ドだけでなく、その前後に存在する任意レコードを配置データとして指定できる
。さらに、指定したレコード幅分だけ順次レコードをスキップして繰返し表示を
適用するので、複数レコードに股がったデータを帳票上に配置し、これを繰返し
表示して帳票を作成することが可能となり、繰返し表示による帳票作成において
利用者は柔軟かつ効率的に作業をすることができる。
以下に示す本発明の一実施例は、計算機を用いた帳票出力方法であり、表形式
データを対象に各種計算や加工処理を施すシステムにおいて、表形式データを様
々なレイアウトの帳票にアレンジする方法である。
表形式データは横軸にフィールドと呼ばれる属性を表現し、縦軸にはレコード
と呼ばれるデータの一つの単位を表現する構成をもつ。このように単純な二次元
構造のデータを処理の対象とする理由には、データのグラフ表示や計算処理が適
用しやすいことが挙げられる。
一方、加工したデータやグラフは最終的には、帳票あるいはドキュメントとし
て紙の上に印刷されるのが普通である。実際の帳票に出力する表の形式を見てみ
ると、先に述べたような単純な2次元の表だけでなく、様々な形にアレンジされ
たものが存在する。従って、一般的には、システムが基本として取り扱う表形式
と実際の帳票出力のレイアウトが異なる。
本発明は、システムが取り扱う2次元の表を帳票出力用に様々なレイアウトに
アレンジする処理手順に関するものである。ここで、本実施例の理解を容易にす
るため、アイデアのポイントについて簡単に述べる。
まず、アレンジ前の簡単な2次元形式のテーブル(以下、元テーブルと呼ぶ)
の表示用ウィンドウと、アレンジして新たに作成するテーブルを表示するための
アレンジウィンドウ(最初はなにも表示されていない)を生成する。利用者はこ
の元テーブルの表示用ウィンドウからサンプルとなるデータを対話形式で指定し
て、所望するレイアウトとなるように指定したデ−タをアレンジウィンドウ上へ
持っていく。その後、アレンジウィンドウ上のサンプルとなるデータがどのよう
に繰り返されて新たな表を構成しているかといった繰返し種別等のパラメータを
指定する。その後、実際に繰返しを適用して、新たな帳票を作成する。以下、本
実施例を説明する。
図1は本実施例の処理手順を示すフローチャートであり、図2は本発明を実施
する計算機装置のハードウエア構成である。図3はアレンジ前のテーブルすなわ
ち単純な二次元の表を表示するための元テーブル表示用ウィンドウの画面出力例
であり、記憶装置上に蓄えられている表データ自身の表現形式の一例は図4に示
した。
図2において、ディスプレイ201は、表データの値、アレンジ操作用のウィ
ンドウ等、システムからの出力情報、あるいは利用者に対して入力要求を促す各
種メニューや入力エリアを表示するための出力装置である。キーボード202は
システムからの入力要求に対する回答を数字や文字列で入力するための入力装置
である。マウス203はディスプレイ201の画面上を指示してデータを指定し
たり、各種メニューの選択や処理起動のための情報を入力するポインティング型
の入力装置である。プリンタ204は対話操作で作成した帳票を印刷するための
出力装置である。記憶装置207は表形式データや入力装置からの入力情報、処
理装置によって演算あるいは加工された各種情報を保持するための情報記憶媒体
である。処理装置205はこれら各装置の制御を司るもので、各装置からのデー
タ読出し、各装置へのデータ書き込み、およびデータの検査や演算処理を内部に
格納されたプログラム206によって行う。
図4はシステムが取扱う元テーブル400の格納形式を示す。本テーブルは記
憶装置207上に格納されている。表に付けた名前を示す表名称401、横軸に
は複数のフィールド名称404、及び縦軸方向にはレコードが並ぶ構成をもつ単
純な2次元形式の表である。なお、テ−ブル400では、レコード番号403だ
けでなく、フィールド名にも番号402を付して、数値によるアクセスを可能と
すべく構成されている。図4に示した例では、表名称が「所得一覧」であり、先
頭のレコードは「氏名番号」が「14521」で「氏名」が「丸岡哲也」、通勤
時間が「1:00」...という情報を表現したものである。
図5には、処理過程で使用する情報保持用の領域を示す。図5に示すそれぞれ
の情報の詳細は、以下に述べる処理手順の中で説明する。
図1のフローチャートに従い、本実施例の処理手順を説明する。まずディスプ
レイ201に、「テーブル名入力」なる文字列を表示して、利用者からの入力を
促す。そして利用者はキーボードを用いてテーブル名を入力する(ステップ10
1)。例えば利用者は "所得一覧" を入力する。この入力テーブル名がアレンジ
対象の元テーブルである。ステップ101において、他の形式例えば利用可能な
テーブル一覧を表示し、その一つを選択させる等の方法でも実現できる。
次に、元テーブル表示用ウィンドウ300を生成して、このウィンドウに対し
て、ステップ101で入力したテーブル名称をもつ元テーブル400のデータを
表示する(ステップ102)。
データ表示後の元テーブル表示用ウィンドウ300の出力例を図3に示した。
図3の出力例では画面中に表示可能なデータはフィールド数が5つ、レコード数
が4つ、すなわち横に5つ縦に4つの合計20のデータである。一方、元テーブ
ル400は実際にはこの表示領域より大きな表であるため、ウィンドウに表示で
きるのは元テーブル400の一部分となる。以下、元テーブル400の内容を元
テーブル表示用ウィンドウ300へ表示する手順(ステップ102)の詳細を図
13のフローチャートに従い説明する。
先ず表示先頭フィールド番号を格納するための領域501(図5)へ"1"を設定
し(ステップ1301)、表示先頭レコード番号を格納するための領域502へ
"1"を設定する(ステップ1302)。領域501および502は、元テーブ
ル表示用ウィンドウ300のデータ表示領域の左上のマス320に表示すべきデ
ータがどのデータであるかを示すもので、元テーブルデータ400のフィールド
番号402およびレコード番号403に対応している。図5に示した例は初期値
として元テーブル400の1フィールド目の1レコードを設定したものである。
次に、元テーブル表示用ウィンドウ300のフィールド名表示域301へ対応
するフィールド名を出力する(ステップ1303)。本処理(ステップ1303
)の詳細を図14のフローチャートに従い説明する。
表示先頭フィールド番号格納域501に格納された値をプログラム変数iに代
入する(ステップ1401)。
プログラム変数lに"1"を代入する(ステップ1402)。変数lは、これか
らフィールド名称を表示すべき元テーブル表示用ウィンドウ300上のフィール
ド301を示すものである。
次に、元テーブル400上のiの場所にフィールドが存在するかどうかを調べ
(ステップ1403)、もし存在すれば、元テーブル300のフィールド番号4
02がiの場所のフィールド名404を取り出す(ステップ1404)。
そして、取り出したフィールド名404を元テーブル表示用画面300のフィ
ールド名表示域301の左からl番目の表示場所に出力表示する(ステップ14
05)。
その後、プログラム変数lおよびiをインクリメントし(ステップ1406)
、このプログラム変数lが "5"を超えているかどうかを判定し(ステップ14
07)、超えていれば5個分のフィールドを全て表示したことになるので本処理
を終了し、超えていなければステップ1403へ戻り、次のフィールド名の取り
出しを行なう。
一方、ステップ1403の判定処理において、iの場所にフィールドが存在し
ない場合には(元テーブルのフィールド数が5つより小さな表であるとき)、元
テーブル表示用ウィンドウ300のフィールド名表示域301の左からl番目の
表示場所をクリアし(ステップ1408)、ステップ1406へ進む。
図13において、元テーブル表示用ウィンドウ300にフィールド名の表示が
終わった後は、元テーブル400の各データの値を元テーブル表示用ウィンドウ
に表示する(ステップ1304)。以下、ステップ1304の処理の詳細を図1
5のフローチャートに従い説明する。
まず、表示先頭フィールド番号格納域501に格納された値をプログラム変数
iに代入する(ステップ1501)。
次に、プログラム変数lに"1"を代入する(ステップ1502)。変数lはこ
れからデータを表示すべき元テーブル表示用ウィンドウ300上のマスのフィー
ルド(横軸方向)の位置を示す。
そして、表示先頭レコード番号格納域502に格納された値をプログラム変数
jに代入する(ステップ1503)。
さらに、プログラム変数mに"1"を代入する(ステップ1504)。この変数
mはこれからデータを表示すべき元テーブル表示用ウィンドウ300上のレコー
ド(縦軸方向)の位置を示す。
次に、元テーブル400上の(i、j)の場所にデータが存在するかどうかを
調べ(ステップ1505)、もし存在すれば、元テーブル300の(i、j)の
場所のデータを取り出し(ステップ1506)、この取り出したデータを元テー
ブル表示用画面300のデータ表示域の左上の枠320を基準の(1、1)とし
た(l、m)の場所の枠に表示する(ステップ1507)。
一方、ステップ1505の判定処理において、元テーブル300上の(i、j
)の場所にデータが存在しない場合には、元テーブル表示用ウィンドウ300の
データ表示領域の左上のエリアから(l、m)番目の表示場所をクリアする(1
508)。これによって、画面上のある一つの枠に対して、データを表示したり
、クリアすることが出来る。
その後、プログラム変数mとjをインクリメントし(ステップ1509)、縦
軸方向にある次の対象へ処理を進める。そして、このプログラム変数mが "4"
を超えているかどうかを判定し(ステップ1510)、超えていなければステッ
プ1505へ戻り、次のレコードのデータ取出しを行なう。mが "4"を超えて
いれば(あるフィールドに関して4レコードのデータを全て表示)、フィールド
(横軸方向)の対象を次へ進めるために、プログラム変数lおよび、iをインク
リメントする(ステップ1511)。このプログラム変数lが "5"を超えてい
るかどうかを判定し(1512)、超えていれば、5個分のフィールドおよび4
個分のレコードを全て表示したことになるので本処理を終了し、超えていなけれ
ばステップ1503へ戻り、次のフィールドに関する取り出しを行なう。
以上、図15の処理(ステップ1304)によって、元テーブル表示用ウィン
ドウ300に元テーブル400のデータが表示される。
図1において、元データ表示用ウィンドウ300へのデータ表示が終わった後
は、同ウィンドウ300の左端側にある基準レコード302の設定を行う(ステ
ップ103)。
ここで基準レコードについて説明する。基準レコードには、任意のレコード位
置から連続した複数のレコード(1レコードでも可)を指定できる。後述のテー
ブルアレンジ操作において、元テーブル表示用ウィンドウ300上から切り貼り
で配置したデータ(マッピングデータと呼ぶ)は、この基準レコードの先頭から
の相対的なレコード位置関係を記憶する。そして繰返し適用では順次この基準レ
コードの先頭を基準レコード幅分だけ仮想的に移動させ、記憶した相対的なレコ
ード位置関係に基づいて残りレコードの配置を繰り返す。この基準レコードの情
報を保持するための領域として、基準レコード先頭番号格納域503と基準レコ
ード幅格納域504を用意する。これら領域には、初期値として"1"が設定され
る(ステップ1305、1306)。元テーブル300の先頭レコード(1レコ
ードのみ)がこれに対応し、この位置を示す基準レコードカーソル303を元テ
ーブル表示用ウィンドウ300に表示する(ステップ1307)。
利用者は必要に応じて基準レコードを変更できる(ステップ103)。マウス
203を用いて、元テーブル表示用ウィンドウ300上の基準レコードカーソル
表示域302の任意の欄を選択して、基準レコード情報を変更する。具体的には
図16のフローチャートの手順で変更する。まず、利用者は画面300上のスク
ロール用コマンド304、305を用いて、表示するレコードデータをスクロー
ルする(ステップ1601)。そして希望するレコードの場所で基準レコードカ
ーソル表示域302をマウス左ボタンで選択し、この場所に対応するレコード番
号R1を求める(ステップ1602)。このレコード番号R1の値を、基準レコ
ード先頭番号格納領域503に格納しなおし(ステップ1603)、基準レコー
ドカーソル303を該当する場所に表示しなおす(ステップ1604)。これで
、基準レコードの先頭レコードを指定したことになる。その後また表示するレコ
ードデータをスクロールして(ステップ1601)、希望するレコードの場所で
基準レコードカーソル表示域302をマウス右ボタン212で選択し、この場所
に対応するレコード番号R2を求める(ステップ1605)。このレコード番号
R2から前記R1を減じた値に1を加えた値を基準レコード幅格納領域504へ
格納する(ステップ1606)。そして、該当する基準レコードにあたるレコー
ド範囲に基準レコードカーソルを表示する(ステップ1607)。以上の処理に
より、利用者の希望するように基準レコードを設定できる。
ステップ1601でのデータスクロールに関して説明する。図3の元テーブル
表示用画面300中のスクロール用コマンドメニュー304、305、306及
び307は、画面に表示可能なデータ量(5フィールド×4レコード分)より大
きな元テーブルデータ400を表示する際に利用する。例えば下スクロール用コ
マンドメニュー305をマウス203で選択した際、表示先頭レコード番号50
2の値を+4して、その後ステップ1303およびステップ1304を適用すれ
ば、現在表示している次のレコードを表示することができる。同様に上スクロー
ル304の選択時には、表示先頭レコード番号502の値を−4してステップ1
303およびステップ1304を適用する。フィールド(横)方向のスクロール
については、右スクロール用メニュー307を指定した場合には、表示先頭フィ
ールド番号501の値を+5、左スクロール用メニュー306では−5して、ス
テップ1303および1304を適用する。
以上これまでの説明してきた処理手順により、元テーブル表示用画面ウィンド
ウ300の生成が完了する。利用者は元テーブルに対して任意のレコード位置か
ら任意のレコード幅もつ基準レコードを入力し、見本として配置するレコードの
位置、および繰返し適用時にスキップするレコード幅を設定することができる。
次にアレンジ用ウィンドウ600を生成する(ステップ104)。
本ウィンドウは図6に示すように、その上部に各種処理の起動のためのコマン
ドメニュー領域(コマンド処理の詳細は後述する)、その下部には、新たに作成
すべき表を配置するアレンジテーブル配置域619から構成される。このとき画
面に表示されるコマンドメニュー群の位置は図19に示す形式のコマンドメニュ
ー位置テーブル1900として記憶装置207に予め蓄えられている。各コマン
ドメニューの矩形領域について、その表示文字列1902、左上頂点のX座標1
903、Y座標1904、右下頂点のX座標1905、Y座標1906および、
そのメニューの識別番号1901を付加した構成である。これによって、マウス
203を用いた入力情報である(X、Y)座標から指定コマンドが何であるかの
識別番号を取り出して、この番号に応じて各処理を実行することが可能となる。
また、アレンジテーブル配置域619の領域をスクロールするためのスクロール
バーと呼ばれる操作領域が設けられており、それぞれ横方向用620と縦方向用
621がアレンジ用ウィンドウに存在する。利用者はこれを用いてアレンジテー
ブル配置域619の表示内容をスクロールできる。
利用者が具体的なマンマシン操作で、アレンジテーブル配置域619へ新たな
表を作成していく過程で格納する各種情報を保持するための記憶領域の確保と初
期化処理を次に行う(ステップ105)。
ここで格納する各種情報とは、元テーブル表示用ウィンドウから切り貼りして
きたマッピングデータの貼り付け位置や元テーブル400上でのレコード位置や
フィールド名に関する情報、あるいは描画する罫線枠の情報、そして繰返し種別
等の情報である。これら情報の記憶領域の確保と初期化を行う処理手順について
図17のフローチャートを用いて説明する。なお本処理はステップ101から1
04の間でならどこでも行って良いし、本処理で初期化する記憶領域が予め記憶
装置207上に存在するものとしても差し支えない。
まず、繰返し情報領域800の確保とその空きリストを連結する(ステップ1
701)。繰返し情報領域800は、1つの元テーブルのアレンジに関して1つ
使用される領域で、繰返し種別(後で説明)や繰返し領域の位置等に関する情報
を保持する。この1個分の構成を図8に示す。アレンジ元となる元テーブルの名
称801、アレンジ操作で配置したマッピングデータや罫線のうち被繰返し領域
となる矩形領域の座標位置を示す座標値802、803、804、805、繰返
し種別812、そして繰返し適用によって次に配置すべき座標位置を示す座標値
806、807、808、同様に繰返し種別812によっては複数の繰返し位置
が必要となるので、その繰返しの回数を示す値809、810、811、また現
在設定している基準レコードに関する情報を格納する基準レコード先頭番号81
3、基準レコード幅814、そして画面のアレンジテーブル配置域619に具体
的に配置された各部品(マッピングデータや罫線等)の情報格納領域のアドレス
を指す部品情報領域へのポインタ815、そして次の元テーブル400からのア
レンジ操作がある場合に次の繰返し情報領域アドレスを指す816の領域から構
成される。
種々の繰返し処理を行えるように、この繰返し情報領域800を格納できる領
域を十分な個数(例えば20個)確保し、その複数個の領域を図11に示すよう
に順に連鎖する。連鎖は、次の繰返し情報領域へのポインタを格納する領域81
6に次の領域のアドレスを順次格納することで実現できる。末尾の領域816は
アドレス値として"0"を格納してこれ以上連鎖がないことを示す。このリストの
先頭を指すアドレスを保持するプログラム変数free_map(1101)と末
尾を指すアドレスを保持するプログラム変数free_map_tail(11
02)を設定する。このようにして未使用の繰返し情報領域800のリストを作
成する。繰返し情報が必要な時は、free_map(1101)に格納されたア
ドレスから1個分の領域を取り出して使用し、その次の領域の先頭アドレスをf
ree_map(1101)が指すように変更する。上記の方法により、領域管理
が容易に実現できる。また、不要になった領域もその末尾の領域に新たに連鎖す
ることで再利用可能となる。
次に、上記のステップ1701と同様の処理により、部品情報領域900の確
保とその空きリストの連結を行なう(ステップ1702)。部品情報領域900
は、アレンジテーブル配置域619に配置したマッピングデータ、固定文字列、
罫線についてそれぞれ個別にその配置情報等を記憶する領域である。この1個分
の構成を図9に示す。上記部品の配置位置の矩形領域の左上X座標901、Y座
標902、右下X座標903、Y座標904、マッピングデータであるか罫線で
あるか固定文字列であるかを示す部品種別905、マッピングデータである場合
のフィールド名または固定文字列である場合の文字列を格納する領域906、マ
ッピングデータの場合の対応レコード番号907、表示文字のサイズまたは罫線
の線種を格納する領域908、上記部品が繰返し対象であるか否かを示すフラグ
909、上記部品のID910、及び、次の部品情報領域のアドレスを指すポイ
ンタ911から構成される。
図12には本部品情報領域900の空きリストの構造を示す。上記繰返し情報
領域800の場合と同様に、必要となる個数分の領域を確保し、これらを順次連
鎖させたものである。その空きリストの先頭を示すプログラム変数free_p
art(1201)と、末尾を指すプログラム変数free_part_tai
l(1202)を有す。
上記の領域を確保した後、繰返し情報領域800をその空きリストから一つも
らい(ステップ1703)、この領域アドレスを用紙情報領域700の繰返し情
報領域へのポインタ705へ格納し、一つ分の繰返し情報領域を接続する(ステ
ップ1704)
ここで、用紙情報領域700について説明する。その構造は図7に示すように
、印刷時の用紙の種別を格納する領域701、その用紙サイズのディスプレイ上
の大きさ(アレンジテーブル設置域上での大きさ)を示す横サイズ702、縦サ
イズ703、実際に繰返し適用によって必要となるページ数を示す領域704、
そしてこの用紙上にアレンジする情報を指すための繰返し情報領域800へのポ
インタ705で構成される。
次に用紙情報領域700にデフォルト値を設定する(ステップ1705)。具
体的には以下のものを設定する。
用紙種別701に "A4縦長" を設定。
横サイズ702に "700" を設定。
縦サイズ703に "1100" を設定。
使用ページ704に "1" を設定。
そして、ステップ1704で接続した繰返し情報領域800の元テーブル名称
801に対し、ステップ101で入力したテーブル名称401を格納する。
以上の処理によって、情報格納用領域の初期化(ステップ1305)が終了す
る。その結果、元テーブルデータ400を対象として、A4縦長のサイズの用紙
に新たにアレンジテーブルを作成するための前段階までの準備が整う。
元テーブル用ウィンドウ300とアレンジ用ウィンドウ600を生成した後は
、アレンジテーブル配置域619に、利用者がマンマシン対話でマッピングデー
タや罫線データを配置して新たな表データを作成する(ステップ106)。本処
理はシステムが持つ様々な処理機能を起動して行なわれる。各処理機能の起動は
アレンジ用テーブル600の上方に設けられたコマンドメニュー選択で行う。具
体的な処理を図18のフローチャートに示す。
まず、利用者からマウス203を用いてアレンジ用ウィンドウ上を直接指示し
た入力(x、yの座標情報)を受付け(ステップ1801)、この座標情報から
対応するコマンドメニューを取り出す(ステップ1802)。具体的には、マウ
スで指示された座標を(x、y)、コマンドメニュー位置テーブル1900の左
上X座標1903、Y座標1904を(X0、Y0)、右下X座標1905、Y座標
1906を(X1、Y1)とすると、それぞれの座標値は以下の条件を満たす。
条件 X0 ≦ X ≦ X1
条件 Y0 ≦ Y ≦ Y1
この2つの条件式を同時に満たす行のメニュー識別子1901を取り出すこと
で利用者に指示されたコマンドメニューが何であるかを識別できる。
その後、指定されたコマンドメニューに応じた個別処理を実行する(ステップ
1803)。このステップでは、各種の個別機能を振り分けて実行する処理が含
まれる。以下では、本ステップに含まれる個別機能を、選択したコマンドメニュ
ー別に対応づけて、順に説明する。
まず、ステップ1801で入力したものがアレンジ用ウィンドウ600中のコ
マンドメニュー「カット&ペースト」604であった場合の処理を、図20のフ
ローチャートを用いて説明する。図20に示す処理では、アレンジテーブル配置
域619に表示するデータを元テーブル表示用ウィンドウ300から切り貼りし
て持ってくる操作を行う。この切り貼りしたデータはマッピングデータと呼ぶ。
先ず、マウス203を用いて元テーブル表示用ウィンドウ300上を直接指示
して、切り取るべきマッピングデータを指定する(ステップ2001)。この指
定した場所に対応するデータを取り出し(ステップ2002)、対応するデータ
が存在するかどうかを調べる(ステップ2003)。もしマウスで指定した場所
にデータがない場合(画面上の余白部分を指定したり、実際にデータの存在しな
いマスを選択した場合等)には、ステップ2001へ戻って再びマウス入力を行
う。一方、対応データが取り出せたなら、マウス203を用いてアレンジテーブ
ル配置域619上の貼り付け位置を直接指示する(ステップ2004)。そして
この指定された位置にステップ2002で取り出したデータを表示する(ステッ
プ2005)。その後、部品情報領域の空きリストから一個分の領域900をも
らい(ステップ2006)、もらった部品情報領域900に以下の情報を設定す
る(ステップ2007)。
部品配置位置左上X座標901←ステップ2004で指定したX座標値
部品配置位置左上Y座標902←ステップ2004で指定したY座標値
部品配置位置右下X座標903←901の値に表示データX幅を加えた値
部品配置位置右下Y座標904←902の値に表示データY幅を加えた値
部品種別905←"マッピング"
マッピングフィールド名906←対応するフィールド名
マッピングレコードの番号907←対応するレコード番号から基準レコード
先頭番号503の値を減じた値
文字サイズ908←出力文字種別
被繰返し対象フラグ909←"OFF"
部品ID910←画面に表示した際の識別番号
次の部品情報領域へのポインタ911←終端を示す"0"
そして、この部品情報領域900を、繰返し情報領域800の部品情報領域8
15に順次連結するように接続する。即ち、初めての部品である場合は、領域8
15へ上記部品情報領域900のアドレスを格納し、2番目以降の部品であれば
既に連結されている部品情報領域900を順次辿って、終端の部品情報領域90
0を検出し、検出した部品情報領域900の領域911にアドレスを格納する(
ステップ2008)。
指定座標から対応する元テーブル400上のデータを求める上記ステップ20
02の処理手順を、図21に示すフローチャートに従って説明する
まず、元テーブル表示用ウィンドウ300上のマウスで指定された座標を(X
、Y)とし、これに対応する同画面上の枠のフィールド番号i、レコード番号j
を次の計算式によって求める。
(X0、Y0): 画面上のポイント310の座標
W : 一個のデータ表示枠の横方向の大きさ312
H : 一個のデータ表示枠の縦方向の大きさ313
i = [(X−X0)/ W] (数1)
j = [(Y−Y0)/ H] (数2)
([ ]はガウスの記号。)
上記計算式では、右辺から左辺への代入時に数値が整数化される。画面上の一
番左上隅のデータ表示枠を0フィールド及び0レコード番目とした時に、上記計
算式より、マウスで選択された座標に対応する、画面上のデータ表示枠のフィー
ルド番号及びレコード番号が求まる(ステップ2101)。
次に、上記ステップ2101で求めたiとjの値が適切であるかを検査する。
すなわち、横方向には5フィールド分、縦方向には4レコード分の表示場所しか
存在しないので、iやjの値が負の数値であったり、これら表示場所の大きさよ
りも大きな値であってはならない。
そこでまず、横方向について、iの値が0以上かつ5未満であるかを調べる(
ステップ2102)。もし上記範囲であるなら、さらに縦方向について、jの値
が0以上4未満であるかを調べる(ステップ2103)。ここでも範囲内である
なら、データ表示枠が選択されたことになり、上記ステップ2102で求めたi
およびjの値は元テーブル表示用ウィンドウ上の値であるので、これにそれぞれ
、表示先頭フィールド番号501の値、表示先頭レコード番号502の値を加え
て、実際の元テーブルデータ400の対応するフィールド番号およびレコード番
号に変換する(ステップ2104)。この変換後の値を(I、J)とする。すな
わち、元テーブル400上でフィールド番号がI、レコード番号がJの場所のデ
ータが対応データとなる。そして、元テーブル300の(I、J)の場所に実際
にデータが存在するかを調べて(ステップ2105)、存在しなければ指定した
箇所は空欄だったことになり、対応データなしとして本処理を終了し、存在すれ
ば(I、J)の場所のデータを取り出して(ステップ2106)終了する。
一方、ステップ2102、2103のいずれかの判定処理において範囲外であ
っても、データ表示枠外をマウスで指定されたことになり、対応データなしとし
て本処理を終了する。
以上の処理により、基準レコード先頭位置からの相対的位置により元テーブル
の参照データ位置を記憶できる。特定のレコードだけでなくその前後のレコード
も位置関係を明確にして保持できるので、利用者は元テーブル表示用ウィンドウ
300の任意のデータを指定して、アレンジ用ウィンドウ600をアレンジテー
ブル配置域619の任意の場所に置くことが出来る。本処理を繰返し使用するこ
とで、データの配置を好きなように並び変えて置くことが出来る。
次に、アレンジテーブル配置域に置かれた部品に対する複写や移動の操作、あ
るいは、罫線枠や表見出しに使用する固定文字列の配置の手順について述べる。
まず、既に配置された部品を移動する手順を図22のフローチャートに従って
説明する。本処理は、コマンドメニュー602の「移動」をマウス203で選択
した後に起動される。
はじめに、利用者は移動元矩形領域の左上角と右下角の2点をマウス203を
用いて指定する(ステップ2201)。次に移動先の位置を1点マウス203で
指定する(ステップ2202)。ここで移動先の位置は移動元の左上角に対応す
る。そして既に配置済の部品を順次取り出すために、使用部品リストに連結され
ている部品情報領域900の先頭を取り出し(ステップ2203)、領域(部品
)があるかどうか調べ(ステップ2204)、なければ本処理を終了し、あれば
その部品の位置が移動元矩形領域内に含まれているか否かを調べる(ステップ2
205)。領域内に含まれるか否かの判定は、部品情報領域900の配置位置情
報901から904が示す矩形領域が完全にステップ2201で指定した矩形領
域内に完全に含まれるどうかを調べればよい。領域内に含まれる場合には、前記
部品のID番号910を用いて、画面上から前記部品の表示を消去し(ステップ
2206)、前記部品の位置情報901から904の値を移動元の左上から移動
先の座標の差だけ加えた値に書替えて(ステップ2207)、新たにその位置情
報で該部品を表示する(ステップ2208)。そして使用部品リストをたぐって
次の部品を取り出し(ステップ2209)、ステップ2204へ戻る。また、判
定処理2205で移動元領域内でない場合には何もせずにステップ2209へ進
み次の部品を取り出す。
次に配置済み部品を複写する手順を図23のフローチャートに従い説明する。
本処理は、コマンドメニュー603の「複写」をマウス203で選択した後に起
動される。
まず、上記の「移動」の場合と同様に複写元矩形領域をマウス203で指定し
(ステップ2301)、移動先位置をマウス203で指定する(ステップ230
2)。そして使用部品リストに連結されている部品情報領域900の先頭を取り
出し(ステップ2303)、領域(部品)があるか否かを調べる(ステップ23
04)、部品がない場合には処理を終了し、あれば前記部品が複写もと領域内に
含まれるか否かを調べる(ステップ2305)。領域内含まれる場合には、新た
に部品情報領域900を空リスト1201から一つもらい(ステップ2006)
、もらった空き部品情報領域900の各属性に前記使用済部品の属性を複写する
(ステップ2308)。その後、空き部品情報領域900の位置情報901から
904の値を複写元の左上から複写先の座標の差だけ加えた値に書替えて(ステ
ップ2309)、この空き部品情報領域900の内容をアレンジテーブル配置域
619へ表示する(ステップ2309)。そして、空き部品情報領域900を使
用部品リストの末尾へ連結する(ステップ2008)。その後、次の配置済み部
品を連鎖をたどって取り出し(ステップ2311)、ステップ2304へ戻る。
また、判定処理2305で複写元領域内でない場合は何もせずにステップ231
1へ進み次の部品を取り出す
次に、配置済み部品を消去する手順について図24のフローチャートに従い説
明する。本処理は、コマンドメニュー605の「消去」をマウス203で選択し
た後に起動される。
先ず、上記の「移動」と同じように消去領域をマウスで指定する(ステップ2
401)。次に使用部品リストに連結されている部品情報領域900の先頭を取
り出し(ステップ2402)、領域(部品)があるか否かを調べ(ステップ24
03)、部品がない場合には処理を終了する。部品がある場合には前記部品の表
示位置901から904が消去領域に含まれているかどうか判定して(ステップ
2404)、含まれている場合には前記部品の表示を消去し(ステップ2405
)、前記部品情報領域900を使用部品リストから取り除き(ステップ2406
)、この取り除いた部品情報領域900を部品空きリストへ返す(ステップ24
07)。その後、ステップ2403へ戻り、次の部品(使用部品リストからの取
り除きにより既に次の部品が取り出されている)を対象にして処理を続ける。ま
た判定処理2404で領域内に含まれない場合には、次の配置済み部品を連鎖を
たどって取り出し(ステップ2408)、ステップ2403へ戻る。
次に、罫線枠の描画手順を図25のフローチャートに従い説明する。本処理は
コマンドメニュー606「描画」をマウス203で選択した後に起動される。
まずアレンジテーブル配置域619上で、利用者は直線の始点と終点をマウス
203で指定し(ステップ2501)、この2点間に直線を表示する(ステップ
2502)。その後、部品情報領域900を一つ空きリスト1201からもらい
(ステップ2006)、この領域900の位置情報901から904に始点と終
点の座標位置を格納し、部品種別905へ"直線"を設定する(ステップ2504
)。そして、このもらった領域を使用部品リストの末尾に連結する(ステップ2
008)。本手順を繰り返して複数の直線を描き、罫線枠を作成できる。
また、罫線のみを画面上から消去する手順は、コマンドメニュー607「消去
」を選択したのちに起動する。本処理手順は、先の図24のフローチャートにお
けるステップ2404の判定処理を、消去領域内に含まれ、かつ部品種別905
が"直線”であるという判定内容に変更することで容易に実現できる。
次に、帳票の見出し文字や、コメントといった元テーブルのデータとは関連な
い文字列を配置する手順を図26のフローチャートに従い説明する。本処理はコ
マンドメニュー608「生成」をマウスで選択した後に起動される。
まず、文字列入力用のウインドウを生成し(ステップ2601)、キーボード
202を用いて利用者が文字列を入力する(ステップ2602)。その後、アレ
ンジテーブル配置域619上をマウス203で指定して配置すべき位置を指定す
る(ステップ2603)。次に部品情報領域900を空きリストから一つもらい
(ステップ2006)、この領域900に対して、上記ステップ2602で入力
した文字列を文字列格納領域906に設定し、配置位置に関する情報を領域90
1から904に設定し、部品種別905に "固定文字列"を設定する。そして、
この部品情報領域900を使用部品リストの末尾に連結する(ステップ2008
)。以上の処理により、利用者の入力した任意の文字列をアレンジテーブル配置
域の好きな場所に置くことができる。
以上に述べたステップ106により、アレンジテーブル配置域619に利用者
の所望するレイアウトの見本となる基本部分を作成する。例えば、図27に示す
ような表示が行われる。同図における2701の文字列は固定文字列として利用
者が入力した文字列である。罫線枠2702も配置されていることが分かる。
アレンジテーブル配置域619に利用者の所望するレイアウトの基本部分を作
成した後は、この基本部分をどのようにアレンジテーブル配置域619上に繰り
返すかを指定する。
そこでまず、繰返し部分となる領域をアレンジテーブル配置域619上をマウ
ス203で利用者が指定入力して繰返し対象となる配置部品を決定する(ステッ
プ107)。本ステップ107の詳しい処理手順を図28のフローチャートに従
い説明する。なお本処理はコマンドメニュー610「領域指定」を選択した後に
起動される。
はじめに、利用者はマウス203を用いてアレンジテーブル配置域619上の
2点(繰返し部分となる矩形領域の左上角と右下角)を指定する(ステップ28
01)。次に、配置済の部品を順次取り出すために、使用部品リストに連結され
ている部品情報領域900の先頭を取り出し(ステップ2802)、領域(部品
)があるかどうか調べ(ステップ2803)、あればその部品の位置が繰返し矩
形領域内に含まれているか否かを調べる(ステップ2804)。領域内に含まれ
るか否かの判定は、部品情報領域900の配置位置情報901から904が示す
矩形領域が完全にステップ2801で指定した矩形領域内に完全に含まれるどう
かを調べればよい。領域内に含まれる場合には、前記部品の繰返しフラグ909
に"ON"を設定し(ステップ2805)、その部品位置情報901から904の
値を参照してこれまで取り出した繰返し領域内に含まれる部品の中で最も左側、
右側、上側及び下側の位置を求め処理を行う(ステップ2807)。その後使用
部品リストをたぐって次の部品を取り出し(ステップ2809)、ステップ28
03へ戻る。また、判定処理2205で繰返し領域内にない場合には、何もせず
にステップ2809へ進み、次の部品を取り出す。また、全ての配置部品に対す
る処理が終了し、ステップ2803の判定処理で部品がもうない場合、ステップ
2807で求めた最終的な部品の最も左、上、右及び下側の座標位置をそれぞれ
繰返し情報領域800の802から805まで領域に格納して処理を終了する。
次に、ステップ107で指定した繰返し領域がどういう順序で繰り返されるの
か、あるいは何個繰り返すかといった繰返しパラメータを入力する(ステップ1
08)。本処理の詳しい処理手順を図30のフローチャートに従い説明する。
先ず、繰返しパラメータ入力ウィンドウ2900を生成する。本ウィンドウ2
900の出力例を図29に示す。同図に示すように横方向および縦方向への繰返
し個数を入力する領域2901、2902、および繰返し順序を選択する繰返し
種別メニュー(2903からの2906)を有する。ここで繰返し種別について
説明する.
繰返し種別には4種類あり、この中の一つが指定できる。単純繰返し2903
は、図31に示すように、ステップ107で指定した繰返し領域を斜線部310
1とする時、この3101と同様のレイアウトが下方向に単純に繰り返すもので
ある。繰返し順序は3102から順に番号の大きいものを表示するものとする。
マルチ縦繰返し2904を指定した場合は、図32に示すように、一旦下方向
へ向かって繰返し、その後右へ移動して再び上から下へ繰り返すものである。
マルチ横繰返し2905を指定した場合は、図33に示すように、一旦右方向
へ向かって繰返し、その後下へ移動して再び左から右へ繰り返すものである。
また、ビル窓繰返し2906は、先ず一旦下方向へ指定個数だけ繰返し、これ
と同様な繰返しブロックをまず右方向へ、そして下方向へ行うものである。従っ
て、ブロック内の繰返し個数を入力する領域2907が本メニューに対しては存
在している。この繰返し数の初期値は"1"とする。
繰返しパラメータ入力ウィンドウ生成の後は、繰返し可能数を計算して290
1および2902の領域に表示する(ステップ3002)。ステップ107にお
いて繰返し範囲内の部品の最も左上と右下の座標が繰返し情報領域800の80
2から805に格納されているので、この値を元に、繰返し領域の最大横幅と縦
幅を求め、これが用紙情報領域700の横サイズ702および縦サイズ703の
大きさの中に最大(極力詰めて繰り返した場合)何個繰り返し可能かを計算すれ
ばよい。その後、繰返し種別メニュー2903から2906のうち一つをマウス
で指示して選択する(ステップ3003)。このとき、繰返し種別がビル窓繰返
し2906である場合、窓内の繰返し数2907を入力する。その後、必要に応
じて、繰返し可能数2901、2902の値を変更する(ステップ3004)。
本変更では表示されていた元々の数値以下の値しか入力できない。
繰返しパラメータ入力の次は繰返し位置を入力する(ステップ109)。本処
理を図35のフローチャートに従い詳しく説明する。
まず、ステップ3003で選択した繰返し種別を調べる(ステップ3501)
。この繰返し種別に応じて異なる個数の繰返し位置を指定する。繰返し種別が単
純繰返しの場合、繰返し位置を1点指定する(ステップ3502)。具体的には
図31に示したポイント3120のように次に配置する部品場所を指定する。繰
返し種別がマルチ縦繰返し、またはマルチ横繰返しの場合は、繰返し位置を2点
指定する(ステップ3503)。図32のポイント3220、3221、または
図33のポイント3320、3321がこの2点に該当する。また、繰返し種別
がビル窓繰返しの場合は3点を指定する(ステップ3504)。図34のポイン
ト3420、3421、3422がこれに該当する。いずれの場合もマウス20
3を用いてアレンジテーブル配置域619を直接指示する。繰返し位置を指定し
た後、アレンジテーブル配置域619で実際に可能な繰返し数を求める。単純繰
返しの場合はY軸方向の繰返し数のみを求め(ステップ3505)、マルチ縦お
よび横繰返しの場合はY軸方向とX軸方向の繰返し数を求め(ステップ3506
)、ビル窓繰返しの場合は、X軸方向及びY軸方向の繰返し個数の算出に加えて
ビル窓内の繰返し個数も必要となる。繰返し数の計算は、例えば図31の単純繰
返しの場合は、繰返しマージンのサイズ3110が繰返し可能サイズ3112に
どれだけ入るかを求めればよいので、簡単にサイズ3112÷サイズ3110の
整数部のみを取り出すことで実現できる。X軸方向についても同様に、サイズ3
212÷サイズ3211で求めることができる。
繰返し位置指定後は、実際の繰返しを適用して元テーブルの残りレコードを自
動的にアレンジテーブル配置域に順次表示する(ステップ110)。
本処理も繰返し種別により異なるので、単純繰返し、マルチ縦繰返し、マルチ
横繰返し、ビル窓繰返し各々について説明する。
まず、単純繰返しの場合を図36のフローチャートに従い説明する。まずY軸
方向のマージン値3110をプログラム変数△yに代入し(ステップ3601)
、X軸方向のマージン値をあらわすプログラム変数△xには"0"を代入する(ス
テップ3602)。そして画面に繰返し表示した個数をカウントするためのプロ
グラム変数jに"1"を代入する(ステップ3603)。その後プログラム変数j
の値がY軸方向の繰返し数より小さな数値であるか否かを調べ(ステップ360
4)、もし繰返し数以上になっていれば処理を終了し、まだ繰返し数未満なら基
準レコードの先頭番号503の値を基準レコード幅504の値だけ加算し(ステ
ップ3605)、この新たな基準レコード先頭番号の場所に実際のデータが存在
しないか否かを調べる(ステップ3606)。データが存在しなければ処理を終
了し、存在すれば現基準レコードを対象に繰返し表示を実行する(ステップ36
07)。この繰返し表示の手順(3607)の詳細を図40のフローチャートに
従い説明する。
まず、既配置部品の先頭部品900を取出す(ステップ4001)。部品が存
在しないときは処理を終了する。存在すれば前記部品の繰返し対象フラグ909
が"ON"か否かを調べる(ステップ4003)、もしフラグ"ON"ならさらに前
記部品の種別905が"マッピング"であるか否かを調べ(ステップ4004)、
そうなら対応データを取り出す(ステップ4005)。ここで取出すデータは、
元テーブルデータ400上のフィールド名404がマッピングフィールド名90
6と一致し、レコード番号403が基準レコード先頭番号503の値にマッピン
グレコード番号907の値を加えた値が示す箇所のデ−タである。また、部品種
別がマッピングデータでない場合は("固定文字列"、"直線"であった場合)、ス
テップ4005を飛ばして、前記部品の位置を変更する(ステップ4006)。
上記変更処理では、前記部品情報領域900の部品配置位置を示す情報のうちX
軸方向の座標値901、903の値に対して一時的にプログラム変数△xの値を
加算し、Y軸方向の座標値902、904の値に△yの値を加算する。そしてこ
の座標位置で前記部品を表示する(ステップ4007)。その後、次の部品を取
り出し(ステップ4008)、ステップ4002へ戻り残り部品について処理す
る。なお判定処理4003で前記部品の繰返しフラグが"OFF"である場合は、
ステップ4008へ飛び、次の部品について処理を進める。
上記のように繰返し部品の一回目の繰返しが行われた後、プログラム変数△y
の値を更に1マージン分加算し(ステップ3608)、繰返しのカウンタ変数j
をインクリメントして(ステップ3609)、ステップ3604へ戻る。その結
果、画面上に1頁分の繰返し表示が完了する。
次に、マルチ縦繰返しのときの繰返し適用処理手順を図37のフローチャート
に従い説明する。まず、Y軸方向のマージン値3210をプログラム変数△yに
代入し(ステップ3701)、X軸方向のマージン値をあらわすプログラム変数
△xには"0"を代入する(ステップ3702)。そして、画面Y方向に繰返し表
示した個数をカウントするためのプログラム変数jに"1"を代入し(ステップ3
703)、X方向に繰返し表示した個数カウント用の変数iに"0"を代入する(
ステップ3704)。その後、プログラム変数iの値がX軸方向の繰返し数(ス
テップ3506で求めた)より小さな数値であるか否かを調べ(ステップ370
5)、もし繰返し数以上になっていれば処理を終了し、繰返し数未満なら、さら
にプログラム変数jの値がY軸方向の繰返し数(ステップ3506で求めた)よ
り小さな数値であるか否かを調べる(ステップ3706)。もし繰返し数以上に
なっていれば(ある一列のカラムに対する繰返し表示が終了した時)△xの値を
X軸方向のマージン1つ分3211だけ増やし(ステップ3709)、X軸方向
の繰返し数カウント用の変数iをインクリメントする(ステップ3710)。そ
して、△yに"0"を設定し(ステップ1711)、jにも"0"を代入する(ステ
ップ3711)。これによりX軸方向の次カラムへ処理を進めることになる。そ
の後、ステップ3705へ戻る。また、判定処理3706においてjの値がY軸
方向の繰返し数未満である場合は、基準レコードの先頭番号を基準レコード幅分
だけ加算し(ステップ3605)、その加算結果が示す場所にデータが存在する
か否かを調べる(ステップ3606)。もしデータが存在しなければ処理を終了
する。デ−タが存在すれば現在の基準レコードを対象に繰返し表示を実行する(
ステップ3607)。こうして繰返し部品の一回目の繰返しが行われた後、プロ
グラム変数△yの値を更に1マージン分3210加算し(ステップ3707)、
繰返しのカウンタ変数jをインクリメントして(ステップ3708)、ステップ
3706へ戻り、Y軸方向の次の場所に対する繰返し表示を実行する。こうして
画面上に1頁分の繰返し表示が完了する。
次に、マルチ横繰返しの時の繰返し適用処理手順を図38のフローチャートに
従い説明する。本処理は図37で示したマルチ縦繰返しの処理手順のX軸方向と
Y軸方向の処理を入れ替えたものである。まずX軸方向のマージン値3311を
プログラム変数△xに代入し(ステップ3801)、Y軸方向のマージン値をあ
らわすプログラム変数△yには"0"を代入する(ステップ3802)。そして画
面Y軸方向の繰返し表示個数をカウントするためのプログラム変数jに"0"を代
入し(ステップ3803)、X方向の繰返し個数カウンタ変数iに"1"を代入す
る(ステップ3804)。その後、プログラム変数jの値がY軸方向の繰返し数
(ステップ3506で求めた)より小さいか否かを調べ(ステップ3805)、
もし繰返し数以上になっていれば処理を終了し、繰返し数未満なら、さらにプロ
グラム変数iの値がX軸方向の繰返し数(ステップ3506で求めた)より小さ
いか否かを調べる(ステップ3806)。もしiの値が繰返し数以上になってい
れば(ある一行のカラムに対する繰返し表示が終了した時)△yの値をY軸方向
のマージン1つ分3310だけ増やし(ステップ3809)、Y軸方向の繰返し
数カウント用の変数jをインクリメントする(ステップ3810)。そして△x
に"0"を設定し(ステップ3811)、iにも"0"を代入する(ステップ381
2)。これによりY軸方向の次の行へ処理を進め、その後ステップ3805へ戻
る。また判定処理3806でiの値がX軸方向の繰返し数未満である場合、基準
レコードの先頭番号を基準レコード幅分だけ加算し(ステップ3605)、その
場所にデータが存在するか否かを調べる(ステップ3606)。もしデータが存
在しなければ処理を終了する。存在すれば現基準レコードを対象に繰返し表示を
実行する(ステップ3607)。こうして繰返し部品の一回目の繰返しが行われ
た後、プログラム変数△xの値を更に1マージン分加算し(ステップ3807)
、繰返しのカウンタ変数iをインクリメントして(ステップ3808)、ステッ
プ3806へ戻り、X軸方向の次の場所での繰返し表示を実行する。こうして画
面上に1頁分の繰返し表示が完了する。
次に、ビル窓繰返しの時の繰返し適用処理手順を図39のフローチャートに従
い説明する。本処理は図38で示したマルチ横繰返しの処理手順に更にビル窓内
のY軸方向繰返しの処理を追加したものである。まず窓内Y軸方向のマージン値
3410をプログラム変数△zに代入し(ステップ3901)、X軸方向のマー
ジン値およびY軸方向のマージン値を表わすプログラム変数△x、△yには"0"
を代入する(ステップ3902)。そして画面窓内の繰返し表示個数をカウント
するためのプログラム変数kに"1"を代入し(ステップ3903)、X軸方向の
繰返し個数カウンタ変数iおよびY軸方向の繰返し個数カウンタ変数jに共に"
0"を代入する(ステップ3904)。その後、プログラム変数jの値がY軸方
向の繰返し数(ステップ3507で求めた)より小さいか否かを調べ(ステップ
3905)、もし繰返し数以上になっていれば処理を終了し、繰返し数未満なら
、さらにプログラム変数iの値がX軸方向の繰返し数(ステップ3507で求め
た)より小さいか否かを調べる(ステップ3906)。もし繰返し数以上になっ
ていれば(ある一行のカラムに対する繰返し表示が終了した時)△yの値をY軸
方向のマージン1つ分3411だけ増やし(ステップ3913)、Y軸方向の繰
返し数カウンタ変数jをインクリメントする(ステップ3914)。そして△x
に"0"を設定し、iにも"0"を代入する(ステップ3915)。これによりY軸
方向の次の行へ処理を進める、その後ステップ3905へ戻る。また判定処理3
906でiの値がX軸方向の繰返し数未満である場合、さらにプログラム変数k
が窓内繰返し数より小さいか否かを調べ(ステップ3907)、窓内繰返し数以
上であれば(ある窓内の繰返しが終了した時)、プログラム変数k、および△z
の値を"0"にする(ステップ3910)。そしてX軸方向の次の窓を表示するた
めに△xの値を更に1マージン分3412だけ加算し(ステップ3911)、変
数iをインクリメントし(ステップ3912)、その後ステップ3906へ戻る
。一方、判定処理3907でkの値が窓内繰返し数未満である場合、基準レコー
ドの先頭番号を基準レコード幅分だけ加算し(ステップ3605)、その場所に
データが存在するか否かを調べる(ステップ3606)。もしデータが存在しな
ければ処理を終了する。存在すれば現在の基準レコードを対象に繰返し表示を実
行する(ステップ3916)。本ステップ3916は図40のステップ4006
において、Y軸方向の位置変更で△yだけでなく、△zの値も加えるように変更
することで実現できる。繰返し表示後は△zの値を窓内マージン1つ分3410
だけ加算し(ステップ3908)、変数kの値をインクリメントして(ステップ
3909)、ステップ3907へ戻り、窓内の次の繰返し処理を行う。その結果
、画面上に1頁分の繰返し表示が完了し、アレンジテーブル配置域619にアレ
ンジテーブルが表示される。
以上説明した実施例によれば、単純な2次元形式を有する表データを利用者の
所望するレイアウトに簡単な対話操作で変更できる。その際、対話形式で指定し
て配置する表形式データは、基準レコードの先頭レコードだけでなく、その前後
に存在する任意のレコードも自由に指定できる。
また、元テーブル300のデ−タ内容がそのままの表示形式で、アレンジテー
ブル配置域619へ表示されるので、あたかも直接データを配置する感覚で帳票
作成ができるので、プログラミングをする必要がなく、計算機に不慣れな利用者
でも出力したい帳票を簡単に定義できる。
なお、上記実施例は1頁目について繰返し表示するものであるが、2頁目以降
を表示することも容易に実現できる。この手順を図41のフローチャートに従っ
て説明する。
まず、利用者はキーボード202を用いて表示すべき頁数を入力する(ステッ
プ4101)。次にこの入力頁数分だけ基準レコードを一時的に移動する(ステ
ップ4102)。移動レコード数Nは、
P:入力頁数
X:頁内のX軸方向の繰返し数
Y:頁内のY軸方向の繰返し数
Z:窓内繰返し数
H:基準レコード幅
とした時、
N = (P−1)*X*Y*Z*H (数3)
で計算できる。当初の基準レコード先頭番号にこのNレコードだけ加えた値に一
時的に基準レコード先頭番号を変更するのである。
そして、この新たな基準レコード先頭番号の位置にデ−タが存在するか否かを
調べ(ステップ4103)、存在しなければ入力頁数を元の値に表示しなおし(
ステップ4107)、基準レコード先頭番号を元に戻して(ステップ4108)
処理を終了する。一方、判定処理4103でデ−タが存在する場合、アレンジテ
ーブル配置域619をクリアし(ステップ4104)、既配置部品の部品情報領
域900のうち被繰返し対象フラグ909が"OFF"の部品を、一度だけ表示さ
せる(ステップ4105)。その後、繰返し適用処理を実行して繰返し部品を表
示する(ステップ4106)。本ステップ4106は先に説明したステップ11
0(図36から図39のフローチャート)の繰返し適用処理を次のようにを変更
することで実現する。
図36のフローチャートにおいて、ステップ3601を△yに対して"0"を設
定するようにし、ステップ3603をjに"0"を代入するように変更する。
図37のフローチャートでも、ステップ3701を△yに対して"0"を設定す
るようにし、ステップ3703をjに"0"を代入するように変更する。
図38のフローチャートでは、ステップ3801を△xに対して"0"を設定す
るようにし、ステップ3804をiに"0"を代入するように変更する。
図39のフローチャートでは、ステップ3901を△zに対して"0"を設定す
るようにし、ステップ3903をkに"0"を代入するように変更する。
以上の変更を行うことで指定したページの繰返し表示が可能となる。また、コ
マンドメニュー617、618のページめくり用の領域をマウスで選択した場合
、現在の表示ページから−1あるいは+1ページを表示対象として、図41のフ
ローチャートのステップ4102以降の処理を実行する。その結果、ページ単位
での帳票スクロールが可能となる。
また、これまで説明した実施例は帳票を画面上へ表示するものであったが、こ
れを多少変更することでプリンタ204へ印刷表示できる。この実施例を図42
のフローチャートに従い説明する。本フローチャートは図41フローチャートを
変更して複数ページを連続して表示できるようにしたものである。
まず、表示対象ページを示す変数Pに"1"を設定する(ステップ4201)。
そして、変数Pページ分だけ基準レコード先頭番号を一時的に移動する(ステッ
プ4202)。本ステップ4202における変数Pに対応するレコ−ド数の算出
は、上記に示した(数3)と同様の計算で求められる。そして、この新たな基準
レコード先頭番号の位置に対応デ−タがあるかどうかを調べ(ステップ4103
)、もしなければ基準レコードを元に戻し(ステップ4108)、処理を終了す
る。一方、対応デ−タがあれば、アレンジテーブル配置域619をクリアし(ス
テップ4104)、非繰返し部品を表示し(ステップ4105)、繰返し適用を
実行する(ステップ4106)。その後、アレンジテーブル配置域619へ表示
した内容と同様のものをプリンタ204へ出力する(ステップ4203)。そし
て表示対象ページを次へ進めるために変数Pをインクリメントして(ステップ4
204)、ステップ4202へ戻る。本処理により1ページから順次繰返し適用
処理を実行して、元テーブルデ−タ400のレコードが存在する限り、画面を書
き換えながら、毎画面ごとに印刷ができる。
本発明の帳票作成方法の一実施例を示すフローチャートである。 本発明の一実施例を実現するハードウェアの構成図である。 元テーブル表示用ウィンドウの画面出力例の図である。 元テーブルの構造説明図である。 元テーブル表示先頭位置情報、基準レコード情報格納エリア説明図である。 アレンジウィンドウの画面出力例の図である。 用紙情報領域の説明図である。 繰返し情報領域の説明図である。 部品情報領域の説明図である。 用紙情報領域、繰返し情報領域、部品情報領域の関連の説明図である。 繰返し情報領域の空きリストの説明図である。 部品情報領域の空きリストの説明図である。 元テーブル表示用ウィンドウの表示手順を示すフローチャートである。 元テーブル表示用ウィンドウでのフィールド名表示手順を示すフローチャートである。 元テーブル表示用ウィンドウでのデータ表示手順を示すフローチャートである。 元テーブル表示用ウィンドウでの基準レコード設定手順を示すフローチャートである。 アレンジ情報格納領域の確保と初期化の手順を示すフローチャートである。 アレンジ用ウィンドウへのデータ配置手順を示すフローチャートである。 コマンドメニュー位置テーブルの説明図である。 元テーブル表示用ウィンドウからアレンジ用ウィンドウへのデータ配置手順を示すフローチャートである。 元テーブル表示用ウィンドウ上の指定位置から対応する元テーブルデータを取り出す手順を示すフローチャートである。 アレンジテーブル配置域での表示部品の移動手順を示すフローチャートである。 アレンジテーブル配置域での表示部品の複写手順を示すフローチャートである。 アレンジテーブル配置域での表示部品の消去手順を示すフローチャートである。 アレンジテーブル配置域での罫線描画手順を示すフローチャートである。 アレンジテーブル配置域での固定文字列配置手順を示すフローチャートである。 帳票作成過程でのアレンジテーブル配置域の表示例の図である。 アレンジテーブル配置域での繰返し部品指定手順を示すフローチャートである。 繰返しパラメータ設定画面の画面出力例の図である。 繰返しパラメータ設定手順を示すフローチャートである。 単純繰返しの帳票出力の説明図である。 マルチ縦繰返しの帳票出力の説明図である。 マルチ横繰返しの帳票出力の説明図である。 ビル窓繰返しの帳票出力の説明図である。 繰返し位置入力手順を示すフローチャートである。 単純繰返し適用時の繰返し表示手順を示すフローチャートである。 マルチ縦繰返し適用時の繰返し表示手順を示すフローチャートである。 マルチ横繰返し適用時の繰返し表示手順を示すフローチャートである。 ビル窓繰返し適用時の繰返し表示手順を示すフローチャートである。 一回の繰返しにおける繰返し表示手順を示すフローチャートである。 指定ページの帳票表示手順を示すフローチャートである。 全ページの印刷手順を示すフローチャートである。
符号の説明
201…ディスプレイ装置、202…キーボード入力装置、203…マウス入
力装置、204…プリンタ装置、205…処理装置、206…プログラム格納装
置、207…記憶装置

Claims (7)

  1. 入力装置と出力装置と記憶装置と行カウンタと出力領域とを有し、前記記憶装置に格納した2次元の表形式データにおける指定項目のデータを帳票に出力する帳票作成装置における帳票作成方法において、
    (a)前記表形式データを出力するための前記出力領域を前記帳票に対応付けて前記記憶装置に記憶し
    (b)前記表形式データの特定行を指定する情報と、前記表形式データにおける複数の特定項目を指定する情報と、前記特定項目を前記出力領域に配置する前記出力領域における位置情報とを前記入力装置からそれぞれ入力して前記記憶装置に記憶し
    (c)前記特定項目の前記表形式データにおける項目名と前記データを前記行に配置するための行偏差とを前記入力装置から入力して前記位置情報とともに配置情報として前記記憶装置に記憶し、
    (d)前記出力領域に出力する際、前記行カウンタに特定の行番号を記憶し、前記行カウンタに前記配置情報として記憶された前記行偏差を加えた行における前記項目名に対応するデータを前記位置情報に基づいて対応する前記出力領域の位置に出力し、
    (e)前記行カウンタに予め定められた行数を加え、前記位置情報に予め定められたずらし偏差を加えて、前記ステップ(d)を所定回繰り返すことを特徴とする帳票作成方法。
  2. 前記複数の出力領域への出力結果を、表示装置またはプリンタに出力することを特徴とする請求項1記載の帳票作成方法。
  3. 前記予め定められた行数は、前記入力装置から入力することを特徴とする請求項1または請求項2記載の帳票作成方法。
  4. 前記ステップ(e)における繰り返しは、予め定められた回数である、または、前記出力領域に配置できる繰り返し回数である、または、前記表形式データの末尾行を出力するまで繰り返すことを特徴とする請求項1または請求項2記載の帳票作成方法。
  5. 前記配置情報は前記表形式データの特定出力項目の出力形式を含み、前記データの出力は前記配置情報における出力形式を用いて出力することを特徴とする請求項1記載の帳票作成方法。
  6. 前記予め定められたずらし偏差は、入力装置から入力することを特徴とする請求項1記載の帳票作成方法。
  7. (a)前記表形式データを出力するための前記出力領域を前記帳票に対応付けて前記記憶装置に記憶する手段と、
    (b)前記表形式データの特定行を指定する情報と、前記表形式データにおける複数の特定項目を指定する情報と、前記特定項目を前記出力領域に配置する前記出力領域における位置情報とを前記入力装置からそれぞれ入力して前記記憶装置に記憶する手段と、
    (c)前記特定項目の前記表形式データにおける項目名と前記データを前記行に配置するための行偏差とを前記入力装置から入力して前記位置情報とともに配置情報として前記記憶装置に記憶する手段と、
    (d)前記出力領域に出力する際、前記行カウンタに特定の行番号を記憶し、前記行カウンタに前記配置情報として記憶された前記行偏差を加えた行における前記項目名に対応するデータを前記位置情報に基づいて対応する前記出力領域の位置に出力する手段と、
    (e)前記行カウンタに予め定められた行数を加え、前記位置情報に予め定められたずらし偏差を加えて、前記ステップ(d)を所定回繰り返手段とを備えたことを特徴とする帳票作成装置。
JP2003408408A 2003-12-08 2003-12-08 帳票作成方法 Expired - Lifetime JP3978173B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003408408A JP3978173B2 (ja) 2003-12-08 2003-12-08 帳票作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003408408A JP3978173B2 (ja) 2003-12-08 2003-12-08 帳票作成方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP14026392A Division JP3977874B2 (ja) 1992-06-01 1992-06-01 文書出力方法および装置

Publications (2)

Publication Number Publication Date
JP2004152314A JP2004152314A (ja) 2004-05-27
JP3978173B2 true JP3978173B2 (ja) 2007-09-19

Family

ID=32463971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003408408A Expired - Lifetime JP3978173B2 (ja) 2003-12-08 2003-12-08 帳票作成方法

Country Status (1)

Country Link
JP (1) JP3978173B2 (ja)

Also Published As

Publication number Publication date
JP2004152314A (ja) 2004-05-27

Similar Documents

Publication Publication Date Title
JP2707175B2 (ja) 図形処理システム
JPH10283492A (ja) レイアウト組版方法
JP3978173B2 (ja) 帳票作成方法
JP3977874B2 (ja) 文書出力方法および装置
JP3268029B2 (ja) 手書き入力装置
JP4275808B2 (ja) 文字の割付処理装置
JPH10222689A (ja) 図形表示方法及び装置及び図形表示プログラムを格納した記憶媒体
JPH0635987A (ja) 回路図作成装置および回路図作成方法
JPH08212361A (ja) 図形編集装置および図形編集方法
JPH08202856A (ja) 画像処理方法
JP2009211283A (ja) カーソル管理装置およびコンピュータプログラム
CN106569785A (zh) 一种作业表单生成方法及设备
JP3395347B2 (ja) 文書処理装置
JP2620402B2 (ja) 化学構造データの処理装置及び処理方法
JPH087012A (ja) データの出力様式編集方法および装置
JP3608921B2 (ja) 線画処理方法および装置、並びに、その処理を実行するためのプログラムを記録した記録媒体
JPH05314269A (ja) グラフ作成装置
JP2990764B2 (ja) 文書処理装置
JPH11134375A (ja) Cadシステム、図形処理方法及び図形処理プログラムを記録した記録媒体
Kohen A simple and efficient way to design middle resolution fonts'
JPS63159977A (ja) コンピユ−タによる表の編集方法
JPH06226945A (ja) 数式清書方法
JPH04155468A (ja) 文書作成装置
JPH04248677A (ja) 建築図等における壁または梁の作図方法およびその装置
JPH06342364A (ja) 文字列表示装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040601

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051011

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060216

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060303

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060407

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060512

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070622

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

EXPY Cancellation because of completion of term