(57)【特許請求の範囲】
【請求項１】
階層構造をもつコード情報がコードの昇順に複数個配列され各々のコード情報に対して該コード情報の最下位階層のコード部分に対応する名称部分の文字列が設定される記憶装置上のコードテーブルに関して、該名称部分を最上位階層部分から最下位階層部分までを含む名称に展開して出力する電子計算機による方法において、前記方法は、
（ａ）該コードテーブルからコード情報と対応する名称部分との組を順に読み込むステップと、
（ｂ）先に読み込まれて最後に保存されたコード情報と名称部分との組と同一階層コード部分同士の比較をするステップと、
（ｃ）階層コード部分が一致すれば最後に読み込んだ名称部分の上位に最後に保存された名称部分を結合して出力装置に出力しかつ最後に読み込んだコード情報と結合後の名称部分との組をメモリ上の作業領域に保存してステップ（ａ）に戻るステップと、
（ｄ）階層コード部分が一致しなければ最後に読み込んだコード情報と名称部分との組を前記出力装置に出力しかつ前記作業領域に保存してステップ（ａ）に戻るステップとを有することを特徴とするコードテーブルを出力する方法。
【請求項２】
階層構造をもつコード情報がコードの昇順に複数個配列され各々のコード情報に対して該コード情報の最下位階層のコード部分に対応する名称部分の文字列が設定されるコードテーブル記憶手段と、該コードテーブルを読み込んで該名称部分を最上位階層部分から最下位階層部分までを含む名称に展開して出力する処理手段とを有するコードテーブルを出力する計算機において、
該計算機は、最後に読み込んだコード情報と対応する名称部分との組を格納する第１の作業領域と、最後に保存されたコード情報と名称部分との組を格納する第２の作業領域と、該コードテーブルからコード情報と名称部分との組を順に読み込んで第１の作業領域に格納し、第２の作業領域に保存されたコード情報と名称部分との組と同一階層コード部分同士の比較をして、階層コード部分が一致すれば第１の作業領域中の名称部分の上位に第２の作業領域に保存された名称部分を結合して出力しかつ第１の作業領域中のコード情報と結合後の名称部分との組を第２の作業領域に保存して上記コード情報と名称部分との組の読み込み処理に戻り、階層コード部分が一致しなければ第１の作業領域中のコード情報と名称部分との組を出力しかつ第２の作業領域に保存して上記コード情報と名称部分との組の読み込み処理に戻る処理手段とを有することを特徴とするコードテーブルを出力する計算機。
【請求項３】
階層構造をもつコード情報がコードの昇順に複数個配列され各々のコード情報に対して該コード情報の最下位階層のコード部分に対応する名称部分の文字列が設定されるコードテーブルに関して、該名称部分を最上位階層部分から最下位階層部分までを含む名称に展開して出力させるようコンピュータに実行させるコンピュータプログラムを格納した記憶媒体であって：
（ａ）該コードテーブルからコード情報と対応する名称部分との組を順に読み込むステップと、
（ｂ）先に読み込まれて最後に保存されたコード情報と名称部分との組と同一階層コード部分同士の比較をするステップと、
（ｃ）階層コード部分が一致すれば最後に読み込んだ名称部分の上位に最後に保存された名称部分を結合して出力しかつ最後に読み込んだコード情報と結合後の名称部分との組を保存してステップ（ａ）に戻るステップと、
（ｄ）階層コード部分が一致しなければ最後に読み込んだコード情報と名称部分との組を出力しかつ保存してステップ（ａ）に戻るステップとをコンピュータに実行させるコンピュータプログラムを格納した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コード情報と名称との対応を格納するコードテーブルに係わり、特にコード情報が階層構造をもつものである場合に短縮形に設定された名称部分を展開して出力する装置及び方法に関する。
【０００２】
【従来の技術】
電子計算機が保持するファイルやデータベースに含まれるデータ項目には、コードによって表現されるものが多い。計算機はコード情報と人間が理解可能な名称との対応を示すコードテーブルを保持し、このコードテーブルを表示装置上に表示し、入力装置を介して指示された名称を対応するコードに変換してデータ入力する。このようなコードが階層構造をもつものである場合に、コードテーブルの名称部分について最上位階層から最下位階層までフルスペルの名称を保持する方法と、最下位階層の名称部分のみを短縮して保持する方法とがある。
【０００３】
図４は、企業の部署名のように階層構造をもつコードと所属名称との対応を格納するコードテーブルの例を示す図である。６１は所属コードであり、各階層２桁×３階層で表現する階層コードである。６２は各所属コード６１に対応する所属名称であり、所属名称がフルスペルで表現されている。
【０００４】
図５（ａ）は、図４と同じ部署名のコードテーブルであるが、所属名称を最下位階層部分で表現するコードテーブルの例を示す図である。２１は所属コード６１と同じコードであるが、コードは階層の昇順になるように配列されている。２２は最下位階層のコード部分に対応する名称部分の文字列を保持する所属名称である。図５（ｂ）は、表示装置上に表示されるコードテーブルのうち所属名称２２に対応する表示内容２３であり、所属名称がフルスペル（完全形）で表示される。
【０００５】
図４に示すようなコードテーブルを表示装置上に表示する場合、テーブルの内容をそのまま表示すればよい。しかしテーブルが大きくなり多くの記憶領域を占有することと、上位階層部分に変更があったとき同じ上位階層部分を冠するすべての所属名称を変更しなければならないという欠点がある。図５（ａ）に示すようなコードテーブルはテーブルが小さくて済み、上位階層部分に変更があったときその部分を表現する所属名称のみを変更すればよい。しかしコードテーブルを展開して表示装置上に表示するとき、所属名称２２を表示内容２３に変換しなければならない。
【０００６】
図６は、所属名称２２を表示内容２３に変換する計算機プログラムの処理の流れを示すフローチャートである。プログラムはまずテーブルデータの１行分を読み込み（ステップ５１）、読み込んだデータを主記憶上のワークエリアに格納する（ステップ５２）。次に読み込んだデータの所属コード２１を調べて上位階層が存在するか否かを判定する（ステップ５３）。上位階層があれば、その上位階層部分をキーとしてコードテーブルをアクセスし、対応する所属名称２２を取得する（ステップ５４）。次にワークエリアに格納された所属名称の上位に取得した所属名称を結合し（ステップ５５）、ステップ５３に戻る。このようにして上位階層がなくなるまでステップ５４及び５５の処理を繰り返し、上位階層がなくなったとき（ステップ５３ＮＯ）、ワークエリアの内容を表示装置上に出力し（ステップ５６）、ワークエリアの内容をクリアしてステップ５１へ行く。このようにしてコードテーブルのすべての行について処理が終了するまで上記処理を繰り返す。
【０００７】
例えば図５のコードテーブルの３行目のデータは、所属コード２１が「０１０１０１」であり、所属名称２２が「○○係」である。その上位階層部分は「０１０１」であり、この所属コード２１によってコードテーブルを検索して所属名称２２の「庶務課」を取得する。さらに「０１０１」の上位階層部分は「０１」であり、この所属コード２１によってコードテーブルを検索して所属名称２２の「総務部」を取得する。ワークエリア上でこれらの所属名称２２を結合して「総務部庶務課○○係」を得る。
【０００８】
図６に示す処理手順によると、１階層部分だけをもつ所属コード２１はコードテーブルを１回検索し、２階層部分をもつ所属コード２１はコードテーブルを２回検索し、３階層部分をもつ所属コード２１は３回の検索を必要とするので、コードテーブル全体の所属名称２２を表示内容２３に展開するために必要なコードテーブルの検索回数は、各所属コード２１のもつ階層部分数の総和となる。コードテーブルをディスクのような外部記憶装置上に格納するときには、この検索回数だけのディスクサーチとデータの読み込みが必要となる。データベース管理プログラムにはデータの先読み機能を備えているものがあるが、一度検索した後方の所属コード２１を再度検索するため先読み機能が有効に働かない場合がある。コードテーブルの大きさによってはあらかじめコードテーブルを主記憶に読み込んでおき、主記憶上でデータ検索することが可能であるが、その場合もバイナリサーチのような手法を用いるか別にインデックステーブルを設けて検索を高速化する必要があり、それでも検索のためにＣＰＵ時間がかかる。
【０００９】
【発明が解決しようとする課題】
以上述べたように、従来技術によれば上記のようなコードテーブルを展開し一覧表として出力する場合にコードテーブルをランダムアクセスするようなアクセス形態となり、データベース管理プログラムのもつデータの先読み機能を生かせず、コードテーブルの検索に時間がかかる。このためコードテーブルを表示装置上に表示するまでに時間がかかり、データ入力作業中のオペレータを待たせるという問題がある。
【００１０】
本発明の目的は、コードに対応する名称として最下位層の名称部分を保持するコードテーブルの名称部分を展開し一覧表として表示する場合に、表示するまでの時間を短縮することにある。
【００１１】
【課題を解決するための手段】
本発明は、階層構造をもつコード情報がコードの昇順に複数個配列され各々のコード情報に対してコード情報の最下位階層のコード部分に対応する名称部分の文字列が設定されるコードテーブルに関して、名称部分を最上位階層部分から最下位階層部分までを含む名称に展開して出力する方法において、下記ステップをもつコードテーブル出力方法を特徴とする。
【００１２】
（ａ）コードテーブルからコード情報と対応する名称部分との組を昇順に読み込み、
（ｂ）先に読み込まれて最後に保存されたコード情報と名称部分との組と同一階層コード部分同士の比較をして、
（ｃ）階層コード部分が一致すれば最後に読み込んだ名称部分の上位に最後に保存された名称部分を結合して出力しかつ最後に読み込んだコード情報と結合後の名称部分との組を保存してステップ（ａ）に戻り、
（ｄ）階層コード部分が一致しなければ最後に読み込んだコード情報と名称部分との組を出力しかつ保存してステップ（ａ）に戻る。
【００１３】
また上記の方法を処理手段として有する計算機を特徴とする。さらに上記の方法をコンピュータ読み取り可能な記憶媒体上に実体化されたコンピュータプログラムを特徴とする。
【００１４】
【発明の実施の形態】
以下本発明の一実施形態について図面を用いて説明する。
【００１５】
図１は、本実施形態の電子計算機の構成図である。１はワークステーションやパーソナルコンピュータのような計算機の処理装置である。１５はデータを入力したり入力データを指示するための入力装置であり、キーボード１５１やマウス１５２を含む。１６はコードテーブルを一覧表として出力するための出力装置であり、プリンタ１６１やディスプレイ１６２を含む。１２はプロセッサである。１３は磁気ディスク記憶装置などの外部記憶装置であり、外部記憶装置１３上にテーブル１３１と処理プログラム１３２を格納する。テーブル１３１は所属コード２１と所属名称２２から成るコードテーブルであり、そのコードは階層の昇順に配列されているものとする。処理プログラム１３２は以下に説明する処理を実行するプログラムである。１４は主記憶（メモリ）であり、処理プログラム１３２を格納するとともに処理プログラム１３２の実行に必要なワークエリア（作業領域）１４１及びデータ格納エリア１４２を設ける。１１は処理装置１に外部記憶装置１３、入力装置１５及び出力装置１６を接続するためのインタフェースである。
【００１６】
図２は、データ格納エリア１４２のデータ構成を示す図である。データ格納エリア１４２は、所属コード格納領域４１及び名称格納領域４２を有する作業領域である。所属コード格納領域４１は所属コード２１の格納領域であり、最上位層コード部分から最下位層コード部分までを順に格納する。名称格納領域４２は最上位層コード部分から最下位層コード部分までに対応して名称部分を格納する。本実施形態では、各層２桁×３階層であるため、所属コード格納領域４１及び名称格納領域４２は３階層分の領域が確保されている。
【００１７】
図３は、処理プログラム１３２の処理の流れを示すフローチャートである。処理プログラム１３２は、まずデータ格納エリア１４２を初期化する（ステップ３１）。次にテーブル１３１からエントリの配列順に１行分のデータを読み込み（ステップ３２）、読み込んだデータをワークエリア１４１に格納する。（ステップ３３）。次に最後に保存されたデータ格納エリア１４２の所属コード格納領域４１とワークエリア１４１の所属コード２１とを同一階層コード部分同士について比較し（ステップ３４）、階層コード部分が一致するか否かを判定する（ステップ３５）。同一コード部分があれば（ステップ３５ＹＥＳ）、ワークエリア１４１中に最後に読み込まれた所属名称２２の先頭に名称格納領域４２の名称部分を付加するように結合し（ステップ３６）、ワークエリア１４１の内容をディスプレイ１６２などの出力装置１６上に出力する（ステップ３７）。次にワークエリア１４１の所属コード２１及び所属名称２２をそれぞれデータ格納エリア１４２の所属コード格納領域４１及び名称格納領域４２に格納する（ステップ３８）。同一コード部分がなければ（ステップ３５ＮＯ）、ステップ３７，３８の処理を行う。このようにしてテーブル１３１のすべての行について処理が終了するまでステップ３２に戻って上記処理を繰り返す。
【００１８】
例えばテーブル１３１の最初の行を読み込んだとき、データ格納エリア１４２は初期化された状態のため、データ格納エリア１４２とワークエリア１４１の内容に一致するものはなく、ワークエリア１４１の内容をそのまま出力し、ワークエリア１４１の内容をデータ格納エリア１４２に格納する。次にテーブル１３１の２行目を読み込んだとき、データ格納エリア１４２の所属コード格納領域４１とワークエリア１４１の所属コード２１は最初の２桁が同じ「０１」で一致するため、名称格納領域４２中の「総務部」と所属名称２２の「庶務課」をワークエリア１４１上で結合し、所属コード２１が「０１０１」、所属名称２２が「総務部庶務課」を得る。次にワークエリア１４１上のデータを出力装置１６上に出力するとともにデータ格納エリア１４２に格納する。
【００１９】
なお所属コード２１を構成する各階層のコード部分の桁数は任意である。また上位階層の存在しないような所属についても本発明を適用できる。例えば「○○課××係」のように「部」が存在しなくとも所属コード２１の部の階層に他の部コードと区別するようなダミーのコードが置かれ所属コード２１がユニークに設定されていれば上記処理手順によってコードテーブルの正しい一覧表を出力することができる。また「○○部△△係」のように「課」が存在しない場合も同様である。
【００２０】
上記実施形態によればテーブル１３１の一覧表を作成するためにテーブル１３１をアクセスする回数はテーブル１３１のエントリ数だけとなり、しかもシーケンシャルアクセスのためデータベース管理プログラムのもつデータの先読み機能が有効に働き、テーブル１３１をディスプレイ１６２に表示するまでの時間を短縮することができる。
【００２１】
【発明の効果】
以上述べたように本発明によれば、コードテーブルをシーケンシャルに１回アクセスするだけでコードテーブルの短縮形の名称部分を完全形の名称に展開して出力するので、コードテーブルの表示要求を受けてから一覧表を表示するまでのオペレータの待ち時間を短縮できる。
【図面の簡単な説明】
【図１】実施形態の計算機の構成図である。
【図２】実施形態のデータ格納エリア１４２のデータ構成を示す図である。
【図３】実施形態の処理プログラム１３２の処理の流れを示すフローチャートである。
【図４】コードテーブルの例を示す図である。
【図５】コードテーブルの他の例を示す図である。
【図６】従来のテーブル展開処理の流れを示すフローチャートである。
【符号の説明】
１３１：テーブル、１３２：処理プログラム、１４１：ワークエリア、１４２：データ格納エリア
【図１】
0003581781.tif 000002
【図２】
0003581781.tif 000003
【図３】
0003581781.tif 000004
【図４】
0003581781.tif 000005
【図５】
0003581781.tif 000006
【図６】
0003581781.tif 000007