発明の実施の形態.
本発明の実施の形態にかかる表示処理装置、表示処理方法、及び表示処理プログラムについて図を用いて説明する。
本発明の実施の形態にかかる表示処理装置は、一定周期で繰り返される変化量に対して同じ内容が一定周期で循環する循環情報を平面的に表示させるための処理を実行する。例えば、一定の周期の任意の位置で分断して、分断された箇所の一方を始点、他方を終点として、2次元画面上に表示させる。さらに、循環情報を編集した後、編集された循環情報を表示させるための処理を行う。以下に、1週間毎に同じ内容が繰り返されるスケジュール情報を表示させる例について説明する。すなわち、以下の例では、1週間を1周期として、同じ内容が繰り返されるスケジュールが循環情報として表示されている。1週間のスケジュールを表示させる場合、月曜日の0時を始点、日曜日の24時を終点とすることができる。すなわち、日曜日の24時でスケジュールを区切って、表示させる。そして、月曜日から日曜日までの作業内容をガントチャートとして表示させる。
まず、図1、及び図2を用いて、本実施の形態にかかる表示処理装置について説明する。図1は、本実施の形態にかかる表示処理装置の表示画面上に表示されたスケジュールを示す図である。図2は、本実施の形態にかかる表示処理装置の構成を概念的に示すブロック図である。ここでは、生産工程の1週間のスケジュールを表示する例について説明する。ここで、表示処理装置としては、例えば、パーソナルコンピュータなどの情報処理装置が用いられる。
図1(a)に示すように、表示画面上には、生産工程のスケジュール102を示すウィンドウ101が表示されている。矩形状のウィンドウ101内には、1週間のスケジュール102が表示されている。ここでは、月曜日の0時から日曜日の24時までのスケジュール102が表示されている。このウィンドウ101のスケジュール102において、横軸が時間(日時)を示し、縦軸が生産工程の作業を示している。ここで、スケジュール102には、作業として計画A〜計画Cが含まれている。それぞれの作業が縦に並んで配置されている。すなわち、上から計画A、計画B、計画Cの順番で示されている。計画A〜計画Cを実施する時間帯がバー111によって示されている。すなわち、上から順番に計画A、計画B、計画Cの時間帯を示す欄になっている。バー111で示されている時間帯でそれぞれの計画が実行される。また、横軸(時間軸)については、始点である月曜日0時が左側に表示され、終点である日曜日24時が右側に表示されている。すなわち、始点と終点とがウィンドウ102の両端に表示される。そして、日曜日24時の後では、月曜日0時からのスケジュール102が繰り返される。これらのバー111は、横軸の時間に対して対応付けられて表示される。すなわち、各バー111の横軸における位置、及び幅は、各作業の開始時間と終了時間とによって決まっている。また、表示画面には、矢印型のポインタ110がスケジュール102と重ね合わされて表示されている。ポインタ110は、マウスなどのポインティングデバイスによって移動する。
さらに、ウィンドウ101内には、スケジュール102を拡大、縮小して表示するための拡大アイコン103、縮小アイコン104が表示されている。例えば、ポインタ110を拡大アイコン103上に移動して、拡大アイコン103をクリックすると、スケジュール102を拡大する処理が実行される。スケジュール102を拡大すると、ウィンドウ101には、1週間のスケジュール102の一部のみが表示されるようになる。例えば、200%に拡大した場合、火曜日の0時から金曜日の12時までのスケジュールがウィンドウ101内に表示される。また、拡大アイコン103をクリックすると、縦軸についても同様に拡大される。このように、スケジュール内に含まれる作業のうちの一部が表示される。拡大アイコン103によって、1週間のスケジュール102の一部が切り取られて表示される。もちろん、縦軸、及び横軸を異なる倍率で拡大してもよい。一方、縮小アイコン104をクリックすると、拡大表示されているスケジュール102が縮小する。このように、表示画面のウィンドウ101には、スケジュール102を任意の倍率で表示することができる。倍率を変えて拡大することにより、スケジュール102の一部がウィンドウ全体に表示される。すなわち、スケジュール102の横軸の第1の位置から第2の位置までが拡大表示される。
さらに、ウィンドウ101内には、スケジュール102をスクロールするためのスクロールアイコン105〜108が表示されている。スケジュール102が拡大表示されている状態で、上下左右のスクロールアイコン105〜108をクリックすると、各アイコンの矢印に対応する方向にスケジュール102が移動して表示される。例えば、火曜日の0時から金曜日の12時までのスケジュールがウィンドウ101内に表示されている状態で、右方向のスクロールアイコン107を所定回数だけクリックすると、表示されているスケジュール102が1日分移動する。よって、水曜日0時から土曜日12時のスケジュールが表示される。なお、図1(a)は、画面上に表示されるスケジュールの一例を示すものであり、図1(a)の構成に限定されるものではない。例えば、スクロールバーやキーボードの方向キーなどによって、スクロールしてもよい。このように、操作者によって、スケジュールを表示させる際の倍率やスクロール位置が指定される。なお、横軸のスクロール位置が0のとき、月曜日0時がウィンドウ101の左端に表示されるものとする。
上記のアイコンを用いることによって、図1(b)に示すように、火曜日0時〜木曜日12時までの部分を拡大してして表示することができる。ここでは、1週間(7日)のうちの2.5日が拡大表示され、さらに火曜日0時がウィンドウ101に左端、木曜日12時が右端になるようにスクロール位置が設定されている。すなわち、倍率は、(7/2.5×100)=280%となる。また、ウィンドウの左端が火曜日0時が表示されているため、1日分、右方向にスクロールされている。従って、スクロール位置は+1日となる。図1(b)に示す状態で、右方向のスクロールアイコン107を半日分クリックすると、スケジュール102の位置がさらに右方向に移動する。例えば、火曜日12時〜木曜日24時が表示されるようになる。この場合、スクロール位置は+1.5日となる。この状態で、拡大アイコン103をクリックすると、さらにスケジュールが拡大して表示され、縮小アイコン104をクリックすると、スケジュール102が縮小して表示される。
さらに、操作者は、スケジュール102を内容を変更することができる。例えば、ポインタ110によって、バー111の一つを選択し、ポインタ110を移動させる。これにより、選択されたバー111に対応する作業の時間帯がずれる。このようにして、バー111を変位させることによって、作業の時間帯を変更することができる。例えば、図1(a)に示す状態で、マウスによってウィンドウ101中の計画Bのバー111の位置にポインタ110を移動させる。そして、その位置でマウスのボタンをクリックする。これにより、計画Bのバー111が選択される。そして、ポインタ110を右方向に移動していくと、図1(c)に示すように、計画Bのバー111もポインタ110に応じて右方向に移動する。すなわち、ウィンドウ上でバー111の位置が右方向に変位する。再度マウスのボタンをクリックすると、その位置で計画Bのバー111の選択が解除される。これにより、計画Bの時間帯を変更することができる。
なお、時間帯の変更に限らず、作業時間の幅を変更することも可能である。例えば、作業時間の延長、作業時間の短縮、開始時間の変更、終了時間の変更などを行なうことができる。作業時間の延長、短縮は、例えば、ウィンドウの拡大、縮小と同じ要領で実施することができる。具体的には、計画Bのバーの外周部分にポインタ110を移動する。そして、この位置でクリックすると、計画Bのバー111が指定される。このとき、バー111の中央部分でクリックすると、バー111の移動であると識別され、バー111の外周部分でクリックすると、バー111の延長、短縮であると識別される。バー111の延長、短縮であると識別された状態でポインタ110を移動させると、バー111の幅が変化する。すなわち、バー111の幅が延長、又は短縮され、バー111が変位する。このように、マウスなどを用いてバー111を変位させることによって、作業時間の変更、延長、短縮等を行なうことができる。さらに、作業の削除や、新しい作業の追加を行なうこともできる。例えば、作業の削除を行なう場合、削除したいバー111を選択して、キーボードのdeleteキーを押下するようにしてもよい。あるいは、ウィンドウ101に作業削除アイコン、作業追加アイコンを表示させるようにしてもよい。作業削除アイコン、作業追加アイコンをクリックすることで削除、追加を行なうことができる。
次に、図2を参照して、表示処理装置の構成について説明する。図2に示すように、図2に示すように、表示処理装置1は、記憶手段2、演算手段3、及び入出力手段4とを備えている。記憶手段2には、作業データ記憶部21、及び表示設定データ記憶部22が設けられている。作業データ記憶部21は、作業に関する作業データをデータベースとして記憶する。すなわち、作業データ記憶部21は、スケジュールに含まれる作業毎に、作業名、開始日時、終了日時等を記憶する。例えば、図3に示すように、それぞれの作業に関する作業データが項目別に記憶されている。ここでは、それぞれの作業に対する項目として、作業名、開始日時、及び終了日時がある。例えば、1行目のレコードにおいて、作業名の項目には「計画A」、開始時間の項目には「日曜日9:00」、終了日時の項目には「金曜日2:00」と記憶されている。また、同様に2行目、3行目にも、それぞれ対応する作業データが記憶されている。
ここでは、作業名の項目には、計画A〜Cが順番に記憶されている。そして、それぞれの計画の開始日時、及び終了日時が記憶されている。一つのレコードには、作業名、開始日時、及び終了日時が対応付けて、記憶されている。このように、作業データ記憶部21は、作業に関する作業データをテーブル形式で記憶する。さらに、作業名、開始日時、終了日時以外の項目が記憶されていてもよい。例えば、作業する人の氏名、作業人数、作業場所などが対応付けて記憶されていてもよい。これらの項目に対する作業データは、それぞれのレコード毎に対応付けられている。なお、作業データは、予め操作者によって入力される。それぞれのレコードに記憶されている作業データは、別々に編集可能である。このような別々に編集可能である作業データのそれぞれをパーツとする。従って、1つのレコードに記憶されている作業データが1つのパーツとなる。複数のパーツが入力されると、作業データ記憶部21にはパーツ毎に作業名、開始日時、及び終了日時が記憶される。そして、複数のパーツがスケジュール102上に同時に表示される。このように、作業データ記憶部21にはパーツ群が記憶される。
表示設定データ記憶部22には、表示画面の設定に対する設定データを記憶している。例えば、図1で示したように、ウィンドウ101に対する倍率や縦軸と横軸のスクロール位置が記憶されている。また、上記のように、設定データは操作者からの入力によって、更新される。すなわち、縮小アイコン103や拡大アイコン102をクリックすることによって、倍率が変更すると、新たに変更された倍率が記憶される。さらに、表示設定データ記憶部22には、表示画面上でのウィンドウ101の大きさや位置が記憶されていてもよい。
入出力手段4は、表示処理装置に対する入力を行なうための入力装置を備えている。例えば、表示画面上の表示されたポインタ110を移動させるためのマウス、トラックボール、タッチパッド等のポインティングデバイスを有している。また、タッチパネルやキーボードによって入力するようにしてもよい。なお、入出力手段4には、これらの入力装置の1つ以上が設けられていればよい。さらに、入出力手段4は、表示処理装置1によって処理された結果を出力する表示装置を備えている。表示装置としては、液晶ディスプレイや、CRTディスプレイなどを用いることができる。なお、表示装置としては、矩形の表示画面に表示画素がマトリクス状に配置されたドットマトリクス型ディスプレイを用いている。
演算手段3は、作業データ記憶部21に記憶されているデータに基づいて、スケジュール表示を行なうための演算を実行する。そして、演算手段3は、入出力手段4の表示装置にスケジュールを表示させるための表示用データを出力する。このとき、表示設定データ記憶部22に記憶されている設定データに応じて表示が実行される。すなわち、演算手段3は、スケジュール102が操作者によって指定された倍率、及びスクロール位置で表示されるように、演算処理を実行する。上記の演算処理を実行するため、演算手段3は、レイアウト処理部31、合成処理部32、フレーミング処理部33、描画処理部34、及び正規化処理部35と備えている。
レイアウト処理部31は、作業データ記憶部21に記憶されている作業データに応じて、レイアウト処理を行う。具体的には、2周期分以上の領域を有するレイアウト領域のレイアウトを決定する。ここで、レイアウト領域とは、表示処理装置1内で生成される仮想的な領域であり、倍率が100%のときのスケジュール102の大きさの整数倍の大きさを有している。ここで、レイアウト処理部31で生成されたレイアウト領域を図4に示す。すなわち、図4にはレイアウト処理部31によって仮想的に生成されたレイアウト領域130でのレイアウトが示されている。図4では、3週間分のレイアウト領域130が生成されている。すなわち、倍率が100%のときのスケジュール102の3倍の大きさを有するレイアウト領域130が生成されている。
図4に示すように、レイアウト処理部31は、パーツの開始日時と終了日時に応じて、バー111の幅、及び位置を決定する。さらに、各パーツを開始日時と終了日時に応じた位置で、縦方向に並べて配置する。これにより、異なるパーツでは、スケジュール102の縦軸における位置がずれて配置される。このように、各パーツ毎に開始日時から終了日時までの時間に応じた幅のバー111を用意する。そして、それぞれのバー111をパーツ毎に上から順番に配置していく。このレイアウト処理部31で決定されるレイアウトは、ウィンドウ101上の座標に対応するものである。従って、レイアウト処理部31で決定されるレイアウトに基づいて、ウィンドウ101におけるバー111の位置が算出される。レイアウト処理部31で決定されるレイアウトは、拡大、縮小、及びスクロールを実行してない状態におけるウィンドウ101の座標に対応している。すなわち、倍率が100%で、縦方向のスクロールが0、横方向のスクロールが0の時の座標が決定される。なお、倍率が100%で、縦横方向のスクロールがそれぞれ0の時の表示を基準表示とする。基準表示では、1周期分、すなわち1週間分のスケジュールが表示される。
このように、レイアウト処理部31は、パーツを複数の周期分の領域に展開してレイアウト領域130に配置している。これによりレイアウト領域130でのレイアウトが決定される。すなわち、全パーツをm周期分(mは2以上の整数)の領域に分散して配置する。ここでは、スケジュールの周期が1週間であるため、3週間分の領域に配置する例について示している。すなわち、1週間のスケジュールに含まれているパーツを3週間に展開したレイアウトが生成される。ここで、3週間分のレイアウト領域130のうち、1週間目を領域131、2週間目を領域132、3週間目を領域133とする。それぞれの領域131〜133には、始点(月曜日の0時)から終点(日曜日24時)までの時間が示されている。レイアウト領域130は、領域131〜133から構成されている。また、図4に示すように、計画Aのバーをバー121、計画Bのバーをバー122、計画Cのバーをバー123とする。レイアウト領域130には、1つのパーツに対して、1つのバーが配置される。
ここで、横軸の座標は、1週目の領域131から3週目の領域133で連続している。例えば、レイアウト領域130の左端の座標を原点Oとし、1週目の領域131の右端における横軸の座標をC1とする。すなわち、1週目の月曜日0時の座標を0とし、日曜日24時の座標をC1とした、2週目の領域132の右端における横軸の座標C2は2C1となり、3週目の領域133の右端における横軸の座標C3は3C1となる。従って、1週目の領域131では0〜C1の座標が含まれ、2週目の領域132ではC1〜2C1の座標が含まれ、3週目の領域133では2C1〜3C1の座標が含まれる。すなわち、2週目の領域132では、月曜日0時の座標がC1となり、日曜日24時の座標が2C1となる。同様に、3週目の領域133では、月曜日0時の座標が2C1となり、日曜日24時の座標が3C1となる。このように、1週目の領域131の終点と、2週目の領域の始点とは同じ座標C1となり、2週目の領域132の終点と、3週目の領域の始点とは同じ座標C2となる。レイアウト領域130の横軸には、0〜C3までの座標が含まれている。
計画Bのバー122は、1週目の領域131と2週目の領域132に渡って配置される。すなわち、計画Bのバー122は、1週目の領域131と2週目の領域132との境界をまたぐように配置される。さらに、計画Aのバー121、及び計画Cのバー123は、2週目の領域132と3週目の領域133に渡って配置される。すなわち、計画Aのバー121、及び計画Cのバー123は、2週目の領域132と3週目の領域133との境界をまたぐように配置される。このように、1週分の領域間の境界をまたぐバーが存在している。
1週目の領域131には、計画Bの一部が含まれている。従って、1週目の領域131では、計画Bが配置される箇所が決まる。すなわち、レイアウト処理部31は、1週目の領域131に配置されている計画Bのバー122の座標を決定する。ここで決定される座標は、領域131上における座標である。換言すると、基準表示における表示画面上の座標が決定される。なお、1週目の領域131では、計画Bのバー122のうちの開始日時(土曜日20:15)から終点である日曜日24:00までが示されている。すなわち、計画Bのうちの前半部分のみが示されている。従って、計画Bの開始日時(土曜日20:15)の座標が決定する。ここでは、表示画面が2次元であるため、横軸の座標と縦軸の座標とが決定される。このように、1週目の領域131では、計画Bの前半部分のみが含まれているため、計画Bの開始日時の座標が決定する。
2週目の領域132には、計画Aの一部、計画Bの一部、及び計画Cの一部が含まれている。従って、2週目の領域132では、計画A、計画B、及び計画Cが配置される箇所が決まる。2週目の領域132では、計画Aの前半部分、計画Bの後半部分、計画Cの前半部分の座標が決定する。具体的には、計画Aの開始日時から終点、始点から計画Bの終了日時、及び、計画Cの開始日時から終点が2週目の領域132に含まれる。従って、2週目の領域では、計画Aの開始日時の座標、計画Bの終了日時の座標、計画Cの開始日時の座標、が決定する。
さらに、3週目の領域133には、計画Aの一部、及び計画Cの一部が含まれている。3週目には、計画Aの後半部分、及び計画Cの後半部分が含まれている。よって、3週目の領域では、計画Aの終了日時の座標、計画Cの終了日時の座標、が決定する。このように、始点と終点とをまたぐ作業がある場合、その作業の前半部分、又は後半部分の座標が1週分の領域で決まる。換言すると、1週分の領域では、前半部分、又は後半部分の座標のみ決定される。従って、始点と終点とをまたぐ作業の開始日時、及び終了日時の座標は、連続する2週分の領域によって決定する。このように、レイアウト処理部31では、複数の周期分の領域を用いて、各パーツの位置を決定している。ここでレイアウト処理部31で決定されたレイアウト領域130でのバーの位置をレイアウト位置と称する。従って、レイアウト位置は、レイアウト領域の座標に対応している。なお、レイアウト位置による座標は、倍率、及びスクロール位置での影響を受けないものである。
合成処理部32は、上記の領域131〜133のレイアウトを合成するための処理を実行する。この合成処理部32での処理について、図5を参照して説明する。図5は、合成処理部32での合成処理を説明するための図である。ここで、図5の左側に示されているように、1週目の領域131に示されている計画Bのバー122をバー122aとし、2週目の領域132に示されている計画Bのバー122をバー122bとする。また、2週目の領域に示されている計画Aのバー121をバー121aとし、3週目の領域133に示されている計画Aのバー121をバー121bとする。同様に、2週目の領域に示されている計画Cのバー123をバー123aとし、3週目の領域133に示されている計画Cのバー123をバー123bとする。
合成処理部32は、合成処理を行うため、それぞれの領域に含まれている横軸の座標を一致させる。すなわち、3つの領域131〜133に対して、同じ曜日の同じ時間の座標を一致させる。具体的には、2週目の領域132の横軸の座標(C1〜2C1)からC1を減算し、3週目の領域の横軸の座標(2C1〜3C1)から2C1を減算する。これにより、それぞれの領域に含まれる座標が全て0〜C1となる。すなわち、領域131〜133の横軸(時間軸)の座標が同じ座標に統一される。このように、それぞれの領域の座標を一致させ、合成処理を行うと、スケジュールは図5の右側に示すようになる。なお、合成領域140の月曜日0時を始点とし、日曜日24時を終点とする。ここで、合成領域140におけるバーの位置を合成位置と称する。
上記のように、各周期の領域の座標を統一しているので、スケジュールは、1週間分の領域に重ね合わされて配置される。ここで、合成処理部32により3つの領域が合成された領域を合成領域140とする。従って、合成領域140におけるバーの座標が合成位置に対応する。この合成領域140は、1週間分の領域を有している。このように、合成処理部32は、横軸の座標を統一して、0〜C1とすることで、各周期におけるバー配置を重ね合わせることができる。この合成領域140は、3週分のレイアウト領域130が含む情報を含んでいる。すなわち、計画A〜Cの開始時間、及び終了時間の座標が含まれている。従って、それぞれの計画の基準表示における座標を求めることができる。すなわち、合成処理部32は、基準表示でのスケジュールに対応する合成領域140を生成する。合成領域32では、1つの計画に対して2つのバーが配置される。すなわち、レイアウト領域130において周期の境界(日曜日24時)をまたぐパーツがある場合、そのパーツに対応する2つのバーが配置される。例えば、計画Aでは、周期の境界で分けられる前半部分と、後半部分とが別々に配置される。計画Aのバー121a、121bは、合成領域140の始点側(左端)、及び終点側(右端側)にそれぞれ配置される。このように、合成処理部32は、レイアウト領域130の隣接する周期の境界をまたいで配置されたパーツを合成領域140の両側にわけて配置する
フレーミング処理部33は、表示設定データ記憶部22に記憶されている倍率とスクロール位置とに基づいてフレーミング処理を行う。フレーミング処理では、合成領域140の一部が抽出される。すなわち、フレーミング処理部33は指定された倍率、及びスクロール位置に基づいて、合成領域140の一部を抽出する。例えば、図5の合成領域140内の点線で示されている範囲を抽出すると、図1(b)に示すように、火曜日0時〜木曜日12時までが表示される。ここで、フレーミング処理部33で抽出された合成領域の一部を表示範囲150とする。すなわち、この表示範囲150がウィンドウ上に表示される。従って、フレーミング処理部33は、合成領域140から表示範囲150を選択する。また、フレーミング処理部33で抽出された表示範囲150のうち、その両端の位置を表示開始位置、及び表示終了位置とする。例えば、図1(b)に示す場合では、火曜日0時が表示開始位置となり、木曜日12時が表示終了位置となる。
さらに、フレーミング処理部33は、合成領域140におけるバーの座標から、表示画面上におけるウィンドウ101内の座標を決定する。このとき、スクロール位置、及び倍率を考慮して、ウィンドウ101内の各バー111の座標が決定される。例えば、ウィンドウ101の左端(表示開始位置)が火曜日0時となり、右端(表示終了位置)が木曜日12時となっているため、ウィンドウ101における各バーの座標が決定される。すなわち、スクロール位置、及び倍率によって、各バーの横軸上の位置、及び縦軸上の位置が特定される。もちろん、表示範囲150の位置、及び大きさによっては、一部のバーがウィンドウ101上に表示されなくなる。このように、フレーミング処理後によって、ウィンドウ101上における各バーの開始日時、及び終了日時の座標が決定される。このように、ウィンドウ101上の各バーの座標は、合成位置での座標に、スクロール位置と倍率とに基づいて換算される。
描画処理部34は、フレーミング処理部33で算出された各バーの座標に基づいて、描画処理を行う。これにより、ウィンドウ101にスケジュール102を表示させることができる。この時のウィンドウ101には表示範囲150に含まれるバーが配置される。ここでは、表示画面におけるウィンドウ101の位置に基づいて、表示範囲150を表示させるための表示信号を表示装置に転送する。すなわち、表示範囲150の各バーの配置に応じた表示信号が表示装置に出力される。従って、表示範囲150内に含まれている各バーが所定の幅、及び所定の位置で表示される。ここで、表示画面上における各パーツの位置を表示位置とする。表示範囲150は、ウィンドウ101においてスケジュール102が表示される部分全体に表示される。すなわち表示範囲150は、ウィンドウ101の拡大アイコン103、縮小アイコン104、スクロールアイコン105〜108を除いた部分に配置される。また、ここでは、描画処理部34はウィンドウ101内にポインタ110を重ね合わせて描画している。これにより、図1(b)に示すようなウィンドウ102が表示される。
なお、フレーミング処理部33で用いられる倍率、及びスクロール位置は、操作者が倍率、又はスクロール位置を変更すると、随時更新される。すなわち、図1(a)で示した拡大アイコン103、縮小アイコン104、スクロールアイコン105〜108がクリックされると、表示設定データ記憶部22に記憶されている倍率、及びスクロール位置が更新される。そして、フレーミング処理部33は、更新された倍率、及びスクロール位置に基づいて、フレーミング処理を行う。
ここで、スケジュールの編集するための処理について説明する。例えば、図1(a)に示す状態から図1(c)に示す状態に、計画Bの時間帯を変更したとする。すなわち、操作者がマウスによって、計画Bの時間帯を「土曜日20:15〜月曜日23:30」から「金曜日2:15〜日曜日5:30」に移動したとする。この編集を行なうために、表示画面上で、操作者が計画Bを選択すると、フレーミング処理部33は、画面上のポインタ110の座標を合成領域140での座標に換算する。すなわち、倍率、及びスクロール位置に基づいて、基準表示での座標を算出する。そして、算出された座標にバー122bが存在する場合、そのバー122bの作業データ、即ち計画Bが編集されるものと認識する。例えば、計画Bのバー111がある位置でマウスをクリックすると、計画Bが特定される。このように、図1(a)に示す位置でマウスをクリックすると、計画Bのバー112bが特定される。
さらに、フレーミング処理部33は、表示画面上でのポインタ110の移動量から、基準表示における移動量に換算する。すなわち、フレーミング処理部33は、倍率、及びスクロール位置に基づいて、合成領域140における移動量を算出する。これにより、合成領域140における、移動後の計画Bのバー122bの位置が決定される。例えば、ウィンドウ101上の計画Bのバー111を変位させると、その変位量に基づいて、合成領域140におけるバー122bの移動先の位置を特定する。すなわち、合成領域140における変位後のバー122bの座標を求める。
計画Bのバー122bは、レイアウト領域130のバー122に対応付けられている。表示画面上で計画Bのバー111を移動すると、作業データ記憶部21の作業データが更新される。すなわち、合成領域140でのバー122bの座標に基づいて、開始日時、及び終了日時が算出される。そして、マウスによって表示画面上で指定されている計画Bのパーツの開始日時、及び終了日時が更新される。このように、作業データ記憶部21に記憶されている計画Bの開始時間、及び終了時間が書き換えられる。これにより、図3で示されている2番目のレコードが書き換えられる。そして、更新後のデータによってレイアウト領域130を生成する。レイアウト領域130のレイアウトを合成して、合成領域140を生成する。書き換えられた後の合成領域140は、図6に示すようなレイアウトになる。ここでは、計画Bのバー122が合成領域140の中央に配置される。従って、合成領域140では、計画Bに対して1つのバー122のみが存在することになる。
このように、レイアウト処理部31は、更新された作業データに基づいて、レイアウトを決定する。すなわち、更新された作業データに基づいて、レイアウト領域130でのバー配置を決定する。そして、合成処理部32は、更新された作業データでのレイアウト領域130に基づいて、合成処理を行う。さらに、フレーミング処理部33は、更新された作業データでの合成領域140の配置に対して、フレーミング処理を行う。そして、描画処理部34が、最新の倍率、及びスクロール位置を用いて、更新されたデータの描画処理を行う。これにより、更新された作業データでの表示を行うことができる。これらの処理は、上記の説明と同様の処理であるため説明を省略する。
このように、表示処理装置1によって、編集後のスケジュールを表示させる。このことによって、編集に必要な操作を低減することができ、利便性を向上することができる。例えば、1つのパーツがスケジュール102の始点と終点をまたいでおり、そのパーツのバー111がスケジュール102の両端に分かれて表示されている場合でもあって、1度の操作でパーツを編集することができる。例えば、図1(a)の計画Aのバー111は、日曜日24時をまたいでスケジュールの両端に表示されているが、このうちの一方のバー111のみを移動するだけで、パーツを編集することができる。よって、スケジュール情報の編集を容易に行うことができる。これにより、操作性を向上することができ、利便性を向上することができる。
なお、合成処理部32は、1週間分の合成領域140からはみ出した箇所に対する座標を求めてもよい。すなわち、パーツが日曜日の24時をまたぐ場合、そのパーツの一部が1週間の合成領域140からはみ出してしまう。例えば、図5に示すように、計画Aのバー122bの開始日時は合成領域140の月曜日0時よりも左側に配置され、計画Aのバー121aの終了日時は合成領域140の日曜日24よりも右側に配置される。このよううな場合、合成処理部32は、作業データの合成領域140からはみ出している位置のウィンドウ上の座標を求める。ここで求められる座標は、ウィンドウ101の外側の仮想的な座標である。例えば、合成領域140の座標が0〜C1で示される場合、始点側ではみ出しているバー121bについては、−C1〜0までの範囲で開始日時に対応する座標を記憶する。また、終点側ではみ出しているバー121aについては、C1〜2C1までの範囲で終了日時に対応する座標を記憶する。ここで、合成処理部32からはみ出した箇所の座標は基準表示におけるウィンドウ101の外側に対応するものである。すなわち、各バーの合成領域140からはみ出している部分は、基準表示におけるウィンドウ101の外側に、仮想的に配置されている。このように合成領域140の前後1週間分に配置されているバーの座標を求める。
これにより、スクロールを続けた場合でも、適切な表示が可能となる。例えば、スクロール位置を大きくずらすと、表示範囲150が図5に示す位置から図7(a)に示す位置となってしまう。すなわち、右方向のスクロールを繰り返すと、表示範囲150が移動していき、1周期分の合成領域149からはみ出して配置される。このような表示範囲150では、周期の境界(例えば、日曜日24時)が表示範囲150の中央に配置されている。このような場合、各バーに対して1週間分が合成領域140からはみ出した箇所の座標を求めことにより、スケジュールを適切に表示することができる。すなわち、1週間分の合成領域140からはみ出している表示範囲150にも、それぞれのバーが配置される。従って、表示範囲の合成領域140からはみ出している部分で、バーが表示されなくなるのを防ぐことができる。このように、合成領域140の前後1周期においても、座標を求めてもよい。これにより、スクロール量が大きくなっても、適切な表示を行なうことができる。よって、利便性を向上することができる。
なお、表示範囲150がさらに合成領域140からずれる場合は、スクロール位置を補正するようにしてもよい。すなわち、スクロール位置を大きく変更した場合、合成領域140の外側に配置されているバーが存在しない位置にまで表示範囲150が移動してしまう。合成領域140の端からさらに1週間以上スクロールさせると、表示範囲にバーが含まれなくなってしまう。例えば、図7(a)に示す状態から、さらに1週間以上、右方向にスクロール位置を移動すると、図7(b)に示すようになる。図7(b)では、合成領域140からはみ出しているバーすら、表示範囲150に含まれなくなってしまう。このような場合、バーを表示させることができなくなってしまう。従って、はみ出している方向に応じて、スクロール位置を例えば、1周期分移動させる。具体的には、図7(b)の合成領域140の端から表示範囲150が1週間以上右側にずれている場合は、1周期分、スクロール量を減算して、設定データを補正する。これにより、表示範囲を合成領域140に近づけることができる。よって、表示範囲150が合成領域140を大きくはみ出すことがなくなる。これにより、適切な表示を簡便に行なうことができる。よって、操作性が向上し、利便性を向上することができる。具体的には、スクロール位置の上限、下限を設定して、それらを超えた場合に1周期分スクロール位置を元の方向に移動する。これにより、合成領域140の前後1周期に表示範囲150を収めることができる。従って、表示範囲150を任意の位置にした場合でも、適切な表示を行なうことができる。すなわち、表示開始位置と表示終了位置との間に、レイアウト領域130の各周期の境界が配置されていても適切に表示することができる。操作者がスクロール位置を気にせずに表示させることができ、利便性を向上することができる。これにより、1週間のうち、任意の日時を表示開始位置、及び表示終了位置とすることができる。
正規化処理部35は、更新された作業データでの表示を行なう際、更新された作業データに対して正規化処理を実行している。なお、正規化処理部35による正規化処理とは、更新された作業データがレイアウト領域130からはみ出さないようにするための処理である。以下に、正規化処理について説明する。例えば、計画Aの時間帯を変更する場合について考える。まず、図1(a)に示すウィンドウ101上で、計画Aのバー111を選択する。ここでは、例えば、計画Aのバー111の月曜日の位置にポインタ110を移動させて、クリックする。そして、そのポインタ110を日曜日まで移動させる。すなわち、計画Aを6日分、右側に移動させるための処理を行う。
この時のレイアウト領域130について、図8を用いて説明する。図8は、レイアウト領域130の3週目の領域133を示す図である。計画Aを6日分、右側に移動させると、図8に示すように、3週目の領域133からはみ出してしまう。すなわち、計画Aのバー121aが2週目の領域132から外れ、3週目の領域133に計画Aのバー121aの左端が現れる。従って、計画Aのバー121の一部が、3週目の領域133の終点よりも後側に配置されてしまう。すなわち、計画Aのバー121aの後半部分は3週目からはみ出してしまう。このような場合、正規化処理部35は、計画Aのバー121aを前側に1週間分だけずらして、配置する。すなわち、バー121aの座標を1週間分ずらす。これにより、計画Aのバー121が2週目の領域132、及び3週目の領域133に渡って配置される。例えば、1週目の領域131の終点の座標がC1の場合、更新された計画Aのバー121の座標からC1だけ引いた座標をレイアウト領域における座標とする。すなわち、1周期に対応する座標を引いて、バーをレイアウト領域に収める。これにより、作業データが編集された場合でも、レイアウト領域130からはみ出すのを防ぐことができる。レイアウト領域130の大きさを変更せずに、スケジュールの変更が可能となる。よって、処理が複雑になるのを防ぐことができる。もちろん、編集された作業データが1週目の領域131の左側にはみ出す場合も、正規化処理を行うことができる。この場合、作業データの座標に対して、C1だけ加える。これにより、レイアウト領域130からはみ出すのを防ぐことができる。パーツの編集を行なった場合でも適切な表示を行なうことができる。よって、パーツの編集を簡便に行なうことができ、利便性を向上することができる。もちろん、変位量が大きい場合、2週間以上ずらして、変位したパーツをレイアウト領域130に収めるようにしてもよい。
図9は、本発明の実施の形態にかかる表示処理装置1の機能を有するコンピュータ40のハードウェア構成の一例を示している。図9に示すように、コンピュータ40は、CPU41(Central Processing Unit)、ROM42(Read Only Memory)及びRAM43(Random Access Memory)を有し、これらがバス44を介して相互に接続されている。
バス44には又、入出力インターフェイス45も接続されている。入出力インターフェイス45には、例えば、キーボード、マウスなどよりなる入力部46、CRT、LCDなどよりなるディスプレイ、並びにヘッドフォンやスピーカなどよりなる出力部47、ハードディスクなどより構成される記憶部48、モデム、ターミナルアダプタなどより構成される通信部49などが接続されている。この入力部46、及び出力部47が、図2の入出力手段2を構成する。さらに、記憶部46が記憶手段2を構成する。
CPU41は、ROM43に記憶されている各種プログラム、又は記憶部48からRAM43にロードされた各種プログラムに従って各種の処理、本実施の形態においては、例えばレイアウト処理部31、合成処理部32、フレーミング処理部33、及び正規化処理部35における処理を実行する。RAM43には又、CPU41が各種の処理を実行する上において必要なデータなども適宜記憶される。
通信部49は、例えば図示しないインターネットを介しての通信処理を行ったり、CPU41から提供されたデータを送信したり、通信相手から受信したデータをCPU41、RAM43、記憶部48に出力したりする。記憶部48はCPU41との間でやり取りし、情報の保存・消去を行う。通信部49は又、他の装置との間で、アナログ信号又はディジタル信号の通信処理を行う。
入出力インターフェイス45は又、必要に応じてドライブ50が接続され、例えば、磁気ディスク501、光ディスク502、フレキシブルディスク503、又は半導体メモリ504などが適宜装着され、それらから読み出されたコンピュータプログラムが必要に応じて記憶部48にインストールされる。なお、上述したレイアウト処理部31、合成処理部32、フレーミング処理部33、及び正規化処理部35が行う処理は、実際にはソフトウェアと上記CPU41などのハードウェア資源とが協働して実現している。
次に、本実施の形態に係る表示処理装置を用いたスケジュールの表示処理方法について図10用いて説明する。図10は、本実施の形態にかかる表示処理方法を示すフローチャートである。まず、初期設定を行なう(ステップS11)。初期設定では、作業データの準備と、レイアウト領域の準備と、フレーミング位置の初期化とが行なわれる。作業データの準備は、例えば、操作者が、キーボードや、マウス等の入力装置で、作業データを入力する。ここで、各作業データに対する項目が入力される。例えば、n個の作業データがある場合、それぞれの作業データに対する開始日時と終了日時を入力する。あるいは、既に記憶されている作業データを読み出してもよい。もちろん、これらを組み合わせて作業データを準備してもよい。ここで、準備された作業データを{dn}とする。d1〜dnまでのn(nは自然数)個の作業データがデータベースとして記憶されている。
レイアウト領域130の準備では、レイアウト領域130の大きさを決定する。ここでは、スケジュールの2周期分以上の領域がレイアウト領域130に設定される。例えば、図4では、3周期分の領域をレイアウト領域130としている。もちろん、2周期、あるいは3周期にかぎらず、4周期以上の領域でもよい。ここで、レイアウト領域130に含まれる各周期の座標{Cm}が決定される。ここで、mはレイアウト領域130に含まれる周期数に応じた整数となる。例えば、レイアウト領域130が3週分の領域から構成される場合、m=0,1,2となる。フレーミング位置の初期化では、横軸、及び縦軸のスクロール位置s0を(0,0)として、倍率z0を100%とする。すなわち、基準表示の設定を初期設定として、初期化する。この初期設定では、スケジュール全体がウィンドウ101に表示されるようになる。なお、スクロール位置、及び倍率は、操作者が入力を行なうと、随時、入力した値に更新される。
そして、表示処理を行う(ステップS12)。この表示処理について図12を用いて詳細に説明する。図12は、表示処理におけるステップを示すフローチャートである。まず、表示処理が開始したら、レイアウト処理を行う(ステップS21)。レイアウト処理では、上記のように、レイアウト処理部31がレイアウトを決定する。これにより、図4に示すように、レイアウト領域130上に、各作業データのバーが配置される。従って、各パーツの開始日時と終了日時からレイアウト領域130上におけるバーの配置が決定される。ここで、レイアウト領域130において、周期間の境界をまたぐ作業データは、それぞれの周期に配置される。すなわち、境界をまたぐバーの前半と後半とが隣接する周期にそれぞれ配置される。そして、レイアウト領域130における位置を求める。すなわち、各作業データのバーに対してレイアウト領域130における座標を算出する。例えば、スケジュールの1分を表示画面上の1表示画素として、開始日時と終了日時の座標を算出する。すなわち、1表示画素に対応する時間から、開始日時と終了日時の座標を算出する。これにより、基準表示における表示画面上でのバーの長さ、及び位置を求めることができる。
ここで、1〜n個の作業データを{dn}として説明する。すなわち、図3で示したデータベースのうち、1番目の作業データをd1とし、n番目の作業データをdnとする。作業データ{dn}にはd1〜dnまでの開始日時、及び終了日時が含まれている。そして、作業データ{dn}から、レイアウト位置{an}を算出する。すなわち、レイアウト領域130における開始日時の座標と終了日時の座標を算出する。例えば、表示画面の1表示画素をスケジュールの1分として、開始日時、及び終了日時をレイアウト領域における座標に換算する。この座標がレイアウト位置{an}に対応する。ここで、作業データ{dn}から、レイアウト位置{an}を算出する関数をfとする。この場合、レイアウト位置an=f(dn)となる。これにより、開始日時の座標と終了日時の座標をそれぞれ求めることができる。このレイアウト位置{an}は、基準設定における座標となる。もちろん、それぞれの作業データに対して、縦軸における座標についても算出する。
そして、合成処理を行う(ステップS22)。合成処理では、合成処理部32が、各週の領域131〜133のレイアウトを合成する。これにより、レイアウト領域130に含まれる各々の領域131〜133が重ね合わされる。すなわち、レイアウト領域130に含まれる各々の周期を分断して、同じ位置に重ね合わせる。これによって、各領域毎のレイアウトが合成され、図5に示す合成領域140が生成される。作業データの合成領域140における位置を求めることができる。それぞれの作業データの合成領域140における合成位置を{un}で示す。この場合、{an}からcmを減じることによって、{un}を求めることができる。すなわち、un=an−cmとなる。ここで、cmは、その作業データが含まれている領域の位置によって決まる。すなわち、2週目の領域132に含まれている作業データの場合、un=an−c1となる。
次に、フレーミング処理を行う(ステップS23)。フレーミング処理では、倍率、及びスクロール位置に基づいて、合成領域140の一部を抽出する。すなわち、合成領域の一部を図5に示すように表示範囲として選択する。そして、抽出された合成領域140の一部に含まれる作業データの表示位置を換算する。すなわち、各バーの表示画面のウィンドウ101上での座標を算出する。例えば、倍率をz、スクロール位置をsとした時、表示画面上における各作業データの表示位置を{en}とする。この場合、表示画面上の表示位置en=un/z+sとなる。なお、倍率z、及びスクロール位置sは最新の値が用いられている。そして、表示位置enに基づいて、表示装置に表示用データを出力して、描画処理を行う(ステップS24)。描画処理では、表示画面上のウィンドウ101の位置が考慮されている。これにより、各作業データが表示位置enで表示画面のウィンドウ上に表示される。このようにして、表示処理の1サイクルが終了して、スケジュール102が適切に表示される。
表示処理が終了した後、図10に示すように、編集処理が実施される(ステップS3)。すなわち、操作者が表示画面に表示されたスケジュール102を編集すると、編集されたスケジュールが表示される。例えば、計画Bの時間帯をずらすため、スケジュール102のバー111の位置を変更する。この移動処理について図12を用いて説明する。図12は、編集処理を示すフローチャートである。
まず、マウスなどで指定される表示画面上のポインタ位置mを取得する(ステップS31)。このポインタ位置mは、ポインタ110が移動することによって、更新される。ここで、ポインタ位置mは、表示画面上での座標で示されている。そして、表示位置{en}がポインタ位置mと重なっているかを判定する(ステップS32)。すなわち、ポインタ110で指定されているポインタ位置mが、バー111のいずれかで示される時間帯に含まれているかを判定する。そして、表示位置{en}がmと重なっている状態で、移動指示があるか否かを判定する(ステップS33)。例えば、マウスのボタンをクリックすることによって、移動指示があったと判定する。これにより、編集されるパーツが指定される。また、移動指示があったタイミングでのポインタ位置mを記憶する。なお、表示位置{en}がmと重なっていない場合、あるいは、移動指示がない場合、再度、ポインタ位置mを取得する(ステップS31)。そして、表示位置{en}がmと重なった状態で、移動指示を受けるまで同様の処理を繰り返す。
表示位置{en}がポインタ位置mと重なっている状態で、移動指示があった場合、移動中のポインタ位置mを更新する(ステップS34)。移動指示されたタイミングで取得されたポインタ位置mを移動開始ポインタ位置m1とし、移動中のポインタ位置mをポインタ位置mkとする。移動中のポインタ位置mkは例えば、一定時間間隔で取得することができる。従って、ポインタ位置mkは最新の位置に更新されていく。さらに、移動開始時からのポインタ110の移動量を算出する。現在ポインタ位置mkから移動指示ポインタ位置m1を減算することによって、ポインタ110の移動量を算出することができる。ここでのポインタ110の移動量は表示画面上での移動量である。移動量は(mk−m1)となる。
そして、ポインタの移動量から、ウィンドウ101上におけるパーツの現在位置を算出する(ステップS35)。これにより、移動後のパーツの表示画面上の座標を求めることができる。例えば、ウィンドウ101上における移動開始時(編集前)のパーツ位置をq1とすると、現在のパーツ位置qk=q1+mk―m1となる。これにより、ウィンドウ101上において、現在のパーツ位置qkの座標を求めることができる。
そして、移動中のパーツ位置qkによって作業データを更新する(ステップS36)。即ち、移動中のパーツ位置qkに応じた開始時間、及び終了時間を作業データ記憶部21に記憶させる。これにより、移動中のパーツ位置qkに応じた開始日時、及び終了日時にデータベースが書き換えられる。したがって、作業データが記憶されているデータ領域のデータが更新される。このようにして、編集処理の1サイクルが終了する。
そして、図10に示すように、編集処理が継続している否かを判断する(ステップS14)。ここでは、例えば、マウスによるクリックがあり、バーの選択が解除されたか否かを判定している。そして、選択が解除されるまで、データの編集が継続することになる。すなわち、データの編集が継続している場合、データの編集が終了するまで、ステップS2の表示処理、及びステップS3の移動処理を繰り返し行う。これにより、編集中であっても、表示画面上のバーの位置が変化する。よって、利便性を向上することができる。そして、選択が解除されることにより、全体の処理が終了する。
表示処理装置1を用いて上記の処理を行なうことによって、利便性を向上することができる。例えば、スケジュール102のバー111が両端に分割して表示されていても、その一方のみを移動するだけで、適切な表示を行なうことができる。すなわち、一方のバー111を編集することによって、作業データ記憶部21に記憶されているデータが更新される。よって、編集されたパーツのバー111が適切に表示される。このように、パーツの特定、移動などを一つのバー111に対して実行すれば、そのバー111から分かれて表示されているバー111も編集される。すなわち、1回の操作で、1つのパーツを編集することができる。
これにより、編集の取消、再実行等のような別のより高度なプログラム追加を容易に行うことができる。さらに、編集中のパーツと、他のパーツとの干渉チェック、干渉表示用のプログラムの作成を容易に行うことができる。例えば、それぞれのパーツが他のパーツの時間帯からずれるように配置することができる。従って、作業の時間帯を分散させることができ、作業効率を向上することができる。あわせて、他のパーツと連動して編集する連動編集プログラムを容易に追加することができる。よって、機能をさらに拡張することができ、利便性をより向上することができる。なお、上記の説明では、スケジュール102に含まれる各計画が実行される時間帯をバー111によって示したが、矢印やその他の図形によって示してもよい。
上記の実施の形態では1週間のスケジュール情報を表示する例について示したが、表示される情報はこれ限るものではない。すなわち、一定周期で繰り返される変化量に対して、一定周期で同じ内容が循環する循環情報を表示させるものであればよい。例えば、図13に示すように、1時間毎に繰り返し同じ作業を実行するタクトタイムを循環情報として表示してもよい。図13に示すタクトタイムでは、工程1〜3、及び機械1、2の作業が縦方向に並んで表示されている。そして、それらの作業が実行される時間帯がバーで示されている。さらに、バー111の色等によって、作業する人(機械工A、機械工B、運搬員C)を識別することができる。このようなタクトタイムを上記の処理を用いて、ウィンドウ101に表示させることによって、利便性を向上することができる。これにより、1時間の中の任意のタイミングを表示開始位置とすることができる。例えば、図13のように、1時間のうちの47分を表示開始位置とすることができる。よって、タクトタイムのスケジュールを表示させる場合でもあっても、利便性を向上することができる。
さらに、循環情報における変化量は時間(分、日時)などに限られるものでない。例えば、変化量を空間的な位置として、地図を表示させることもできる。具体的には、メルカトル図法での世界地図を表示させることもできる。この場合、地図を構成する地形データと、その地形データに付加データをデータベースとして記憶手段2に記憶させる。このような地図情報を上記の表示処理で表示させる。この場合は、横方向に対してだけでなく、縦方向に対しての、同じ内容が循環する。従って、図14(a)に示すように、縦横それぞれ3周期分の領域をレイアウト領域130とする。従って、レイアウト領域130は地図データを基準表示で表示される領域の9倍の領域となる。このレイアウト領域130には、地形データによるパーツ171と付加データによるパーツ172が重ね合わされて配置される。パーツ172は、始点、及び終点の境界をまたぐように配置されている。ここでは、パーツ172は、レイアウト領域130の中央の領域130aから、その左側、及び上側にはみ出ている。これらのパーツは縦横それぞれ所定の大きさで配置される。地形データは、陸地の形状に対応するものであり、付加データは、地形データに重ね合わせて表示させる情報に対応するものである。
そして、上記と同様の合成処理、及びフレーミング処理を行うことによって、図14(b)に示すように、地図情報が表示画面上に表示される。表示画面のウィンドウ101には、地形データのパーツ171に重ね合わされて付加データによるパーツ172が表示されている。このように、2次元情報に対して、適切な表示を行なうことができる。よって、利便性を向上することができる。なお、2次元情報に対して表示を行なう場合、各工程で、それぞれの方向に対する座標を算出する。すなわち、X方向、及びY方向に対する座標を算出して、これらに基づいて表示を行なう。このように、地図情報を世界地図で構成することによって、地球規模の情報を表示させるGUIを実現することができる。スクロールしても境界の無い、地図情報の編集を容易に行うことができる。従って、地図の任意の位置、及び範囲を表示させることができる。もちろん、世界地図以外の地図情報を表示させるようにしてもよい。
なお、本発明は上述した実施の形態になんら限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。