(57)【特許請求の範囲】
【請求項１】
コンピュータに以下のステップを実行させるためのプログラムを記録したコンピュータ可読記憶媒体であって、該ステップは、
グラフィック視覚化プログラムのインスタンスを実行するステップであって、前記グラフィック視覚化プログラムは、描画面を有し、前記描画面にダイアグラムを表示するよう動作可能である、ステップと、
前記グラフィック視覚化プログラムの前記インスタンスの実行において、第１の外部データソースからデータをインポートするステップと、
前記グラフィック視覚化プログラムの前記インスタンスの実行において、前記第１の外部データソースから前記インポートされたデータを、第１の２次元テーブルとして、対話ディスプレイに表示するステップであって、前記第１の２次元テーブルは、０、１つ、または複数の行と、０、１つ、または複数の列とを有する、ステップと、
前記対話ディスプレイ内の前記２次元テーブルにおける少なくとも１つの行を、ダイアグラム内の既存または新規の形状にリンクするステップと、
からなることを特徴とするコンピュータ可読記憶媒体。
【請求項２】
前記グラフィック視覚化プログラムの前記インスタンスの実行において、第２の外部データソースからデータをインポートするステップと、
前記グラフィック視覚化プログラムの前記インスタンスの実行において、前記第２の外部データソースから前記インポートされたデータを、第２の２次元テーブルとして、前記対話ディスプレイに表示するステップをさらに含み、
前記対話ディスプレイは、前記第１の外部データソースから前記インポートされたデータ、または、前記第２の外部データソースから前記インポートされたデータを表示することを特徴とする請求項１に記載のコンピュータ可読記憶媒体。
【請求項３】
前記対話ディスプレイにおける各行に、リンクアイコンが設けられることを特徴とする請求項１に記載のコンピュータ可読記憶媒体。
【請求項４】
前記対話ディスプレイにおける少なくとも１つの列は、非アクティブにされ得ることを特徴とする請求項１に記載のコンピュータ可読記憶媒体。
【請求項５】
前記リンクは、形状のプロパティと、前記対話ディスプレイにおける前記２次元テーブルの前記行における列の値との間でなされることを特徴とする請求項１に記載のコンピュータ可読記憶媒体。
【請求項６】
前記プロパティと前記列は、同じ名称を有することを特徴とする請求項５に記載のコンピュータ可読記憶媒体。
【請求項７】
前記描画面上の新しい形状のインスタンスを各行ごとに作成するステップ、および、
各形状ごとに、前記形状を、それに対応する行にリンクするステップによって、
前記対話ディスプレイにおける前記２次元テーブルの複数の行を、ダイアグラム内の複数の新しい形状に関連付けることができることを特徴とする請求項１に記載のコンピュータ可読記憶媒体。
【請求項８】
前記複数の形状の順序を確立するステップ、
前記複数の行の順序を確立するステップ、および、
第１の形状と第１の行から開始し、必要に応じて前記複数の行を通して繰り返しながら、前記複数の形状のすべてが関連付けられるまで順番に続行し、前記形状を前記行にリンクするステップ
によって、
前記対話ディスプレイにおける前記２次元テーブルにおける複数の行を、ダイアグラム内の複数の既存の形状に関連付けることができることを特徴とする請求項１に記載のコンピュータ可読記憶媒体。
【請求項９】
コンピュータに以下のステップを実行させるための、外部データソースからのデータをダイアグラム内の形状にリンクするようにさせるグラフィック視覚化プログラムを記録したコンピュータ可読記憶媒体であって、該ステップは、
対話ディスプレイのデータグリッドにおける第１の２次元テーブルとして第１の外部データからのデータを表示するステップ、ならびに、
前記対話ディスプレイの前記データグリッドにおける前記第１の２次元テーブルの１つまたは複数の行が、描画面の空白部分上にドラッグされることに応答して、
前記描画面上にドラッグされた各行ごとに、前記描画面上に形状のインスタンスを作成するステップ、および、
前記列の名称と同じ名称を有する前記形状のプロパティが存在すると決定することに応答して、前記プロパティを前記列からの値によってポピュレートするステップ、
前記列の名称と同じ名称を有する前記形状のプロパティが存在しないと決定することに応答して、前記形状について前記列の名称と同じ名称を有する新しいプロパティを作成し、前記新しいプロパティを、前記列からの値によってポピュレートするステップ
によって、前記描画面上に作成された各形状ごとに、前記行の各列について、前記形状を前記行にリンクするステップ
からなることを特徴とするコンピュータ可読記憶媒体。
【請求項１０】
前記対話ディスプレイの前記データグリッドにおける前記第１の２次元テーブルの第１の行が、前記描画面に表示されている既存の形状上にドラッグされることに応答して、前記第１の行における各列ごとに、前記既存の形状を前記第１の行にリンクするステップ、
前記列の名称と同じ名称を有する前記既存の形状のプロパティが存在すると決定することに応答して、前記プロパティを前記列からの値によってポピュレートするステップ、および、
前記列の名称と同じ名称を有する前記形状のプロパティが存在しないと決定することに応答して、前記既存の形状について前記列の名称と同じ名称を有する新しいプロパティを作成し、前記新しいプロパティを、前記列からの値によってポピュレートするステップ
をさらに備えることを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１１】
前記既存の形状と前記第１の行の間の前記リンクを除去するステップ、ならびに
前記第２の行における各列について、
前記列の名称と同じ名称を有する前記既存の形状のプロパティが存在すると決定することに応答して、前記プロパティを前記列からの値によってポピュレートするステップ、および、
前記列の名称と同じ名称を有する前記形状のプロパティが存在しないと決定することに応答して、前記既存の形状について前記列の名前と同じ名前を有する新しいプロパティを作成し、前記新しいプロパティを、前記列からの値によってポピュレートするステップ
によって、前記対話ディスプレイの前記データグリッドにおける前記第１の２次元テーブルの第２の行が、前記描画面に表示されている既存の形状上にドラッグされることに応答して、前記既存の形状を前記第２の行にリンクするステップ
をさらに備えることを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１２】
前記既存の形状と前記第１の行との間の前記リンクを除去するステップは、前記プロパティの値を示すビューにおいて、各プロパティごとに標識を提供するステップをさらに備えることを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１３】
前記既存の形状と前記第１の行の間の前記リンクは、前記既存の形状と前記第１の行との間の前記リンクの結果として前記カスタムプロパティを除去することによって、除去されることを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１４】
前記リンクは、前記行におけるアクティブな列についてのみ、なされることを特徴とする請求項９に記載のコンピュータ可読記憶媒体。
【請求項１５】
ダイアグラム内の形状を、第１のデータソースからのデータの行にリンクするための、コンピュータにより実施される方法であって、前記方法は、
形状に関連付けられる第１のデータソースからのデータの各行ごとに、
前記形状と前記第１のデータソースからのデータの他の行との間のどの既存のリンクも除去するステップ、および、
行における各アクティブな列ごとに、前記アクティブな列と同じ名称を有する前記形状のプロパティをポピュレートするステップを備えることを特徴とする方法。
【請求項１６】
前記ポピュレートするステップは、前記アクティブな列の名称と同じ名称を有するプロパティを作成することを備えることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記第１のデータソースからのデータの前記行は、対話ディスプレイにおける２次元テーブルとして表示されることを特徴とする請求項１５に記載の方法。
【請求項１８】
前記第１のデータソースからのデータの前記データは、ネットワークを介して取り寄せることができることを特徴とする請求項１５に記載の方法。
【請求項１９】
前記第１のデータソースは、データベースであることを特徴とする請求項１５に記載の方法。
【請求項２０】
ダイアグラム内の形状とデータソースからのデータの列との間のリンクをリフレッシュするための、コンピュータにより実施される方法であって、前記方法は、
データソースに対するリンクによってポピュレートされた形状の各プロパティごとに、
前記プロパティに関連付けられた前記データソースの行における列が除去された場合、前記プロパティの値が失効していることを示すステップ、および、
前記プロパティに関連付けられた前記データソースの前記行における列が現存しアクティブな場合、前記プロパティの前記値を前記列からの値によって更新するステップを備えることを特徴とする方法。
【請求項２１】
前記プロパティの前記値を前記列からの値によって更新するステップに先立ち、
前記プロパティの前記値が変更されたかどうかを決定するステップ、
前記プロパティの前記値が変更されたと決定することに応答して、前記プロパティの前記変更された値を、上書きするまたは保持するオプションを提供するステップ、および、
前記上書きするオプションを提供することに応答して、前記プロパティの前記値を前記列からの値によって更新するステップをさらに備えることを特徴とする請求項２０に記載の方法。
【請求項２２】
前記保持するオプションを提供することに応答して、前記プロパティの前記変更された値を保持するステップをさらに備えることを特徴とする請求項２１に記載の方法。
【請求項２３】
前記プロパティの前記値が失効していることを示すことは、前記プロパティに実質的に近い視覚的標識によることを特徴とする請求項２０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
記載の技術は、一般に、コンピュータグラフィック視覚化プログラムに関し、より詳細には、データをダイアグラムにおける形状とリンクすることに関する。
【背景技術】
【０００２】
従来の描画プログラムは、ダイアグラム内で選択し配置することができる様々な形状またはオブジェクトを提供することにより、ユーザがダイアグラムを作成し編集することを可能にする。ユーザは、所望に応じて、ダイアグラム内で、正方形、長方形、円、三角形、判断ブロックなどの形状およびオブジェクトを、配向しサイズ変更するために、マウスなどのポインティングデバイスを使用することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このような従来の一部の描画プログラムは、ユーザが、ダイアグラム内の形状およびオブジェクトとデータを結び付けることを可能にする機能を提供している。例えば、これらの描画プログラムは、ユーザが外部データをダイアグラム内のオブジェクトと結び付けることを支援しまたは導き、したがってダイアグラムの価値を向上させる、メニューまたはウィザードを提供することができる。外部データをダイアグラム内のオブジェクトにインポートするためにメニューまたはウィザードを使用することに関する１つの主な欠点は、これらのメニューおよびウィザードの使用法が直感的ではなく、データとダイアグラムの細部のどちらの構造にも高度に熟知する必要があることである。この１つの要因は、メニューおよびウィザードが、いくつかの分かりにくいメニューのレイヤの下に「隠れる」ことである。
【０００４】
もう１つの要因は、メニューおよびウィザードは、ユーザが行う決定の効果をユーザが見ることができない「モーダル（ｍｏｄａｌ）」ユーザインターフェースであることである。これは、モーダルウィンドウを閉じる必要があるためであり、すなわち、ユーザは、描画プログラムの操作の続行が可能なる前に、データをダイアグラム内のオブジェクトに結び付けることを終了する必要があるためである。言い換えれば、ユーザは、データをダイアグラム内のオブジェクトに関連付けることを終了するまで、データの関連付けの操作の結果を見ることができない。さらに別の要因は、メニューおよびウィザードが、ダイアグラムの操作中に容易に使用することができるデータについての表示を提供しないことである。
【課題を解決するための手段】
【０００５】
したがって、可視（ｄｉｓｃｏｖｅｒａｂｌｅ）で直感的なインターフェースを介して、ユーザが、データをダイアグラムにリンクし、ダイアグラムにリンクされたデータの値を迅速に認識することを可能にする技法は、極めて有用である。
【図面の簡単な説明】
【０００６】
【図１】本機構が実行されるコンピュータシステムのうち少なくとも一部に通常組み込まれる、選択されたコンポーネントを示すブロック図である。
【図２】本機構のコンポーネントが動作する環境を示すハイレベルブロック図である。
【図３】例示的モードレス外部データウィンドウの表示を示す図である。
【図４】いくつかの実施形態による、本機構が外部データソースからモードレス外部データウィンドウにデータをインポートする方法を示す流れ図である。
【図５】いくつかの実施形態による、本機構がモードレス外部データウィンドウにおける行からダイアグラム内に新しい形状を作成する方法を示す流れ図である。
【図６】いくつかの実施形態による、本機構がモードレス外部データウィンドウにおける行をダイアグラム内の既存の形状に手動でリンクする方法を示す流れ図である。
【図７】いくつかの実施形態による、本機構がリンク動作を実行する方法を示す流れ図である。
【図８】いくつかの実施形態による、本機構がリンクをリフレッシュする方法を示す流れ図である。
【発明を実施するための形態】
【０００７】
本発明の詳細を説明する前に、本明細書に使用されるいくつかの技術について説明する。
【０００８】
用語「連結する（ｃｏｎｎｅｃｔ）」は、一般に、データソースとダイアグラムの間の関係を作成するプロセスを指す。
【０００９】
用語「リンク（ｌｉｎｋ）」は、一般に、データソースにおける行とダイアグラム内の形状の間の関係を指す。例えば、行を形状とリンクすることにより、カスタムプロパティが行からの値によってポピュレート（ｐｏｐｕｌａｔｅ）される。
【００１０】
用語「マップ」は、一般に、列をプロパティに割り当てるプロセスを指す。例えば、行が形状にリンクされるとき、例えば関連付けられるとき、形状の各プロパティは、それにマップされる列からの値によってポピュレートされる。
【００１１】
用語「カスタムプロパティ名（ｃｕｓｔｏｍ ｐｒｏｐｅｒｔｙ ｎａｍｅ）」は、一般に、ある形状においてカスタムプロパティを一意的に識別するために内部で使用される文字列を指す。
【００１２】
用語「リフレッシュ（ｒｅｆｒｅｓｈ）」は、一般に、データソースを更新するプロセスを指す。
【００１３】
外部データリンクソフトウェア機構（ｅｘｔｅｒｎａｌ ｄａｔａ ｌｉｎｋｉｎｇ ｓｏｆｔｗａｒｅｆａｃｉｌｉｔｙ）（「本機構（ｔｈｅ ｆａｃｉｌｉｔｙ）」）は、ユーザが、外部データソースを用いて、ダイアグラム内の形状またはダイアグラムオブジェクト（以下では形状と呼ぶ）のカスタムプロパティをポピュレートすることを可能にする。様々な実施形態において、本機構は、グラフィック視覚化プログラムのコンポーネントとして実装され、ダイアグラムに並んで表示される、外部データのテーブルビュー（ｔａｂｕｌａｒｖｉｅｗ）を介して、ユーザが、ダイアグラム上での様々な処理を行うことを可能にする、モードレスインターフェース（ｍｏｄｅｌｅｓｓｉｎｔｅｒｆａｃｅ）を提供する。ユーザは、外部データソースからデータをインポートして表示し、モードレスインターフェースにおける行をダイアグラム内の既存の形状にリンクする、または、行を描画面に直接ドラッグしてダイアグラム内に追加のリンクされた形状を配置するために、モードレスインターフェースを使用することができる。
【００１４】
一実施形態では、グラフィック視覚化プログラムは、ユーザが、外部データソースと外部データソースにおけるいくつかのデータの部分を指定することを可能にするデータ選択ウィザードを提供し、外部データソースは、本機構によって、インポートされ、モードレスユーザインターフェースにおける２次元テーブルとして表示される。外部データがモードレスインターフェースに表示されると、本機構は、行とダイアグラム内の形状の間のリンクを作成するために、２つの主要な方法、すなわち、（１）モードレスインターフェースから行を描画面の空白部分にドラッグすることによって新しい形状を作成すること、および、（２）モードレスインターフェースから行をダイアグラム内の既存の形状にドラッグすることによって手動でリンクすることを提供する。
【００１５】
本機構は、ユーザがモードレスインターフェースからの複数の行の選択を描画面にドラッグするとき、各行ごとに形状を作成する。本機構は、グラフィック視覚化プログラムの形状ウィンドウで現在選択されている形状マスタから行を表す際に使用するための形状を決定する。「マスタ（ｍａｓｔｅｒ）」は、ユーザが、図面を作成するために繰り返し用いるステンシル（ｓｔｅｎｃｉｌ）上の形状である。例えば、ユーザが、ステンシルから形状を図面にドラッグするとき、この形状が、そのマスタのインスタンスとなる。形状マスタが選択されない場合、本機構は、長方形マスタなど所定のマスタを使用する。複数のマスタが選択された場合、本機構は、ドラッグされた行ごとに描画面上に各マスタをそれぞれ１つドロップ（ｄｒｏｐ）する。次いで、本機構は、選択された行に新しい形状をリンクする。
【００１６】
例として、２つの形状マスタ、例えばＳｈａｐｅＡおよびＳｈａｐｅＢが現在選択されていると仮定し、ユーザが、単一の行、例えばＲｏｗ１を、モードレスインターフェースから描画面にドラッグする場合、本機構は、ＳｈａｐｅＡのインスタンスとＳｈａｐｅＢのインスタンスを描画面上にドロップし、両方の形状をＲｏｗ１にリンクする。ユーザが、複数の行、例えばＲｏｗ１およびＲｏｗ２を、モードレスインターフェースから描画面にドラッグする場合、本機構は、描画面上にＳｈａｐｅＡの２つのインスタンスとＳｈａｐｅＢの２つのインスタンスをドロップする。次いで、本機構は、一方のＳｈａｐｅＡをＲｏｗ１に、他方のＳｈａｐｅＡをＲｏｗ２にリンクし、また、一方のＳｈａｐｅＢをＲｏｗ１に、他方のＳｈａｐｅＢをＲｏｗ２にリンクする。
【００１７】
ユーザが、モードレスインターフェースからの行の選択を、ダイアグラム内の既存の形状上にドラッグするとき、本機構は、既存の形状を、選択された行にリンクする。いくつかの実施形態において、本機構は、ユーザが、ダイアグラム内の複数の形状または形状の下位形状を選択し、次いで１つまたは複数の行を描画面にドラッグすることを可能にする。複数の形状が選択され、ユーザが、選択状態の１つの形状に対して、複数行からなる選択をドラッグする場合、本機構は、選択状態の第１の形状にドラッグされた最上位の行をリンクし、次に、選択状態の次の形状にドラッグされた次に最も上の行をリンクし、以下同様に繰り返す。次の最も上の行が存在しない場合、本機構は、行を「循環し」、ドラッグされた最も上の行を選択状態の次の形状にリンクする。
【００１８】
他の実施形態では、本機構は、モードレスインターフェースにおいて表示されている各行の隣に、１つまたは複数の行をダイアグラム内の既存の形状にリンクするために用いることができるリンクアイコンを含むボタンを提供する。例えば、ユーザが、マウスなどのポインティングデバイスを使用し、リンクアイコンを含むボタンをクリックしたとき、本機構は、行を選択し、カーソルを「ＬｉｎｋＴｏｏｌ」カーソルに変更する。次いで、ユーザが、Ｌｉｎｋ Ｔｏｏｌを用いてダイアグラム内の形状をクリックまたは選択したとき、本機構は、この形状を選択された行にリンクする。
【００１９】
使用されるリンク方法と関係なく、本機構は、行がダイアグラム内の形状にリンクされたとき、次に述べることを実行する。
・ 同じデータソースにおいて形状と他の行の間にリンクが既に存在する場合、本機構は、リンクを維持するまたは除去するオプションをユーザに提供する。いくつかの実施形態では、本機構は、各カスタムプロパティの隣に、リンクが破損したか既に存在しないという標識を提供することにより、リンクを除去する。
・ カスタムプロパティが追加されポピュレートされる。
・ 既存のカスタムプロパティの値は、それらが、ユーザによって入力された場合でも、他のデータソースにおける行によってポピュレートされた場合でも、上書きされる。
【００２０】
本機構は、どのカスタムプロパティがどの値によってポピュレートされるかを決定するために、列名を用いる。列名として同じラベルすなわち名前を有するカスタムプロパティが存在する場合、本機構は、その列の値によって、そのカスタムプロパティをポピュレートする。列名として同じラベルを有する複数のカスタムプロパティが存在する場合、本機構は、列名として同じラベルを有するすべてのカスタムプロパティを、その列からの値によってポピュレートする。ある列と一致するラベルを有するカスタムプロパティがない場合、本機構は、新しいカスタムプロパティを作成し、その列からの値によって新しいカスタムプロパティをポピュレートする。
【００２１】
技術的利点は、本機構は、解析し共有され得る非常に有用な画像を作成するために、ユーザが直感的に外部データをダイアグラム内の形状に関連付けることを可能にすることである。本機構はまた、外部データが変化する時および／または場合に、ダイアグラムを更新するために使用することができる、リフレッシュまたは更新機能を提供する。これにより、ダイアグラムは、もはや静的画像ではなく「失効」していない生きたドキュメントであるため、ダイアグラムの価値が大幅に高まる。
【００２２】
いくつかの実施形態では、本機構は、ユーザが、モードレスインターフェースにおいて列の名前を変更することを可能にする。ユーザが列の名前を変更する場合、データソースからの列が形状にリンクされたとき、またはリンクがリフレッシュされたとき、作成されるカスタムプロパティのラベルに、新しい変更された名前が反映される。つまり、カスタムプロパティの名前は、新しい変更された名前である。モードレスインターフェースにおける列の名前の変更は、実際のデータソースにおける列名に影響を与えない。この機能は、ユーザが、実際のデータソースで使用される名前よりも記述的、快適な、かつ／または親しみやすくなり得る列名によって作業することを可能にする。
【００２３】
ユーザは、リンクの結果として作成されたカスタムプロパティの値を上書きまたは変更することができる。例えば、グラフィック視覚化プログラムは、形状に関連付けられたカスタムプロパティの値にユーザがアクセスし変更することを可能にする機能を提供することができる。いくつかの実施形態では、本機構は、モードレスインターフェースにおけるカスタムプロパティの値に対する変更を反映しない。リフレッシュの際に、本機構は、手動で行われた値に対する任意の変更を、上書きするまたは保持するオプションを提供する。例えば、ユーザが、手動で行われた変更を保持することを選んだ場合、手動で入力されたカスタムプロパティの値は、モードレスインターフェースにおける値によって、上書きされるまたは置き換えられることがない。代わりに、ユーザが、手動で行われた変更を上書きすることにした場合、カスタムプロパティは、モードレスインターフェースのそれらに対応する値によって更新され、したがって、手動で行われた変更を損なう結果となる。
【００２４】
いくつかの実施形態では、本機構によって、ユーザは、単一の形状を、複数のデータソースからの複数のレコードに、すなわち、複数の別個のデータソースごとの１つのレコードにリンクすることができる。結果として、カスタムプロパティは、複数のデータソースの列に対してマップされ得る。この事例では、本機構は、重複する列、すなわち同じラベルを有する列は、カスタムプロパティ内に重複せず、最後または直前にリンクされたレコードの値が優先されるように順序または優先順位を課している。例えば、２つの異なるデータソースにおける複数の列が、同じ列名を有し、両方のデータソースの各列が形状にリンクされている場合、本機構は、列名と同じ名前のラベルを有する１つのカスタムプロパティのみを作成する。さらに、カスタムプロパティの値は、最後にリンクまたはリフレッシュされたデータソースの列からの値である。
【００２５】
いくつかの実施形態では、本機構は、ユーザがモードレスインターフェースからの列をアクティブまたは非アクティブにすることを可能にし、アクティブにされた列についてのみカスタムプロパティを作成する。例えば、本機構は、データソースにおけるすべての列の現在の名前のリストを含むダイアログボックス、および、各列名の隣のチェックボックスを提供することができる。列名の隣のチェックボックスをチェックすることにより、列は、モードレスインターフェースに表示され、すなわち列がアクティブにされ、行が形状にリンクされたとき、カスタムプロパティとして追加される。チェックボックスのチェックを外すことにより、列は、モードレスインターフェースに表示されず、すなわち列が非アクティブにされ、行が形状にリンクされたとき、カスタムプロパティが、この列の値によってポピュレートされることが防止される。つまり、本機構は、非アクティブな列についてのカスタムプロパティを、作成しない、かつ／またはリンクしない。
【００２６】
本機構の様々な実施形態およびその利点は、図面の図１〜８を参照することによって最も良く理解することができる。図面の要素は、必ずしも一定の縮尺比ではなく、本発明の原理を明確に示すために強調されている。図面を通して、種々の図面の同じおよび対応している部分に対して同じ番号が使用されている。
【００２７】
図１は、本機構が実行される少なくとも一部のコンピュータシステムに通常組み込まれる、選択されたコンポーネントを示すブロック図である。これらのコンピュータシステム１００には、コンピュータプログラムを実行するための１つまたは複数の中央処理装置（「ＣＰＵ」）１０２、プログラムおよびデータを含むデータ構造を使用する際に格納するためのコンピュータメモリ１０４、プログラムおよびデータを永続的に格納するための、ハードウェアなどの永続的記憶装置１０６、コンピュータ可読媒体上に格納されたプログラムおよびデータを読み取るための、ＣＤ−ＲＯＭ装置などのコンピュータ可読媒体装置１０８、インターネットなどを介してプログラムおよび／またはデータを含むデータ構造を交換するために、コンピュータシステムを他のコンピュータシステムに接続するための、ネットワーク接続１１０が含まれ得る。
【００２８】
本機構は、コンピュータシステム１００または他の装置によって実行されるプログラムモジュールなどのコンピュータ可読命令の一般的コンテキストで記述することができる。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。メモリ１０４および永続的記憶装置１０６は、本機構を実装する命令を含むことができるコンピュータ可読媒体である。メモリ１０４および永続的記憶装置１０６は、本機構を実装する命令に加え、他の様々な内容を有することができることは理解されよう。
【００２９】
コンピュータシステム１００は、プログラム出力を表示するための、ビデオモニタやＬＣＤパネルなどの１つまたは複数の表示装置、ならびに、ユーザ入力を受け取るための、キーボード、マイク、マウスのようなポインティング装置などの１つまたは複数の入力装置を含むことができることは理解されよう。上記のように構成されたコンピュータシステム１００は、本機構の動作をサポートするために一般に用いられるが、本機構は、様々なタイプおよび構成の装置を使用し様々なコンポーネントを有して実装され得ることは理解されよう。
【００３０】
以下の議論では、本機構の実施形態を様々な具体例と関連して説明する。本機構の実施形態は、これらの例と様々な点で大きく異なる状況で使用され得ることは理解されよう。例えば、これらの例は、一般に、形状のカスタムプロパティに対してのリンクまたは外部データを指しているが、このような例は、カスタムプロパティを含むかどうかを問わず、形状のプロパティとリンクすることができることは当業者には理解されよう。
【００３１】
図２は、本機構のコンポーネントが動作する環境２０を示すハイレベルブロック図である。一般に、環境２０は、エンドユーザのデータをそれらの形状にエンドユーザが取り込むための簡単な方法を提供することによって、ビジネス情報を視覚化するための動的なデータ駆動型ダイアグラムの作成を支援する。図示のように、環境２０は、描画プログラム２０２、外部データ選択コンポーネント２０４、外部データリンクコンポーネント２０６、モードレス外部データウィンドウ２０８、マッパー（ｍａｐｐｅｒ）コンポーネント２１０、リフレッシュコンポーネント２１２、および、ネットワーク２１６を介して描画プログラム２０２に結合された外部データソース２１４を含む。本機構は、特に、描画プログラム２０２のコンポーネントとして実装され、外部データ選択コンポーネント２０４、外部データリンクコンポーネント２０６、モードレス外部データウィンドウ２０８、マッパーコンポーネント２１０、およびリフレッシュコンポーネント２１２を備える。
【００３２】
描画プログラム２０２は、一般に、テンプレート、シンボル、およびドラッグアンドドロップ描画ツールを提供することによって、ユーザが、ダイアグラム、チャート、グラフ、および他の図を描画することを可能にするアプリケーションとして機能する。適切な描画プログラムの１つは、ワシントン州レドモンドのマイクロソフト社から入手可能なＭｉｃｒｏｓｏｆｔ（登録商標）Ｖｉｓｉｏ（登録商標）である。本機構は、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｖｉｓｉｏ（登録商標）以外の市販のグラフィック視覚化プログラム、ならびにカスタム開発のグラフィック視覚化プログラムとしても容易に実装することができることは当業者には理解されよう。
【００３３】
外部データ選択コンポーネント２０４は、一般に、外部データソース２１４からデータをモードレス外部データウィンドウ２０８にインポートする働きをする。いくつかの実施形態では、外部データ選択コンポーネント２０４は、ウィザードすなわちデータ選択ウィザードとして実装され、ユーザがデータソースの指定、フィルタリング、および命名を行うのを支援するためのロジックを含む。例えば、ユーザは、データソース、および２次元テーブルとしてインポートされるデータソースにおけるデータのアイテムまたは部分を指定することができる。次いで、外部データ選択コンポーネント２０４は、データソースとの接続を確立し、指定された部分のデータをダウンロードする。データの部分を受け取ると、外部データ選択コンポーネント２０４は、モードレス外部データウィンドウ２０８を起動し、ダウンロードしたデータの部分を、モードレス外部データウィンドウ２０８内の２次元テーブルとして表示する。一実施形態では、外部データ選択コンポーネント２０４は、外部データソース２１４に接続し、外部データのユーザの指定部分について照会するために、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＡｃｔｉｖｅＸ（登録商標）ＤａｔａＯｂｊｅｃｔｓ（ＡＤＯ）をサポートし利用する。外部データ選択コンポーネント２０４は、ＡＤＯの使用に限らず、外部データソース２１４と通信しそのデータをインポートするための他のデータアクセス技術をサポートし利用することもできることは当業者には理解されよう。
【００３４】
外部データリンクコンポーネント２０６は、一般に、モードレス外部データウィンドウ２０８からデータをダイアグラム内の新規および既存の形状にリンクする働きをする。いくつかの実施形態では、外部データリンクコンポーネント２０６は、リンクの作成、リンクの除去、カスタムプロパティの作成、カスタムプロパティの除去、ならびに、データソースからのデータをダイアグラム内の形状にリンクすることを容易にする他の処理を実行する。外部データリンクコンポーネント２０６については、さらに下記で説明される。
【００３５】
モードレス外部データウィンドウ２０８は、一般に、行をダイアグラム内の新規および既存の形状にリンクするための主インターフェースとして機能する。モードレス外部データウィンドウ２０８は、このウィンドウが表示されているときでも、ユーザが、このウィンドウの外部、例えば２次ウィンドウまたは１次ウィンドウと対話することを可能にしている。例えば、ユーザは、モードレス外部データウィンドウ２０８と他の任意の使用可能なウィンドウの間の切換えを行うことができる。いくつかの実施形態では、モードレス外部ウィンドウ２０８は、データに連結されたダイアグラムのナビゲーションを容易にする。例えば、ユーザが、マウスなどのポインティングデバイスを使用し、モードレス外部データウィンドウ２０８内のリンクされた行をダブルクリックしたとき、本機構は、リンクされた形状を、描画プログラム２０２の描画面に表示させる。モードレス外部データウィンドウ２０８はまた、例えば、視覚インジケータによって、リンク状況の要約を提供することができる。
【００３６】
マッパーコンポーネント２１０は、一般に、ユーザが、データの列からカスタムプロパティへのマッピングを制御することを可能にする働きをする。リフレッシュコンポーネント２１２は、一般に、外部データソース２１４からのデータをリフレッシュする働きをする。
【００３７】
本機構の上記のコンポーネントは、例示のために過ぎず、本機構は、図示されていない他のコンポーネントおよびモジュールを含むことができる。さらに、それらのコンポーネントおよびモジュールに対応して提供された機能は、より少数のコンポーネントおよびモジュールに結合することができ、あるいは、追加のコンポーネントおよびモジュールに分離することもできる。
【００３８】
外部データソース２１４は、一般に、モードレス外部データウィンドウ２０８にインポートされ表示される外部データのリポジトリ（ｒｅｐｏｓｉｔｏｒｙ）として機能する。一実施形態では、外部データソース２１４は、ＡＤＯをサポートしているデータベース管理システム、例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ａｃｃｅｓｓまたは他のリレーショナルデータソース（ｒｅｌａｔｉｏｎａｌｄａｔａ ｓｏｕｒｃｅ）とすることができる。外部データソース２１４は、外部データ選択コンポーネント２０４と通信しそれにデータを提供するための他のデータアクセス技術をサポートし利用することもできることは当業者には理解されよう。
【００３９】
ネットワーク２１６は、例えば、接続されたコンピュータの間の、電子コンテントの転送を容易にする通信リンクである。一実施形態では、ネットワーク２１６は、インターネットを含む。ネットワーク２１６は、ＬＡＮ、ＷＡＮ、および２地点間ダイヤルアップ接続など１つまたは複数の他のタイプのネットワークから構成され得ることは理解されよう。ネットワーク２１６は、存在しない場合もあることは理解されよう。例えば、外部データ選択コンポーネント２０４と外部データソース２１４は、共に同じコンピューティングシステム上に存在することができ、一般にコンピューティングシステム上でサポートされる、プロセス間通信、リモート関数呼出し、および内部通信バスなどの通信メカニズムを介して通信することができる。
【００４０】
図３は、例示的モードレス外部データウィンドウ２０８の表示を示す図である。一実施形態では、モードレス外部データウィンドウ２０８は、ドキュメントウィンドウ、例えば描画面を提供しているウィンドウの底部に格納され、また、移動、サイズ変更、閉じること、および呼び出すことができる。モードレス外部データウィンドウ２０８が起動されたときにアクティブであったドキュメントウィンドウが、アクティブであるとき、モードレス外部データウィンドウ２０８は可視である。また、複数のドキュメントウィンドウが、同じドキュメント、例えばダイアグラムを表示するために使用される場合、それぞれのドキュメントウィンドウは、それ自体のモードレス外部データウィンドウ２０８を有する。さらに、モードレス外部データウィンドウ２０８を閉じることは、ダイアグラム、またはどのデータソースに対する連結にも影響を与えない。
【００４１】
図示のように、モードレス外部データウィンドウ２０８は、データソースタブ３０２、およびデータグリッド（ｄａｔａｇｒｉｄ）３０４を備える。データソースタブ３０２は、一般に、複数の連結されたデータソースの間の切換えを可能にする働きをする。例えば、データソースタブをクリックすることにより、データグリッド３０４の内容が、選択されたデータソースからのデータを反映するように変更される。データグリッド３０４は、一般に、現在選択されているデータソースタブ３０２を有する外部データソースからのデータの、テーブル表示を提供する働きをする。一実施形態では、データグリッド３０４は、リンクアイコン３０６、列ヘッダ３０８、およびデータセル３１０を備える。
【００４２】
一実施形態では、データセル３１０の各行には、その行がリンクされているかどうかを示す、行自体のリンクアイコン３０６が提供される。図示のように、連結された鎖は、行が現在リンクされていることを示し、切れている鎖は、行がリンクされていないことを示している。図３の例示的モードレス外部データウィンドウ２０８では、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」を有する行が現在リンクされており、列名「Ｄｏｃｕｍｅｎｔａｔｉｏｎ」を有する行はどの形状にも現在リンクされていない。
【００４３】
列ヘッダ３０８は、一般に、アクティブな列の名前を表示する働きをする。一実施形態では、列ヘッダ３０８内のテキストは、データソースにおける列の元の名前である。図３の例示的モードレス外部データウィンドウ２０８では、列ヘッダ３０８内のテキストに示されているアクティブな列の名前は、「Ｎａｍｅ」、「Ｏｗｎｅｒ」、「ＣｏｍｐｌｅｔｅｄＤａｙｓ」、「Ｔｏｔａｌ Ｔｉｍｅ」、「ＤｕｅＤａｔｅ」、「Ｏｎ Ｔｒａｃｋ」、および「Ｌｉｎｋ」であり、これらの名前は、データソースにおける列の元の名前であり得る。
【００４４】
いくつかの実施形態では、本機構は、ユーザが列の名前を変更することを可能にする。例えば、本機構は、ユーザが起動することができ、そのウィンドウを介して、ユーザが列を選択し列の名前を編集することができるダイアログウィンドウを提供することができる。編集されたまたは変更された列名は、コラムヘッダ３０８に表示されるが、データソースには反映されない。さらに、リンクがリフレッシュされる場合、編集された列名は、カスタムプロパティのラベルまたは名前に反映される。
【００４５】
本機構はまた、ユーザが列をアクティブおよび非アクティブにすることを可能にし、それによって、モードレス外部データウィンドウ２０８に列が表示されるまたは表示されないようにする。一実施形態では、列のアクティブ／非アクティブはまた、その列がリンク付けに関与しているかどうかを示す。非アクティブな列は、リンクの際に形状に適用されない。例えば、本機構は、データソースにおける列をリストするダイアログウィンドウを提供し、そのウィンドウを介して、ユーザは、アクティブにされモードレス外部データウィンドウ２０８に表示される列を、指定または選択することができる。さらに、データソースがアクティブになっているときはいつでも、すなわちデータソースに対応するデータソースタブ３０２が現在選択されているとき、ユーザは、ダイアログウィンドウを使用し、アクティブな列の選択を変更することができる。本機構は、これらの変更をモードレス外部データウィンドウ２０８に反映する。
【００４６】
図４は、いくつかの実施形態による、本機構が外部データソースからデータをモードレス外部データウィンドウ２０８にインポートする方法４００の流れ図を示す。例えば、大きな開発プロジェクトを担当するプログラムマネージャは、プロジェクト情報の焦点および読み易さを改善するために、Ｅｘｃｅｌなどのスプレッドシードで現在管理しているプロジェクト状況情報を、データ連結ダイアグラムで提示したいことがある。ステップ４０２で、プログラムマネージャは、コンピューティングシステム上で描画プログラム２０２のインスタンスを実行する。
【００４７】
ステップ４０４で、プログラムマネージャは、本機構の外部データ選択コンポーネント２０４などのデータ選択機能を始動する。ステップ４０６で、プログラムマネージャは、外部データソースを指定する。例えば、プログラムマネージャは、外部データ選択コンポーネント２０４を使用し、Ｅｘｃｅｌスプレッドシートプログラムおよびプロジェクト情報を含むデータファイルの位置と名前を指定する。
【００４８】
ステップ４０８で、本機構は、指定されたデータソースからデータをインポートする。例えば、外部データ選択コンポーネント２０４は、スプレッドシートプログラムをホストするコンピューティングシステムとの接続を確立し、指定されたデータファイルを要求または照会する。ステップ４１０で、本機構は、インポートされたデータを、２次元テーブルとして、モードレスウィンドウすなわち対話ディスプレイに表示する。例えば、本機構は、モードレス外部データウィンドウ２０８のインスタンスを立ち上げ、インポートされたプロジェクト情報を、２次元テーブルとしてモードレス外部データウィンドウ２０８に表示し、プログラムマネージャに示す。
【００４９】
本明細書に開示の上記および他の方法およびプロセスについて、例示的流れ図において実行される機能は、異なる順序で実装されてもよいことは当業者には理解されよう。さらに、流れ図に示されているステップは、例示に過ぎず、いくつかのステップは、本発明の本質を損なうことなく、任意選択とする、より少ないステップに組み合わせる、あるいは追加のステップに拡張することができる。
【００５０】
図５は、いくつかの実施形態による、本機構がモードレス外部データウィンドウ２０８に表示される行から、ダイアグラム内に新しい形状を作成する方法５００の流れ図を示す。プログラムマネージャの例を続けると、情報の理解し易さを改善するために、プログラムマネージャは、連結グラフなどのデータ連結ダイアグラムを介してプロジェクト情報を表示したいことがある。さらに、連結グラフは存在せずしたがって描画する必要があるため、プログラムマネージャは、連結グラフを含む形状を作成するために、モードレス外部データウィンドウ２０８に表示される情報の行を、描画面にドラッグすることによって、連結グラフを作成したいことがある。
【００５１】
ステップ５０２で、プログラムマネージャは、マウスなどのポインティングデバイスを使用し、外部データウィンドウ２０８における１つまたは複数の行を選択し、選択した行を、描画面の空白部分上にドラッグする。ステップ５０４で、本機構は、形状ウィンドウにおける形状マスタが現在選択されているかどうかを決定するための検査を行う。描画プログラム２０２は、通常、描画のためにユーザに使用可能にされている形状マスタまたは形状ステンシルを含む、形状ウィンドウを提供する。
【００５２】
形状マスタが現在選択されていない場合、ステップ５０６で、本機構は、ドラッグされた各行ごとに、描画面上に長方形など既定のマスタ形状のインスタンスを作成する。プログラムマネージャの例では、図３の例示的モードレス外部データウィンドウ２０８に示されるようなプロジェクト情報を仮定し、また、プログラムマネージャが、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」および「Ｒｉｓｋ Ｐｌａｎ」を有する行を選択して描画面の空白部分にドラッグしたと仮定すると、本機構は、描画面上に１つの長方形の２つの別個のインスタンスを作成する。本機構は、その長方形の一方のインスタンスを、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」を有する行に関連付け、その長方形のもう一方のインスタンスを、列名「ＲｉｓｋＰｌａｎ」を有する行に関連付ける。
【００５３】
そうではなく、形状マスタが現在選択されている場合、ステップ５０８で、本機構は、ドラッグされた各行ごとに、描画面上に、選択された各マスタ形状のインスタンスを作成する。プログラムマネージャの例を続けると、例えば長方形と正方形のような２つのマスタ形状が現在選択されており、プログラムマネージャが、（図３における例示的モードレス外部データウィンドウ２０８から）列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」および「Ｒｉｓｋ Ｐｌａｎ」を有する行を選択して描画面の空白部分上にドラッグしたと仮定すると、本機構は、描画面上に、１つの長方形の２つの別個のインスタンスと、１つの正方形の２つの別個のインスタンスを作成する。本機構は、その長方形の一方のインスタンスを、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」を有する行に関連付け、その長方形のもう一方のインスタンスを、列名「ＲｉｓｋＰｌａｎ」を有する行に関連付け、その正方形の一方のインスタンスを、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」を有する行に関連付け、その正方形のもう一方のインスタンスを、列名「ＲｉｓｋＰｌａｎ」を有する行に関連付ける。したがって、各行は、長方形のインスタンスと正方形のインスタンスに関連付けられる。
【００５４】
ステップ５０６または５０８で、描画面上に１つまたは複数の形状を作成した後、本機構は、描画面上に作成された各形状について（ステップ５１０）、ステップ５１２を実行し、描画面上で作成されたすべての形状が処理されるまで続ける（ステップ５１４）。ステップ５１２で、本機構は、形状を、モードレス外部データウィンドウ２０８におけるそれに対応する行にリンクし、描画面上に作成された次の形状の処理に進む（ステップ５１４）。上記のステップ５０６でのプログラムマネージャの例を続けると、本機構は、長方形の一方のインスタンスを、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」を有する行にリンクし、長方形のもう一方のインスタンスを、列名「Ｒｉｓｋ Ｐｌａｎ」を有する行にリンクする。リンク動作は、図７における方法７００と関連して後でさらに説明する。
【００５５】
図６は、いくつかの実施形態による、本機構が、モードレス外部データウィンドウ２０８における行をダイアグラム内の既存の形状に手動でリンクする、方法６００の流れ図を示す。上記のプログラムマネージャの例では、プログラムマネージャは、プロジェクト情報の理解し易さを改善するのに使用するためのダイアグラムを、以前に作成していることがあり得る。さらに、このダイアグラムは、描画面に現在表示されている、長方形を含むことができる。
【００５６】
ステップ６０２で、プログラムマネージャは、ポインティングデバイスを使用し、モードレス外部データウィンドウ２０８における１つまたは複数の行を選択し、選択した行を、描画面に表示された既存の形状上にドラッグする。プログラムマネージャの例では、図３の例示的モードレス外部データウィンドウ２０８に示されるようなプロジェクト情報を仮定すると、プログラムマネージャは、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」および「Ｒｉｓｋ Ｐｌａｎ」を有する行を選択し、描画面上に現在表示されている長方形上にドラッグすることがあり得る。
【００５７】
次いで、最上位の選択された行から開始し、下方に向かって順々に処理し（ステップ６０４）、本機構は、すべての選択された行が処理されるまで（ステップ６０８）、ステップ６０６を実行する。ステップ６０６で、本機構は、形状を、モードレス外部データウィンドウ２０８において、現在アクティブな行、すなわち選択されドラッグされた現在処理されている行にリンクし、次のドラッグされた行の処理に進む（ステップ６０８）。プログラムマネージャの例を続けると、本機構は、最初に、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」を有している行である、最上位の選択された行を、現在アクティブな行として識別し、この行を長方形にリンクする。次いで、本機構は、列名「ＲｉｓｋＰｌａｎ」を有している、次に最も上位の選択された行を、現在アクティブな行として識別し、この行を長方形にリンクする。本機構は、すべての選択されドラッグされた行が処理されるまで、このようなやり方で処理を継続する。
【００５８】
他の実施形態において、本機構は、ユーザが既存のリンクを置き換えたいかどうかを決定するようにユーザに促すことができる。例えば、本機構は、次のオプション：（１）ｙｅｓｒｅｐｌａｃｅ（はい、置き換えます）、（２）ｎｏ ｒｅｐｌａｃｅ（いいえ、置き換えません）、（３）ｙｅｓ ｒｅｐｌａｃｅ ａｌｗａｙｓ（常に置き換える）、および（４）ｎｏ ｒｅｐｌａｃｅ ａｌｗａｙｓ（常に置き換えない）を有するダイアログを提示することができる。さらに他の実施形態では、本機構は、「手動リンク（ｍａｎｕａｌｌｉｎｋｉｎｇ）」をサポートすることができ、手動リンクでは、ユーザは、最初に、描画ページから、形状および／または下位形状を選択し、モードレス外部データウィンドウ２０８における１つまたは複数の行を選択し、次いで、選択された形状に行をリンクするオプションを選択する。
【００５９】
プログラムマネージャは、任意の数の行を選択し、選択した行を、描画面の空白部分またはダイアグラム内の形状にドラッグすることができることは当業者には理解されよう。さらに、プログラムマネージャは、異なる組合わせおよび異なる数の行および形状を用いて、所望に応じて、選択およびドラッグ操作を繰り返すことができる。
【００６０】
いくつかの実施形態では、本機構は、ユーザが、１つまたは複数の行を選択しダイアグラム内の複数の形状にドラッグすることを可能にする。この場合、本機構は、選択された複数の形状の順序を確立し、ドラッグされた最上位の行を、選択されている第１の形状にリンクし、ドラッグされた次に最も上の行を、選択されている次の形状にリンクし、以下同様に繰り返す。次に最も上の行がない場合、本機構は、行を循環し選択されている第２の形状に、ドラッグされた最上位の行をリンクし、選択されたそれぞれの形状がリンクされるまで繰り返す。プログラムマネージャの例では、３つの形状、すなわち、長方形、正方形、および台形が、描画面に表示されると仮定すると、プログラムマネージャは、３つの形状を選択し、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」および「Ｒｉｓｋ Ｐｌａｎ」を有する行を、描画面上の選択された形状にドラッグすることがあり得る。この例では、本機構は、形状を、長方形、正方形、台形の順序にし、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」を有している行である最上位の選択された行を、長方形にリンクし、列名「ＲｉｓｋＰｌａｎ」を有している行である次に最も上位の選択された行を、順序が次の形状である正方形にリンクする。次に最も上の行がないため、本機構は、行を循環し、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」を有する行である次の最も上の選択された行を、台形にリンクする。
【００６１】
図７は、いくつかの実施形態による、本機構がリンク動作を実行する方法７００の流れ図を示す。特に、方法７００は、行とダイアグラム内の形状の間のリンク付けを示す。いくつかの実施形態では、本機構の外部データリンクコンポーネント２０６は、アクティブな列、すなわちモードレス外部データウィンドウ２０８に現在表示されている列のみを、ダイアグラム内の形状にリンクする。ステップ７０２で、外部データリンクコンポーネント２０６は、形状と、同じデータソースにおける他の行との間の、どの既存のリンクも除去する。一実施形態では、リンクが除去された各行ごとに、外部データリンクコンポーネント２０６は、行がその他の形状にリンクされているかどうかを決定するための検査を行うことができ、行がその他の形状にリンクされていない場合、外部データリンクコンポーネント２０６は、行が現在リンクされていないことを、行のリンクアイコン３０６で示す。
【００６２】
次いで、リンクされた行における各アクティブな列について（ステップ７０４）、外部データリンクコンポーネント２０６は、ステップ７０６から７１０を実行し、その行におけるすべてのアクティブな列が処理されるまで続ける（ステップ７１２）。ステップ７０６で、外部データリンクコンポーネント２０６は、形状が、列名と同じラベルまたは名前を有するカスタムプロパティを現在有するかどうかを決定するための検査を行う。形状が、列と同じ名前のカスタムプロパティを有していない場合、ステップ７０８で、外部データリンクコンポーネント２０６は、その形状に対するカスタムプロパティを作成し、新しく作成したカスタムプロパティに列と同じ名前を与える。
【００６３】
ステップ７０６で、外部データリンクコンポーネント２０６は、形状が列名と同じ名前を有するカスタムプロパティを現在有しているか、もしくは、ステップ７０８で形状に対する新しいカスタムプロパティを作成した後、それに列と同じ名前を与えるかを決定し、ステップ７１０で、外部データリンクコンポーネント２０６は、列からの値、すなわちその列に対応しているデータセル３１０からの値によってカスタムプロパティをポピュレートし、次のアクティブな列の処理に進む（ステップ７１２）。他の実施形態では、既存のプロパティを使用し、合致する行列におけるデータを既存のプロパティに入れるべきかどうかを決定するための第２の検査として、データ型を用いることもできる。行におけるアクティブな列をリンクした後、外部データリンクコンポーネント２０６は、行のリンクアイコン３０６で、その行が現在リンクされていることを示す。
【００６４】
上記のステップ６０６におけるプログラムマネージャの例を続けると、外部データリンクコンポーネント２０６は、最初に、列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」を有する行である、最上位の選択された行に、長方形をリンクし、次いで、列名「ＲｉｓｋＰｌａｎ」を有する行である、次の最も上の選択された行に、同じ長方形をリンクする。最上位の行の処理の際に、長方形が、モードレス外部データウィンドウ２０８における他の任意のレコード、例えば、列名「Ｍａｎｕｆａｃｔｕｒｉｎｇ」または「ＱｕａｌｉｔｙＴｅｓｔｉｎｇ」を有するレコードのいずれか１つに、現在リンクされている場合、外部データリンクコンポーネント２０６は、このリンクを除去する。列名「Ｄｏｃｕｍｅｎｔａｔｉｏｎ」および「ＰｒｏｃｕｒｅＣｏｎｔｒａｃｔｏｒｓ」を有するレコードは、それぞれのリンクアイコン３０６によって示されるように、リンクされていない。次いで、外部データリンクコンポーネント２０８は、長方形を最上位の行にリンクする。このようなリンク動作の後、この長方形についてのカスタムプロパティおよびそれらの値は、以下のようになり得る。
【００６５】
【表１】
0005297511.tif 000002
【００６６】
長方形を最上位の行にリンクした後、外部データリンクコンポーネント２０６は、この長方形を、次に最も上の選択された行にリンクする。次の最も上の選択された行を処理する際に、外部データリンクコンポーネント２０６は、長方形と列名「ＭａｒｋｅｔｉｎｇＰｌａｎ」を有する行との間に現存するリンクを除去することによって開始する。いくつかの実施形態では、外部データリンクコンポーネント２０６は、リンクがもはや存在せず、データすなわち表示されている値が失効している、例えばもはや現在のものではあり得ないことを示す標識を、各カスタムプロパティの隣に提供する。他の実施形態では、外部データリンクコンポーネント２０６は、除去されたリンクから作成された１つまたは複数のカスタムプロパティを、除去または削除することができる。次いで、外部データリンクコンポーネント２０８は、長方形を、次に最上位の行にリンクする。このリンク動作の後、長方形についてのカスタムプロパティおよびそれらの値は、以下のようになり得る。
【００６７】
【表２】
0005297511.tif 000003
【００６８】
いくつかの実施形態では、本機構は、ユーザが、単一の形状を、複数のデータソースからの複数のレコードにリンクすることを可能にする。プログラムマネージャの例を続けると、プログラムマネージャは、次いで、外部データ選択コンポーネント２０４を使用し、他のプロジェクト情報を含む別のＥｘｃｅｌデータファイルをインポートすることができる。例えば、プロジェクト情報は、以下のように、各オーナー（ｏｗｎｅｒ）ごとのオフィスの場所（ｏｆｆｉｃｅｌｏｃａｔｉｏｎ）や電話番号（ｐｈｏｎｅ ｎｕｍｂｅｒ）などの連絡情報を有することができる。
【００６９】
【表３】
0005297511.tif 000004
【００７０】
次いで、プログラムマネージャは、列Ｏｗｎｅｒに「Ｅｄｗａｒｄ」を有する行を選択して、描画面に現在表示されている長方形にドラッグすることにより、データリンクコンポーネント２０６に、長方形をその行にリンクさせることができる。このリンク動作の後、長方形についてのカスタムプロパティおよびそれらの値は、以下のようになり得る。
【００７１】
【表４】
0005297511.tif 000005
【００７２】
さらに、外部データリンクコンポーネント２０６は、以前から存在するリンクが、長方形と、異なるデータソースにおける行の間のリンクであったため、以前から存在するリンクを除去しない。したがって、以前のリンクの結果として作成されたカスタムプロパティは、最新のリンク動作の後、リンクされているままである。さらに、外部データリンクコンポーネント２０６は、そのカスタムプロパティが既に存在するため、名前「Ｏｗｎｅｒ」を有する重複のカスタムプロパティを作成しない。この重複カスタムプロパティの値、すなわち名前「Ｏｗｎｅｒ」を有するカスタムプロパティの値は、最も新しくリンクされたデータソースからの値、すなわち、各オーナーごとの連絡情報についてのプロジェクト情報である。他の実施形態では、外部データリンクコンポーネント２０６は、重複カスタムプロパティの値を更新せず、先行の既存の値を維持する。
【００７３】
図８は、いくつかの実施形態による、本機構がリンクをリフレッシュする方法８００の流れ図を示す。いくつかの実施形態では、本機構は、リフレッシュ動作を始動するためにユーザが使用することができるボタンまたは他のアクティブ化デバイス（ａｃｔｉｖａｔｉｏｎｄｅｖｉｃｅ）を提供することができる。例えば、ユーザは、ダイアグラム内の形状を選択し、ポインティングデバイスを使用しリフレッシュボタンを押して、リフレッシュ動作を始動することができる。選択された形状が、複数のデータソースの複数のデータの行にリンクされている場合、本機構は、ユーザが、それらからリフレッシュするための単一のデータソースを選択することを可能にする。例えば、本機構は、ウィンドウ内に複数のデータソースをリストし、ユーザが単一のデータソースを選択することを可能にすることができる。他の実施形態では、本機構は、複数のデータソースへのリンクを順次にリフレッシュすることができる。
【００７４】
選択された形状に関連付けられた各カスタムプロパティについて（ステップ８０２）、本機構は、ステップ８０４から８１６を実行し、選択された形状に関連付けられたすべてのカスタムプロパティが処理されるまで続ける（ステップ８１８）。ステップ８０４で、本機構は、カスタムプロパティにおける値が、データソースからの元の値と同じであるかどうかを決定するための検査を行う。それが同じではない場合、カスタムプロパティの値は、そのまま変更されず、本機構は、次のカスタムプロパティの処理に進む（ステップ８１８）。
【００７５】
そうでなく、カスタムプロパティの値が、データソースにおける元の値と同じ場合には、ステップ８０６で、本機構は、カスタムプロパティにリンクされた列が、現在アクティブではなく、したがって、モードレス外部データウィンドウ２０８に表示されないかどうかを決定する。リンクされた列が、現在アクティブな列でない場合、ステップ８０８で、本機構は、カスタムプロパティの値が失効していることを示し、次のカスタムプロパティの処理に進む（ステップ８１８）。
【００７６】
そうでなく、リンクされた列が、現在アクティブな列の場合、ステップ８１０で、本機構は、カスタムプロパティの値が、例えばユーザによって、変更されたかどうかを決定する。カスタムプロパティの値が変更されていなかった場合、ステップ８１６で、本機構は、データソースにおけるリンクされた列からの値により、カスタムプロパティの値を更新またはリフレッシュし、次のカスタムプロパティの処理に進む（ステップ８１８）。
【００７７】
そうでなく、カスタムプロパティの値が変更された場合、ステップ８１２で、本機構は、ユーザがカスタムプロパティの値を更新することを選択したかどうかを決定する。ユーザが、カスタムプロパティの値を更新することを選択したと本機構が決定した場合、ステップ８１６で、本機構は、カスタムプロパティの値を、データソースにおけるリンクされた列からの値によって更新し、次のカスタムプロパティの処理に進む（ステップ８１８）。そうでない場合、ステップ８１４で、本機構は、カスタムプロパティの現在の値を保持し、次のカスタムプロパティの処理に進む（ステップ８１８）。
【００７８】
本明細書に記載の本発明の実施形態は、以上のことから、例示が目的であり、本発明の趣旨および範囲から逸脱することなく、様々な修正を加えることができることは理解されよう。したがって、本発明は、添付の特許請求の範囲に明示的に記載される要素のみによって限定される。
【符号の説明】
【００７９】
２０ 環境
１００ コンピュータシステム
１０２ ＣＰＵ
１０４ メモリ
１０６ 永続的ストレージ
１０８ コンピュータ可読メディアドライブ
１１０ ネットワーク接続
２０２ 描画プログラム
２０４ 外部データ選択コンポーネント
２０６ 外部データリンクコンポーネント
２０８ モードレス外部データウィンドウ
２１０ マッパーコンポーネント
２１２ リフレッシュコンポーネント
２１４ 外部データソース
２１６ ネットワーク
３０２ データソースタブ
３０４ データグリッド
３０６ リンクアイコン
３０８ 列ヘッダ
３１０ データセル
４００ 方法
５００ 方法
６００ 方法
７００ 方法
８００ 方法
【図１】
0005297511.tif 000006
【図２】
0005297511.tif 000007
【図３】
0005297511.tif 000008
【図４】
0005297511.tif 000009
【図５】
0005297511.tif 000010
【図６】
0005297511.tif 000011
【図７】
0005297511.tif 000012
【図８】
0005297511.tif 000013