(57)【特許請求の範囲】
【請求項１】
組織を構成する各部署に対応した階層組織関係を示す階層情報を含む部署情報を記憶する所属テーブルファイルと、
上記各部署に所属する各社員毎に、その社員の所属する部署情報を含む社員情報を記憶する社員マスタファイルと、
組織図のイメージデータを所属部署毎にブロック単位で展開するメモリエリアを形成するイメージメモリと、
上記所属テーブルファイルと上記社員マスタファイルとを参照し、上記各部署毎に、その部署を示す部署名とその部署に所属する各社員の社員名とその部署の上位階層部署とを含む階層表を、階層表メモリ上に作成する階層表作成手段と、
上記階層表メモリを参照し、上記各部署毎に、その部署を示す部署名とその部署に所属する各社員の社員名とを含むブロックイメージを生成し、その各部署毎のブロックイメージをその部署の階層組織関係で決まる位置に配置した組織図を上記イメージメモリ上に作成する作成手段と、
上記各部署毎にその部署名とその部署に所属する各社員の社員名とが階層組織関係で配置された組織図に対する再配置の指示がなされた際は、上記イメージメモリ上の下位階層の各部署のブロックイメージの配置位置に空きがあるか否かを判別する第１判別手段と、
上記空きがあれば、その空き位置への同一階層の隣位置の部署のブロックイメージによる詰め移動が可能かどうかを、上記階層表メモリを参照して、その隣位置に配置される部署の上位階層部署が複数の下位部署を含むか否かに基づいて判別する第２判別手段と、
上記詰め移動が可能であれば、その空き位置を埋める方向で上記組織図上での上記下位階層での各部署のブロックイメージの配置位置を再配置した組織図を上記イメージメモリ上に再作成する再作成手段と、
上記作成手段あるいは上記再作成手段に基づいて、上記階層組織関係で決まる各部署の配置位置に部署名とその部署に所属する各社員名とが配置あるいは再配置されて上記イメージメモリ上に作成された組織図を出力する出力手段と、
を具備したことを特徴とする組織図作成装置。
【請求項２】
組織を構成する各部署に対応した階層組織関係を示す階層情報を含む部署情報を記憶する所属テーブルファイルと、
上記各部署に所属する各社員毎に、その社員の所属する部署情報を含む社員情報を記憶する社員マスタファイルと、
組織図のイメージデータを所属部署毎にブロック単位で展開するメモリエリアを形成するイメージメモリと、
上記所属テーブルファイルと上記社員マスタファイルとを参照し、上記各部署毎に、その部署を示す部署名とその部署に所属する各社員の社員名とその部署の上位階層部署とを含む階層表を、階層表メモリ上に作成する階層表作成手段と、
上記階層表メモリを参照し、上記各部署毎に、その部署を示す部署名とその部署に所属する各社員の社員名とを含むブロックイメージを生成し、その各部署毎のブロックイメージをその部署の階層組織関係で決まる位置に配置した組織図を上記イメージメモリ上に作成する作成手段と、
上記各部署毎にその部署名とその部署に所属する各社員の社員名とが階層組織関係で配置された組織図に対する第１の再配置の指示がなされた際は、上記イメージメモリ上の各部署のブロックイメージの配置位置の間に空きがあるか否かを判別し、空きがあれば、その空き位置への同一階層の隣位置の部署のブロックイメージによる詰め移動が可能かどうかを、上記階層表メモリを参照して、その隣位置に配置される部署の上位階層部署が複数の下位部署を含むか否かに基づいて判別し、上記詰め移動が可能であれば、その空きの位置に同一階層の他の部署のブロックイメージを移動する方向で各部署のブロックイメージを再配置した組織図に変更する第１変更手段と、
上記各部署毎にその部署名とその部署に所属する各社員の社員名とが階層組織関係で配置された組織図に対する第２の再配置の指示がなされた際は、上記イメージメモリ上の最下位層の各部署の内で上位階層が同一で複数の部署のブロックイメージが配置される位置を検出し、その最下位層の各部署のブロックイメージの配置位置を上下交互にずらしてその横方向の間隔を狭めることにより各部署のブロックイメージを再配置した組織図に変更する第２変更手段と、
上記作成手段あるいは上記各変更手段に基づいて、上記階層組織関係で決まる各部署の配置位置に部署名とその部署に所属する各社員名とが配置あるいは再配置されて上記イメージメモリ上に作成された組織図を出力する出力手段と、
を具備したことを特徴とする組織図作成装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、組織図等の階層構造を持つ図を描画する際に、その図の出力領域の空白部分を少なくするように階層図を作成する階層図作成装置に関する。
【０００２】
【従来の技術】
従来、社内組織図等の階層構造を持つ図を描画する際には、その社内組織の構成要素となる部署、構成員等とその部署単位の階層関係に基づいて、部署毎にブロック単位で構成員が階層的に配置されるとともに、各部署の階層関係が明確になるように部署ブロックが階層的に配置されて組織図が作成されている。
また、この社内組織図の描画に際して、同一階層の部署が複数有る場合は、その複数の部署ブロックが同一階層位置に並列に配置されている。
【０００３】
このような階層図を作成する際の構成要素ブロックの配置形態は、上記社内組織図に限らず他の階層構造を持つ組織の構成要素ブロックを配置する場合についても同様に適用される。
【０００４】
【発明が解決しようとする課題】
しかしながら、このような従来の社内組織図等の階層構造を持つ図を描画する際には、同一階層の構成要素が複数有る場合は、その複数の構成要素ブロックが同一階層位置に並列に配置されるようになっていたため、その並列に配置された構成要素ブロック間には空白部分が形成されて、階層図を展開した描画領域が有効に利用されていないという問題点があった。
【０００５】
本発明の課題は、社内組織図等の階層構造を持つ図を描画する際に、同一階層の複数の構成要素を配置する際の空白部分を少なくするように階層図を作成する階層図作成装置を提供することである。
【０００６】
【課題を解決するための手段】
請求項１の発明は、組織を構成する各部署に対応した階層組織関係を示す階層情報を含む部署情報を記憶する所属テーブルファイルと、上記各部署に所属する各社員毎に、その社員の所属する部署情報を含む社員情報を記憶する社員マスタファイルと、組織図のイメージデータを所属部署毎にブロック単位で展開するメモリエリアを形成するイメージメモリと、上記所属テーブルファイルと上記社員マスタファイルとを参照し、上記各部署毎に、その部署を示す部署名とその部署に所属する各社員の社員名とその部署の上位階層部署とを含む階層表を、階層表メモリ上に作成する階層表作成手段と、上記階層表メモリを参照し、上記各部署毎に、その部署を示す部署名とその部署に所属する各社員の社員名とを含むブロックイメージを生成し、その各部署毎のブロックイメージをその部署の階層組織関係で決まる位置に配置した組織図を上記イメージメモリ上に作成する作成手段と、上記各部署毎にその部署名とその部署に所属する各社員の社員名とが階層組織関係で配置された組織図に対する再配置の指示がなされた際は、上記イメージメモリ上の下位階層の各部署のブロックイメージの配置位置に空きがあるか否かを判別する第１判別手段と、上記空きがあれば、その空き位置への同一階層の隣位置の部署のブロックイメージによる詰め移動が可能かどうかを、上記階層表メモリを参照して、その隣位置に配置される部署の上位階層部署が複数の下位部署を含むか否かに基づいて判別する第２判別手段と、上記詰め移動が可能であれば、その空き位置を埋める方向で上記組織図上での上記下位階層での各部署のブロックイメージの配置位置を再配置した組織図を上記イメージメモリ上に再作成する再作成手段と、上記作成手段あるいは上記再作成手段に基づいて、上記階層組織関係で決まる各部署の配置位置に部署名とその部署に所属する各社員名とが配置あるいは再配置されて上記イメージメモリ上に作成された組織図を出力する出力手段とを具備したことを特徴とする。
【０００７】
請求項２の発明は、組織を構成する各部署に対応した階層組織関係を示す階層情報を含む部署情報を記憶する所属テーブルファイルと、上記各部署に所属する各社員毎に、その社員の所属する部署情報を含む社員情報を記憶する社員マスタファイルと、組織図のイメージデータを所属部署毎にブロック単位で展開するメモリエリアを形成するイメージメモリと、上記所属テーブルファイルと上記社員マスタファイルとを参照し、上記各部署毎に、その部署を示す部署名とその部署に所属する各社員の社員名とその部署の上位階層部署とを含む階層表を、階層表メモリ上に作成する階層表作成手段と、上記階層表メモリを参照し、上記各部署毎に、その部署を示す部署名とその部署に所属する各社員の社員名とを含むブロックイメージを生成し、その各部署毎のブロックイメージをその部署の階層組織関係で決まる位置に配置した組織図を上記イメージメモリ上に作成する作成手段と、上記各部署毎にその部署名とその部署に所属する各社員の社員名とが階層組織関係で配置された組織図に対する第１の再配置の指示がなされた際は、上記イメージメモリ上の各部署のブロックイメージの配置位置の間に空きがあるか否かを判別し、空きがあれば、その空き位置への同一階層の隣位置の部署のブロックイメージによる詰め移動が可能かどうかを、上記階層表メモリを参照して、その隣位置に配置される部署の上位階層部署が複数の下位部署を含むか否かに基づいて判別し、上記詰め移動が可能であれば、その空きの位置に同一階層の他の部署のブロックイメージを移動する方向で各部署のブロックイメージを再配置した組織図に変更する第１変更手段と、上記各部署毎にその部署名とその部署に所属する各社員の社員名とが階層組織関係で配置された組織図に対する第２の再配置の指示がなされた際は、上記イメージメモリ上の最下位層の各部署の内で上位階層が同一で複数の部署のブロックイメージが配置される位置を検出し、その最下位層の各部署のブロックイメージの配置位置を上下交互にずらしてその横方向の間隔を狭めることにより各部署のブロックイメージを再配置した組織図に変更する第２変更手段と、上記作成手段あるいは上記各変更手段に基づいて、上記階層組織関係で決まる各部署の配置位置に部署名とその部署に所属する各社員名とが配置あるいは再配置されて上記イメージメモリ上に作成された組織図を出力する出力手段とを具備したことを特徴とする。
【００１１】
【実施例】
以下、図１〜図１３を参照して本発明の実施例を詳細に説明する。
図１〜図１３は、本発明を適用したコンピュータシステムの一実施例を示す図である。
まず、構成を説明する。
図１は、本実施例のコンピュータシステム１の要部ブロック構成図である。
【００１２】
この図１において、コンピュータシステム１は、ＣＰＵ２、キー入力部３、ポインティングデバイス４、ＲＯＭ５、ＲＡＭ６、組織図作成処理部７、ファイルメモリ８、イメージメモリ９、印刷部１０及び表示部１１により構成されており、各部はバス１２に接続されている。
【００１３】
ＣＰＵ（Central Processing Unit ）２は、ＲＯＭ５に格納されている各種制御プログラムに従ってコンピュータシステム１内の各部を制御して各種情報処理を実行し、その処理過程及び処理結果を表示部１１に表示させる。また、ＣＰＵ２は、後述する組織図表示処理に際して組織図作成処理部７により階層表作成処理及び階層イメージ展開処理を実行させて、ファイルメモリ８内の所属テーブルファイル８ａ及び社員マスタファイル８ｂに格納された組織に係る各種データに基づいて階層表を作成させてイメージメモリ９に展開させた後、その作成した組織階層図を表示部１１に表示させるとともに、キー入力部３によるキー入力操作により再配置指定が指示されると、後述する再配置処理１あるいは再配置処理２を実行することにより、同一階層の複数のブロックを空白部分が少なくなるように再配置した組織階層図を表示部１１に表示させる。
【００１４】
キー入力部３は、カーソルキー、数字入力キー及び各種機能キー等を備え、押下されたキーの押下信号をＣＰＵ２に出力する。ポインティングデバイス４は、キー入力部３の入力補助を行うポインティングデバイスであり、操作信号をＣＰＵ２に出力する。
【００１５】
ＲＯＭ（Read Only Memory）５は、ＣＰＵ２より実行される各種制御プログラムを格納するとともに、組織図表示処理プログラム及びその組織図表示処理に際して組織図作成処理部７により実行される階層表作成処理プログラム及び階層イメージ展開処理プログラムを格納し、後述する再配置処理１プログラム及び再配置処理２プログラムを格納する。ＲＡＭ（Random Accesss Memory ）６は、ＣＰＵ２が上記各種処理プログラムを実行する際に各種データを展開するメモリ領域を形成する。
【００１６】
組織図作成処理部７は、ＣＰＵ２により組織図表示処理が実行される際に、後述する階層表作成処理及び階層イメージ展開処理を実行して、ファイルメモリ８内の所属テーブルファイル８ａ及び社員マスタファイル８ｂに格納された組織に係る各種データに基づいて階層表を作成して階層表メモリ７ａに格納し、この階層表メモリ７ａに格納した階層表に基づいて階層図イメージデータを階層数カウンタ７ｂを利用してイメージメモリ９に展開した後、その展開した組織階層図イメージを表示部１１に表示する。
【００１７】
ファイルメモリ８は、図１に示すように所属テーブルファイル８ａと社員マスタファイル８ｂを格納する。この所属テーブルファイル８ａは、図２に示すように組織の構成要素である所属部署に係る各種情報を組織の階層構造と関連付けて格納するテーブルであり、所属コード、所属名、上位所属コード（当該所属部署が直属する上位部署コード）、階層番号（階層位置を示す）及び所属長社員番号の各情報を関連づけて記憶している。また、この社員マスタファイル８ｂは、図３に示すように所属部署の社員に係る各種情報を所属テーブルファイル８ａの所属コードと関連付けて格納するマスタファイルであり、社員番号、氏名、所属コード、個人情報として役職、入社年月日、年齢及び家族の各情報を関連付けて記憶している。
【００１８】
イメージメモリ９は、組織図作成処理部７により作成された組織処理図のイメージデータを所属部署毎にブロック単位で展開するメモリエリアを形成する。印刷部１０は、ＣＰＵ２から入力される印字データを所定の記録紙に印字して出力し、表示部１１は、ＣＲＴ（Cathode Ray Tube）等により構成され、ＣＰＵ２から入力される表示データを表示する。
【００１９】
次に、本実施例の動作を説明する。
本実施例のコンピュータシステム１により実行される組織図表示処理について図４に示すフローチャートに基づいて説明する。
図４において組織図表示処理を開始すると、まず、組織図作成処理部７によりファイルメモリ８内の所属テーブルファイル８ａ及び社員マスタファイル８ｂに格納された組織に係る各種データに基づいて階層表作成処理を実行する（ステップＳ１）。この階層表作成処理について図５に示すフローチャートに基づいて説明する。
【００２０】
まず、階層表メモリ７ａに展開する図６に示す階層表の１行目を指定し（ステップＳ１０１）、上位所属コードのない所属コードを図２に示した所属テーブルファイル８ａから検索し、その検索した所属コードをＲＡＭ６内のレジスタＳＨＯに格納する（ステップＳ１０２）。図２の所属テーブルファイル８ａの場合は、所属コード１００が上位所属コードのない所属コードに該当するため、この所属コード１００がレジスタＳＨＯに格納される。
【００２１】
次いで、そのレジスタＳＨＯに格納した所属コード１００の階層番号“１”及び所属名“時計事業部”を所属テーブルファイル８ａから読み出し、その読み出した各データをステップＳ１０１で指定した図６に示す階層表の１行目にセットする（ステップＳ１０３）。次いで、所属テーブルファイル８ａの該当する所属長社員番号０１００に基づいて図３に示した社員マスタファイル８ｂを参照し、所属長氏名“Ａ”を図６の階層表の指定行の１行目にセットする（ステップＳ１０４）。
【００２２】
次いで、図６の階層表の次行である２行目を指定し（ステップＳ１０５）、社員マスタファイル８ｂに同一所属の社員データが他に有るか否かをチェックする（ステップＳ１０６）。同一所属の社員データが有る場合は、該当社員データの氏名を社員マスタファイル８ｂから読み出してステップＳ１０５で指定した階層表の２行目にセットして（ステップＳ１０７）、ステップＳ１０５に戻る。
【００２３】
また、同一所属の社員データがない場合は、図３の社員マスタファイル８ｂでは同一所属コード１００の社員データが他にないため、ステップＳ１０２でＲＡＭ６内のレジスタＳＨＯに格納した所属コード１００を上位所属とする未検索の所属コードを所属テーブルファイル８ａから検索し（ステップＳ１０８）、その検索結果により該当する所属コードが有るか否かを判別する（ステップＳ１０９）。該当する所属コードがない場合は、ＲＡＭ６内のレジスタＳＨＯに格納した所属コード１００の上位所属コードを所属テーブルファイル８ａから検索し（ステップＳ１１０）、その検索結果により該当する所属コードが有るか否かを判別する（ステップＳ１１１）。
【００２４】
該当する所属コードがない場合は、本処理を終了し、該当する所属コードが有る場合は、その検索した所属コードをＲＡＭ６内のレジスタＳＨＯに格納して（ステップＳ１１２）、ステップＳ１０８に戻る。
また、ステップＳ１０９において、該当する所属コードが有る場合、すなわち、図２の所属テーブルファイル８ａでは、所属コード１００を上位所属とする所属コード１１０が２行目に有るため、その該当所属コード１１０をＲＡＭ６内のレジスタＳＨＯに格納して（ステップＳ１１３）、ステップＳ１０３に戻る。
【００２５】
ステップＳ１０３に戻り、ステップＳ１１３でレジスタＳＨＯに格納した所属コード１１０の階層番号“２”及び所属名“開発部”を所属テーブルファイル８ａから読み出し、その読み出した各データを上記ステップＳ１０５で指定した図６の階層表の２行目にセットする。次いで、所属テーブルファイル８ａの該当する所属長社員番号０５０１に基づいて図３の社員マスタファイル８ｂを参照し、所属長氏名“Ｂ”を図６の階層表の指定行の２行目にセットする（ステップＳ１０４）。その結果、図６の階層表の２行目に示すようにデータが展開される。
【００２６】
次いで、図６の階層表の次行である３行目を指定し（ステップＳ１０５）、社員マスタファイル８ｂに同一所属１１０の社員データが他に有るか否かをチェックする（ステップＳ１０６）。図３の社員マスタファイル８ｂには同一所属１１０の社員データが他にないため、上記ステップＳ１１３でＲＡＭ６内のレジスタＳＨＯに格納した所属コード１１０を上位所属とする未検索の所属コードを所属テーブルファイル８ａから検索し（ステップＳ１０８）、その検索結果により該当する所属コードが有るか否かを判別する（ステップＳ１０９）。
【００２７】
図２の所属テーブルファイル８ａには所属コード１１０を上位所属とする所属コード１１１が有るため、その所属コード１１１をＲＡＭ６内のレジスタＳＨＯに格納して（ステップＳ１１３）、ステップＳ１０３に戻る。ステップＳ１０３に戻り、ステップＳ１１３でレジスタＳＨＯに格納した所属コード１１１の階層番号“３”及び所属名“開発課”を所属テーブルファイル８ａから読み出し、その読み出した各データを上記ステップＳ１０５で指定した図６の階層表の３行目にセットする。次いで、所属テーブルファイル８ａの該当する所属長社員番号１２０１に基づいて図３の社員マスタファイル８ｂを参照し、所属長氏名“Ｅ”を図６の階層表の指定行の３行目にセットする（ステップＳ１０４）。その結果、図６の階層表の３行目に示すようにデータが展開される。
【００２８】
次いで、図６の階層表の次行である４行目を指定し（ステップＳ１０５）、社員マスタファイル８ｂに同一所属の社員データが他に有るか否かをチェックする（ステップＳ１０６）。図３の社員マスタファイル８ｂには同一所属１１１の社員データとして社員番号２５０１が有るため、その該当社員データの氏名“Ｉ”を図６の階層表の４行目にセットし（ステップＳ１０７）、ステップＳ１０５に戻る。
【００２９】
ステップＳ１０５に戻り、図６の階層表の次行の５行目を指定し、社員マスタファイル８ｂに同一所属の社員データが他に有るか否かをチェックする（ステップＳ１０６）。図３の社員マスタファイル８ｂには同一所属１１１の社員データとして、さらに社員番号２５０２が有るため、その該当社員データの氏名“Ｊ”を図６の階層表の５行目にセットし（ステップＳ１０７）、ステップＳ１０５に戻る。
【００３０】
ステップＳ１０５に戻り、図６の階層表の次行の６行目を指定し、社員マスタファイル８ｂに同一所属の社員データが他に有るか否かをチェックする（ステップＳ１０６）。図３の社員マスタファイル８ｂには同一所属１１１の社員データとして上記社員番号２５０１、２５０２以外にないため、上記ステップＳ１１３でＲＡＭ６内のレジスタＳＨＯに格納した所属コード１１１を上位所属とする未検索の所属コードを所属テーブルファイル８ａから検索し（ステップＳ１０８）、その検索結果により該当する所属コードが有るか否かを判別する（ステップＳ１０９）。
【００３１】
図２の所属テーブルファイル８ａには所属コード１１１を上位所属とする所属コードがないため、レジスタＳＨＯに格納した所属コード１１１の上位所属コードを所属テーブルファイル８ａから検索し（ステップＳ１１０）、その検索結果により該当する所属コードが有るか否かを判別する（ステップＳ１１１）。所属コード１１１の上位所属コードとして所属コード１１０が有るため、その所属コード１１０をレジスタＳＨＯに格納し（ステップＳ１１２）、ステップＳ１０８に戻る。
【００３２】
そして、ステップＳ１０８〜ステップＳ１１２の処理を繰り返すことにより、レジスタＳＨＯに所属コード１００を格納すると、ステップＳ１０８、Ｓ１０９で所属コード１００を上位所属とする未検索の所属コードとして、所属コード１２０を図２の所属テーブルファイル８ａから検索し、その所属コード１２０をレジスタＳＨＯに格納してステップＳ１０３に戻る。
【００３３】
そして、上記ステップＳ１０３〜ステップＳ１０７を繰り返し実行されることにより、図６の階層表において７行目、８行目に所属コード１２０に係るデータとして階層番号“２”、上位階層“１”、所属名“設計部”、所属長名“Ｃ”及び所属員名“Ｋ”が展開される。
【００３４】
さらに、上記ステップＳ１０３〜ステップＳ１１３が繰り返し実行されることにより、図６の階層表において９行目以降の各データが、図２の所属テーブルファイル８ａ及び図３の社員マスタファイル８ｂに基づいて展開されて、階層表作成処理が終了する。
【００３５】
この階層表作成処理が終了すると、図４の階層図表示処理においてステップＳ１からステップＳ２の階層イメージ展開処理に進む。
この組織図作成処理部７により実行される階層イメージ展開処理について図７に示すフローチャートに基づいて説明する。
【００３６】
まず、階層イメージを展開する位置を設定する際に利用する階層数カウンタ７ｂの横方向カウンタｍに“１”をセットし、縦方向カウンタｎに“０”をセットする（ステップＳ２０１）。次いで、図６の階層表の先頭ブロックを指定し（ステップＳ２０２）、その指定ブロックの階層番号が上記縦方向カウンタｎにセットした数値より大きいか否かを判定する（ステップＳ２０３）。
【００３７】
この場合、図６の階層表の先頭ブロックの階層番号は“１”であり、ステップＳ２０１でセットした縦方向カウンタｎの数値“０”より大きいため、その指定した先頭ブロックの階層番号１を縦方向カウンタｎにセットする（ステップＳ２０４）。そして、その指定した図６の階層表の階層番号１に該当するブロックに展開されたデータ（所属名：時計事業部、所属長名：Ａ）に基づいてブロックイメージを生成し（ステップＳ２０５）、イメージメモリ９内の図８に示すような階層イメージ展開エリアにおいて座標（１，１）の展開ブロック位置に、階層番号１ブロックから生成したブロックイメージをセットする（ステップＳ２０６）。
【００３８】
このイメージメモリ９内の図８に示す階層イメージ展開エリアは、階層数カウンタ７ｂ内の縦方向カウンタｍと横方向カウンタｎによりカウントされるカウント数に対応する座標（ｍ，ｎ）で示されるブロック単位の階層表データ展開エリアを形成している。この各ブロック内は図９に示すように、所属名と、その所属名の下に４行分の各データ（１行目：所属長名、２行目〜４行目：所属員氏名）を展開するようになっている。
【００３９】
そして、この図８のブロック単位の階層表データ展開エリアには、図６の階層表の階層番号で区切られるブロック単位のデータが展開される。
次いで、上記指定した図６の階層表の階層番号１で区切られる先頭ブロックに上位階層データがセットされているか否かをチェックする（ステップＳ２０７）。その先頭ブロックには上位階層データがセットされていないため、ステップＳ２１０に進み、図６の階層表の先頭ブロックの次の階層番号のブロックを指定して、次ブロックが有るか否かを判別する（ステップＳ２１１）。図６の階層表には先頭ブロックの次に階層番号２で区切られるブロックが有るため、ステップＳ２０３に戻る。
【００４０】
ステップＳ２０３において、その指定した次ブロックの階層番号“２”が上記ステップＳ２０４の処理で縦方向カウンタｎにセットした数値“１”より大きいため、その指定ブロックの階層番号“２”を縦方向カウンタｎにセットする（ステップＳ２０４）。そして、図６の階層表の階層番号２ブロックに展開されたデータ（所属名：開発部、所属長名：Ｂ）に基づいてブロックイメージを生成し（ステップＳ２０５）、イメージメモリ９内の図８に示すような階層イメージ展開エリアにおいて座標（１，２）のブロック位置に、階層番号２ブロックから生成したブロックイメージをセットする（ステップＳ２０６）。
【００４１】
次いで、上記指定した図６の階層表の階層番号２ブロックに上位階層データがセットされているか否かをチェックする（ステップＳ２０７）。図６の階層番号２ブロックには上位階層データとして“１”がセットされているため、その上位階層“１”に該当するブロック位置を図８の階層イメージ内で検索し（ステップＳ２０８）、その検索した上位階層ブロックのイメージと線分イメージで当該ブロックイメージを図８に示すように結合する（ステップＳ２０９）。
【００４２】
次いで、図６の階層表の階層番号２ブロックの次のブロックを指定して（ステップＳ２１０）、次ブロックが有るか否かを判別する（ステップＳ２１１）。図６の階層表には階層番号３で区切られるブロックが有るため、ステップＳ２０３に戻る。
【００４３】
ステップＳ２０３において、その指定した次ブロックの階層番号“３”が上記ステップＳ２０４の処理で縦方向カウンタｎにセットした数値“２”より大きいため、その指定ブロックの階層番号“３”を縦方向カウンタｎにセットする（ステップＳ２０４）。そして、その階層番号３ブロックに展開されたデータ（所属名：開発課、所属長名：Ｅ、所属員氏名：Ｉ，Ｊ）に基づいてブロックイメージを生成し（ステップＳ２０５）、イメージメモリ９内の図８に示すような階層イメージ展開エリアにおいて座標（１，３）のブロック位置に、階層番号３ブロックから生成したブロックイメージをセットする（ステップＳ２０６）。
【００４４】
次いで、上記指定した図６の階層表の階層番号３ブロックに上位階層データがセットされているか否かをチェックする（ステップＳ２０７）。図６の階層番号３ブロックには上位階層データとして“２”がセットされているため、その上位階層“２”に該当するブロック位置を図８の階層イメージ内で検索し（ステップＳ２０８）、その検索した上位階層ブロックのイメージと線分イメージで階層番号３ブロックイメージを図８に示すように結合する（ステップＳ２０９）。
【００４５】
次いで、図６の階層表の階層番号３ブロックの次のブロックを指定して（ステップＳ２１０）、次ブロックが有るか否かを判別する（ステップＳ２１１）。図６の階層表には階層番号２で区切られるブロックが有るため、ステップＳ２０３に戻る。
【００４６】
ステップＳ２０３において、その指定した次ブロックの階層番号“２”が上記ステップＳ２０４の処理で縦方向カウンタｎにセットした数値“３”より小さいため、横方向カウンタｍをアップカウント（ｍ＋１→ｍ）してｍ＝２とし（ステップＳ２１２）、その指定ブロックの階層番号“２”を縦方向カウンタｎにセットする（ステップＳ２０４）。そして、その階層番号２ブロックに展開されたデータ（所属名：設計部、所属長名：Ｃ、所属員氏名：Ｋ）に基づいてブロックイメージを生成し（ステップＳ２０５）、イメージメモリ９内の図８に示すような階層イメージ展開エリアにおいて座標（２，２）のブロック位置に、階層番号２ブロックから生成したブロックイメージをセットする（ステップＳ２０６）。
【００４７】
次いで、上記指定した図６の階層表の階層番号２ブロックに上位階層データがセットされているか否かをチェックする（ステップＳ２０７）。図６の階層番号２ブロックには上位階層データとして“１”がセットされているため、その上位階層“１”に該当するブロック位置を図８の階層イメージ内で検索し（ステップＳ２０８）、その検索した上位階層ブロックのイメージと線分イメージで階層番号２ブロックイメージを図８に示すように結合する（ステップＳ２０９）。
【００４８】
次いで、図６の階層表の階層番号２ブロックの次のブロックを指定して（ステップＳ２１０）、次ブロックが有るか否かを判別する（ステップＳ２１１）。図６の階層表には階層番号２で区切られるブロックが有るため、ステップＳ２０３に戻る。
【００４９】
ステップＳ２０３において、その指定した次ブロックの階層番号“２”が上記ステップＳ２０４の処理で縦方向カウンタｎにセットした数値“２”と同じであるため、横方向カウンタｍをアップカウント（ｍ＋１→ｍ）してｍ＝３とし（ステップＳ２１２）、その指定ブロックの階層番号“２”を縦方向カウンタｎにセットする（ステップＳ２０４）。そして、その階層番号２ブロックに展開されたデータ（所属名：営業部、所属長名：Ｄ）に基づいてブロックイメージを生成し（ステップＳ２０５）、イメージメモリ９内の図８に示すような階層イメージ展開エリアにおいて座標（３，２）のブロック位置に、階層番号２ブロックから生成したブロックイメージをセットする（ステップＳ２０６）。
【００５０】
次いで、上記指定した図６の階層表の階層番号２ブロックに上位階層データがセットされているか否かをチェックする（ステップＳ２０７）。図６の階層番号２ブロックには上位階層データとして“１”がセットされているため、その上位階層“１”に該当するブロック位置を図８の階層イメージ内で検索し（ステップＳ２０８）、その検索した上位階層ブロックのイメージと線分イメージで階層番号２ブロックイメージを図８に示すように結合する（ステップＳ２０９）。
【００５１】
次いで、図６の階層表の階層番号２ブロックの次のブロックを指定して（ステップＳ２１０）、次ブロックが有るか否かを判別する（ステップＳ２１１）。図６の階層表には階層番号３で区切られるブロックが有るため、ステップＳ２０３に戻る。
【００５２】
ステップＳ２０３において、その指定した次ブロックの階層番号“３”が上記ステップＳ２０４の処理で縦方向カウンタｎにセットした数値“２”より大きいため、その指定ブロックの階層番号“３”を縦方向カウンタｎにセットする（ステップＳ２０４）。そして、その階層番号３ブロックに展開されたデータ（所属名：第１営業課、所属長名：Ｆ、所属員氏名：Ｌ）に基づいてブロックイメージを生成し（ステップＳ２０５）、イメージメモリ９内の図８に示すような階層イメージ展開エリアにおいて座標（３，３）のブロック位置に、階層番号３ブロックから生成したブロックイメージをセットする（ステップＳ２０６）。
【００５３】
次いで、上記指定した図６の階層表の階層番号３ブロックに上位階層データがセットされているか否かをチェックする（ステップＳ２０７）。図６の階層番号２ブロックには上位階層データとして“２”がセットされているため、その上位階層“２”に該当するブロック位置を図８の階層イメージ内で検索し（ステップＳ２０８）、その検索した上位階層ブロックのイメージと線分イメージで階層番号３ブロックイメージを図８に示すように結合する（ステップＳ２０９）。
【００５４】
次いで、図６の階層表の階層番号３ブロックの次のブロックを指定して（ステップＳ２１０）、次ブロックが有るか否かを判別する（ステップＳ２１１）。図６の階層表には階層番号３で区切られるブロックが有るため、ステップＳ２０３に戻る。
【００５５】
ステップＳ２０３において、その指定した次ブロックの階層番号“３”が上記ステップＳ２０４の処理で縦方向カウンタｎにセットした数値“３”と同じであるため、横方向カウンタｍをアップカウント（ｍ＋１→ｍ）してｍ＝４とし（ステップＳ２１２）、その指定ブロックの階層番号“３”を縦方向カウンタｎにセットする（ステップＳ２０４）。そして、その階層番号３ブロックに展開されたデータ（所属名：第２営業課、所属長名：Ｇ、所属員氏名：Ｍ）に基づいてブロックイメージを生成し（ステップＳ２０５）、イメージメモリ９内の図８に示すような階層イメージ展開エリアにおいて座標（４，３）のブロック位置に、階層番号３ブロックから生成したブロックイメージをセットする（ステップＳ２０６）。
【００５６】
次いで、上記指定した図６の階層表の階層番号３ブロックに上位階層データがセットされているか否かをチェックする（ステップＳ２０７）。図６の階層番号２ブロックには上位階層データとして“２”がセットされているため、その上位階層“２”に該当するブロック位置を図８の階層イメージ内で検索し（ステップＳ２０８）、その検索した上位階層ブロックのイメージと線分イメージで階層番号３ブロックイメージを図８に示すように結合する（ステップＳ２０９）。
【００５７】
次いで、図６の階層表の階層番号３ブロックの次のブロックを指定して（ステップＳ２１０）、次ブロックが有るか否かを判別する（ステップＳ２１１）。図６の階層表には階層番号３で区切られるブロックが有るため、ステップＳ２０３に戻る。
【００５８】
ステップＳ２０３において、その指定した次ブロックの階層番号“３”が上記ステップＳ２０４の処理で縦方向カウンタｎにセットした数値“３”と同じであるため、横方向カウンタｍをアップカウント（ｍ＋１→ｍ）してｍ＝５とし（ステップＳ２１２）、その指定ブロックの階層番号“３”を縦方向カウンタｎにセットする（ステップＳ２０４）。そして、その階層番号３ブロックに展開されたデータ（所属名：第３営業課、所属長名：Ｈ、所属員氏名：Ｎ）に基づいてブロックイメージを生成し（ステップＳ２０５）、イメージメモリ９内の図８に示すような階層イメージ展開エリアにおいて座標（５，３）のブロック位置に、階層番号３ブロックから生成したブロックイメージをセットする（ステップＳ２０６）。
【００５９】
次いで、上記指定した図６の階層表の階層番号３ブロックに上位階層データがセットされているか否かをチェックする（ステップＳ２０７）。図６の階層番号２ブロックには上位階層データとして“２”がセットされているため、その上位階層“２”に該当するブロック位置を図８の階層イメージ内で検索し（ステップＳ２０８）、その検索した上位階層ブロックのイメージと線分イメージで階層番号３ブロックイメージを図８に示すように結合する（ステップＳ２０９）。
【００６０】
次いで、図６の階層表の階層番号３ブロックの次のブロックを指定して（ステップＳ２１０）、次ブロックが有るか否かを判別する（ステップＳ２１１）。図６の階層表には次ブロックがないため、図８に示す階層イメージ展開処理を終了する。
【００６１】
そして、図４のステップＳ３において、上記階層イメージ展開処理によりイメージメモリ９に展開した組織階層イメージデータを表示部１１により表示させた後、キー入力部３からの再配置指定の入力を確認する（ステップＳ４）。この再配置指定入力が再配置処理１を指定する場合は、再配置処理１を実行する（ステップＳ５）。
【００６２】
この再配置処理１について図１０に示すフローチャートに基づいて説明する。まず、イメージメモリ９内に展開された上記図８の階層イメージにおいて、最下位階層の空きブロックをチェックし、空きブロックの有無を判別する（ステップＳ５０１、Ｓ５０２）。図８の階層イメージではブロック位置（２，３）に空きブロックが有るため、その空きブロックの右側での描画ブロック（ブロック位置（３，３））の上位ブロック（ブロック位置（３，２））が複数の下位ブロックを含むかチェックする（ステップＳ５０３、Ｓ５０４）。
【００６３】
図８の階層イメージでは、上位の階層番号２のブロックが複数の階層番号３のブロックを含んでいるため、その下位の複数の階層番号３のブロック全体を左へ１ブロック分シフトし（ステップＳ５０５）、このシフトした複数の下位ブロックと上位ブロックとの間の線分接続を補正する（ステップＳ５０６）。
【００６４】
次いで、下位ブロックのグループの右端ブロックのｍ方向位置が上位ブロックのｍ方向位置と等しいか否かをチェックする（ステップＳ５０７、Ｓ５０８）。等しい場合は、最下位階層の他の空きブロックをチェックし（ステップＳ５０９）、ステップＳ５０２に戻る。
【００６５】
この場合、図８の階層イメージでは、左へシフトした階層番号３の右端ブロック位置と階層番号２の右端ブロック位置が等しくないため、ステップＳ５０８において等しくないと判別し、シフトした下位ブロックエリアに未だ空きエリアが有るか否かを判別する（ステップＳ５１０）。そして、図８の階層イメージでは空きエリアがないため、最下位階層の他の空きブロックをチェックし（ステップＳ５０９）、ステップＳ５０２の空きブロックの有無の判別処理に戻る。
【００６６】
このシフトした後の最下位階層の空きブロックチェックでは、空きブロックがないため、ステップＳ５１１に移行して列方向に空き列が有るか否かを判別する。図８の階層イメージでは、列方向の左側に空き列がないため、本処理を終了する。また、ステップＳ５１１において列方向に空き列が有ると判別した場合は、空き列の右側に有る全体のブロックを空き列数分左側へシフトし（ステップＳ５１２）、そのシフトしたブロック間を接続する線分を補正して（ステップＳ５１３）、本処理を終了する。
【００６７】
また、上記ステップＳ５１０において、空きエリアが有ると判別した場合は、ステップＳ５０５に戻り下位ブロックのグループ全体を左へ１ブロック分シフトする処理を繰り返し、ステップＳ５０６において、そのシフトしたブロックと上位ブロックとを接続する線分を補正する処理を繰り返し実行する。
【００６８】
以上の再配置１処理を実行することにより、図１１の表示部１１の表示画面に示すように、同図（ａ）に示す図８の階層イメージは、同図（ｂ）に示すように、最下位階層ブロック全体が空きブロック分左側へシフトされて、ブロック間の描画領域の空き領域が縮小されている。
【００６９】
また、図４のステップＳ４において、再配置処理２が指定された場合にステップＳ６において実行される再配置処理２について図１２に示すフローチャートに基づいて説明する。例えば、図１３（ａ）に示すような階層イメージに対して再配置処理２を実行する場合を説明する。
【００７０】
まず、最下位階層の１ブロックを指定し（ステップＳ６０１）、その指定ブロックの上位ブロックが複数の下位ブロックを含むかチェックし（ステップＳ６０２）、そのチェック結果から複数の下位ブロックを含む上位ブロックの有無を判別する（ステップＳ６０３）。図１３（ａ）の階層イメージでは、階層番号１に対して最下位階層である階層番号２のブロックが複数（４つ）有るため、その下位ブロックのグループを、偶数位置ブロックがより下位階層になるように交互に配置補正及びその各ブロック間の接続線分を補正する（ステップＳ６０４）。
【００７１】
次いで、最下位階層の他のブロックを指定し（ステップＳ６０５）、その他のブロックの有無を判別する（ステップＳ６０６）。その他のブロックが有ると判別した場合は、ステップＳ６０２に戻り、ステップＳ６０２〜ステップＳ６０５の処理を繰り返し実行して、その最下位階層の交互再配置処理を繰り返し実行する。
また、ステップＳ６０６において、最下位階層にその他のブロックがないと判別した場合は、本処理を終了する。
【００７２】
以上の再配置処理２を実行することにより、図１３の表示部１１の表示画面に示すように、同図（ａ）に示す階層イメージは、同図（ｂ）に示すように、最下位階層ブロックの奇数ブロックと偶数ブロックが交互に再配置されて、ブロック間の描画領域の空き領域が縮小されている。
【００７３】
したがって、本実施例のコンピュータシステム１では、社内組織図等の階層構造を持つ図を描画する際に、同一階層の複数の構成要素を配置する際の空白部分を少なくするように階層図を再配置して作成することができる。その結果、表示部１１に表示する際の表示画面上の表示領域あるいは印刷部１０から印刷する際の印刷用紙上の印刷領域を有効に利用することができる。
【００７４】
【発明の効果】
本願発明によれば、組織を構成する各部署の部署情報と各部署に所属する社員情報とに基づいてその各部署の部署名とその部署に所属する各社員名とが階層組織関係で配置された組織図を自動作成できると共に、その組織図に対する再配置指示により、その組織図上での各部署の部署名とその部署に所属する各社員名の配置状態を圧縮する方向で再配置した組織図を自動作成することができ、その用途に応じて必要とする形態の各種組織図を直ちに得ることができる。
【図面の簡単な説明】
【図１】本発明を適用したコンピュータシステムの要部ブロック構成図。
【図２】図１の所属テーブルファイルに格納されるテーブルのデータ構成の一例を示す図。
【図３】図１の社員マスタファイルに格納されるマスタファイルのデータ構成の一例を示す図。
【図４】本実施例のコンピュータシステムにより実行される組織図表示処理のフローチャート。
【図５】図１の組織図作成処理部により図４の組織図表示処理に際して実行される階層表作成処理のフローチャート。
【図６】図５の階層表作成処理により図１の階層表メモリに格納されるデータの一例を示す図。
【図７】図１の組織図作成処理部により図４の組織図表示処理に際して実行される階層イメージ展開処理のフローチャート。
【図８】図７の階層イメージ展開処理により図１のイメージメモリに展開された階層表のブロックイメージを示す図。
【図９】図８の階層イメージ展開エリア内のブロック単位に展開される階層データの内容を示す図。
【図１０】図１のＣＰＵにより実行される再配置処理１のフローチャート。
【図１１】図１０の再配置処理１により図８の階層イメージを再配置した状態を示す図。
【図１２】図１のＣＰＵにより実行される再配置処理２のフローチャート。
【図１３】図１０の再配置処理２により所定の階層イメージを再配置した状態を示す図。
【符号の説明】
１    コンピュータシステム
２    ＣＰＵ
３    キー入力部
４    ポインティングデバイス
５    ＲＯＭ
６    ＲＡＭ
７    組織図作成処理部
７ａ  階層表メモリ
７ｂ  階層数カウンタ
８    ファイルメモリ
９    イメージメモリ
１０    印刷部
１１    表示部
１２    バス
【図１】
0003705550.tif 000002
【図２】
0003705550.tif 000003
【図３】
0003705550.tif 000004
【図４】
0003705550.tif 000005
【図５】
0003705550.tif 000006
【図６】
0003705550.tif 000007
【図７】
0003705550.tif 000008
【図８】
0003705550.tif 000009
【図９】
0003705550.tif 000010
【図１０】
0003705550.tif 000011
【図１１】
0003705550.tif 000012
【図１２】
0003705550.tif 000013
【図１３】
0003705550.tif 000014