以下、本発明の実施の形態を、図面を参照して詳細に説明する。
図1は、本発明の実施形態に係わる情報処理装置100の機能構成、および各機能の呼び出し関係を示す図である。図1において、ユーザ操作(101)は、GUI(グラフィカル・ユーザ・インタフェース)における定義画面(プログラム自動生成ツールにおいてプログラムの定義を行う画面)から行われる。具体的には、情報処理装置100にて動作しているプログラム自動生成ソフトにおけるGUIレイアウトタブ(図3)、項目一覧タブ(図4)でGUIレイアウト、または項目一覧の定義を行うが、タブの相互切り替えに際しての処理に関連するソフトウェア構成部品と、構成部品間の要求の図である。なお、GUIレイアウトタブおよび項目一覧タブに定義されている情報は、定義画面ヘッダの定義ファイル名(図3、図4の画面例では“USERREQ.wprx”)、あるいは当該画面を一意的に決定する情報により特定される。
ユーザ操作(101)により、項目一覧タブ選択要求121が、入出力定義エディタコントローラ部102に通知されると、入出力定義エディタコントローラ部102は、項目一覧モデル変換部103にレイアウトモデル変換要求122を通知する。
項目一覧モデル変換部103は、GUIレイアウト定義を項目一覧定義に変換するため、現在のGUIレイアウト定義(GUIレイアウトタブで定義されたレイアウト定義でありレイアウト部品情報の定義の一覧)をレイアウトモデル記憶部107から取得する(レイアウトモデル変換時取得要求123)。さらに、項目一覧モデル変換部103は、取得した現在のGUIレイアウトを、項目一覧定義(項目情報の定義の一覧)に変換し、変換結果を項目一覧モデル記憶部104に登録する(既にある場合は更新する。項目一覧モデル更新要求124)。すなわち、他の項目定義との参照関係が設定された、プログラムを生成するために定義された画面の項目定義を記憶する。
入出力定義エディタコントローラ部102は、項目一覧定義の登録または更新後、当該登録または更新結果を取得する(項目一覧モデル表示時取得要求125)。入出力定義エディタコントローラ部102は、取得した項目一覧定義を項目一覧タブに表示するよう項目一覧表示部105に要求し、項目一覧表示部105は要求に従って項目一覧定義の表示を行う。
ユーザ操作(101)により、レイアウトタブ選択要求141が、入出力定義エディタコントローラ部102に通知されると、入出力定義エディタコントローラ部102は、GUIレイアウトモデル変換部106に項目一覧モデル変換要求142を通知する。
GUIレイアウトモデル変換部106は、項目一覧定義をGUIレイアウトモデル定義に変換するため、現在の項目一覧定義を項目一覧モデル記憶部104から取得する(項目一覧モデル変換時取得要求143)。さらに、GUIレイアウトモデル変換部106は、取得した現在の項目一覧定義を、GUIレイアウト定義に変換し、レイアウトモデル記憶部107に登録する(既にある場合は更新する。レイアウトモデル更新要求144)。
入出力定義エディタコントローラ部102は、GUIレイアウト定義の登録または更新後、当該登録または更新結果を取得する(レイアウトモデル表示時取得要求145)。入出力定義エディタコントローラ部102は、取得したGUIレイアウト定義をGUIレイアウトタブに描画するための準備としてGUIレイアウトコントローラ部108にGUIレイアウト部品(オブジェクト)の生成を要求する(GUIレイアウト生成要求146)。
GUIレイアウト生成要求を受けたGUIレイアウトコントローラ部108は、レイアウトモデル記憶部107から取得したGUIレイアウト定義に基づき、描画するためのGUI部品などを生成する。まず、GUIレイアウト上のGUI部品(テキスト入力ボックスやボタンなど)を配置するためのベースとなる部品(ベース部品)を生成し、GUIレイアウト記憶部109(GUIレイアウト&部品記憶部)に追加する(GUIレイアウト追加要求147)。
GUIレイアウトコントローラ部108は、さらにベース部品に配置するGUI部品を生成するため、ベース部品の直下のGUI部品ごとに、GUI部品生成要求148をGUI部品コントローラ部110に発行する。
GUI部品コントローラ部110は、GUI部品生成要求148により要求されたGUI部品を、GUIレイアウト定義の個々の部品の定義(項目情報から変換されたオブジェクトの定義)に基づき生成する。GUIレイアウト定義において、GUI部品に入れ子のGUI部品(ベース部品の直下に配置される部品ではなく、GUI部品上に配置される子供となるGUI部品)が定義されている場合には、入れ子の部品を生成するようにGUI部品コントローラ部110に再帰的に要求を行う(GUI部品生成要求149)。生成したGUI部品は、GUIレイアウト記憶部109に追加する(GUI部品追加要求150)。
GUIレイアウトコントローラ部108は、GUI部品(ベース部品を含む)の生成が完了すると、GUIレイアウト描画部111にGUIレイアウト描画要求151を発行する。この要求により、GUIレイアウト描画部111は、GUIレイアウトタブにGUIレイアウトの表示を行う。
図2は、本発明の実施形態に係わる情報処理装置100(プログラム自動生成装置)のハードウェア構成の一例を示すブロック図である。
図2に示すように、情報処理装置100は、システムバス204を介してCPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、入力コントローラ205、ビデオコントローラ206、メモリコントローラ207、通信I/Fコントローラ208等が接続された構成を採る。 CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、各サーバあるいは各PCが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が記憶されている。なお外部メモリはデータベースであってもよい。
RAM202は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードし、ロードしたプログラムを実行することで各種動作を実現する。
また、入力コントローラ205は、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。
ビデオコントローラ206は、ディスプレイ210等の表示器への表示を制御する。尚、表示器は液晶ディスプレイ等の表示器でもよい。これらは、必要に応じて管理者が使用する。
メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、あるいは、PCMCIA(Personal Computer Memory Card International Association)カードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ208は、ネットワークを介して外部機器と接続・通信し、ネットワークでの通信制御処理を実行する。例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いた通信等が可能である。
尚、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上に表示することが可能である。また、CPU201は、ディスプレイ210上のマウスカーソル(図示しない)等によるユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイルおよび各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明についても後述する。
図3は、本発明の実施形態に係わるプログラム自動生成ツールのうちGUIレイアウトの定義を行う画面構成の一例である。GUIレイアウト定義画面は、主に次のエリアから構成されている。
すなわち、定義された単位毎にフォルダ階層としてデータが格納される定義エクスプローラ領域301、1つのGUIレイアウト定義を視覚的に配置操作するためのキャンバス領域302、キャンバス領域302に配置するGUI部品(例えばテキストフィールド304)を選択するパレット領域303から構成されている。
また、開発者が様々な定義情報を記述するため、プログラム自動生成ツールの定義画面で共通に表示されるタブが配置されている。例えば、項目一覧タブ305、レイアウトタブ306であり、これらは図4の項目一覧定義画面でも表示される。本発明の実施形態では、GUIレイアウト定義画面(図3)と項目一覧定義画面(図4)を切り替えながら操作する。
また、本発明の実施形態では、定義エクスプローラ領域301にあるデータモデル308をパレット領域303のGUI部品と同様に、キャンバス領域302に配置することが可能である。すなわち、データモデル308から、データベースのテーブルに記載されたデータ項目(カラム)を1つまたは複数選択し、キャンバス領域302に配置する。そうすると、データベースのスキーマとして定義されたデータ項目(カラム)の情報(カラム名、データ種別、サイズなど)を抽出して、例えば、データ種別がテキストや数値である場合にはテキストフィールド、booleanである場合にはチェックボックスなどとして配置することができる。
GUIレイアウト定義画面300bは、GUIレイアウト定義画面300aに対してテキストフィールド307を1つ追加し、名前を“ユーザID”と設定した場合を示している。タイトルや入力領域のサイズなどは、キャンバス領域302においてマウスでクリックして更新可能状態として交信してもよいし、またGUI部品をクリックする際に、GUIレイアウト定義画面300の左下の領域(“Property”定義領域)に、属性としてGUI部品に関連する情報の一覧を表示し、属性をキーボード入力により修正することも可能である。
図4は、本発明の実施形態に係わるプログラム自動生成ツールのうち項目一覧の定義を行う画面構成の一例である。項目一覧定義画面は、主張な領域は、項目一覧設定領域401である。
項目一覧設定領域401は表形式になっており、開発者は1行に1つの情報(例えばGUIレイアウトにおけるテキストフィールド、チェックボックス、ボタン、テキスト)などを詳細の属性と共に定義する。
項目一覧定義画面400bは、項目一覧定義画面400aに対して項目タイプ“入力”を1つ追加し、名前を“ユーザID”と設定した場合を示している(行402の定義)。行402の定義は、図3のテキストフィールド307に対応するものである。
ここで、図3と図4の定義の関係を説明する。例えば図3のGUIレイアウト定義画面300aを表示しているときに、項目一覧タブ305を選択すると、表示は図4の項目一覧定義画面400aに切り替えられる。実質的に開発しているプログラムの同じ情報を定義している。図4において、前述の通り行402を追加して項目一覧定義画面400bとした後、レイアウトタブ306を選択すると、GUIレイアウト定義画面300bのようにレイアウト上でもテキストフィールド307が追加されて描画される。
逆に、GUIレイアウト定義画面300aに対してレイアウト上でもテキストフィールド307を追加してGUIレイアウト定義画面300bとした後、項目一覧タブ305を選択すると、項目一覧定義画面400bのように項目一覧上でも行402の定義が追加される。
すなわち、GUIレイアウト定義と項目一覧定義は、タブ(項目一覧タブ305およびレイアウトタブ306)の操作をトリガとして、同期がとられている。
さらに、後述する図5の項目一覧定義を記憶するデータ構成rows[i]と、不図示のGUIレイアウト定義を記憶するデータ構成には、rowIndexとして各定義の定義順が記載されている。そのため、GUIレイアウト定義で最上部に定義されたGUI部品に対応する項目の定義は、項目一覧定義の1行目に表示される。これにより、定義の位置関係についても同期がとられ、いずれの定義を変更してもプログラムロジックとGUIレイアウトの関係が壊れてしまうことはない。
以上により、図3と図4の説明を完了する。このように、項目一覧における開発とGUIレイアウトにおける開発(すなわち項目の定義も部品の定義)において同期がとられることで、開発中のどのタイミングでもGUIレイアウトを確認可能とし、またプログラムロジックとGUIレイアウトのいずれを編集したとしても対応関係を修正する必要をなくすることにより、開発効率を向上させることが可能となるという効果を得ることができる。
図5は、本発明の実施形態に係わるプログラム自動生成ツールで定義された項目一覧の情報を記憶する項目一覧モデル記憶部におけるデータ構成の一例を示す図である。記載したデータは、図4の項目一覧定義画面400の項目一覧設定領域401において定義した行のうち、例として5行を記載したものである。この情報は、RAM202上に一時的に記憶されていてもよいし、データベースに記憶してもよい。以下、RAM202に記憶されているイメージで説明する。
項目一覧定義は配列rowsの各項目定義は、rows[0]〜rows[4]に格納されている。rows[i](各要素)は、図5示すようにdataという要素を持ち、複数の属性値、例えば入力欄を示す“I”、項目IDを示す“USERID”、項目の名前を示す“ユーザID”などが設定される。
さらに、プログラム自動生成に使用される各種属性が定義されている。また、“owPropertyList”には、名前を表示する領域のサイズ“labelWidth”、テキスト入力欄の領域サイズ“fieldWidth”などが指定される。
以上で、項目一覧モデル記憶部104におけるデータ構成の説明を完了する。さらに、不図示ではあるが、図3のGUIレイアウトについても、レイアウトモデル記憶部107に記憶される。両者のデータ構成はほぼ同一のものである。本発明の実施形態では、項目一覧モデル記憶部104に記憶された情報を中心とするため、レイアウトモデル記憶部107におけるデータ構成は、各要素(レイアウト部品情報)が、対応する項目情報へのリンクを有すること、また項目情報(rows[i])における領域サイズの情報は、HTMLに変換した際のサイズを示すが、レイアウト部品情報においては、GUIレイアウト定義画面300のキャンバス領域302に表示する際に適したサイズに変換されている、など一部の情報が異なる。項目一覧モデル記憶部104、レイアウトモデル記憶部107のデータ構成はあくまで一例であって、他の構成の形式で定義されていてもよい。
図6は、本発明の実施形態に係わるGUIレイアウトの定義を項目一覧の定義に同期するためのシーケンス図の一例である。図6のシーケンス図の各ステップは、情報処理装置100のCPU201により実行される。
S601において、ユーザ操作(101)により項目一覧タブが選択された際に、プログラム開発ツールから項目一覧タブ選択の要求が発行され、入出力定義エディタコントローラ部102が、定義画面を項目一覧タブ(図4)に切り替えるための要求を受け付ける(項目一覧タブ選択要求121)。
S602において、入出力定義エディタコントローラ部102が、GUIレイアウト定義を項目一覧定義に変換するように、項目一覧モデル変換部103に要求する(レイアウトモデル変換要求122)。ここで、いずれの定義に対する変換を要求するかは、図1で説明したとおり定義を一意的に決定する情報により特定される。
S603において、項目一覧モデル変換部103が、GUIレイアウトの定義をレイアウトモデル記憶部107から取得する(レイアウトモデル変換時取得要求123)。
S604において、項目一覧モデル変換部103は、更に取得したGUIレイアウトを項目一覧定義に変換する。前述したように、GUIレイアウト定義では、GUIレイアウト定義画面300のキャンバス領域302に表示する際に適したサイズを保持しているため、それらのサイズをプログラム自動生成時に、HTMLの部品として生成するために適切なサイズに変換する、などの変換処理を行う。
S605において、項目一覧モデル変換部103は、取得した現在のGUIレイアウトを、項目一覧定義(項目情報の定義の一覧)に変換し、変換結果を項目一覧モデル記憶部104に登録する(既にある場合は更新する。項目一覧モデル更新要求124)。
S606において、入出力定義エディタコントローラ部102は、登録または更新された項目一覧定義を、項目一覧モデル記憶部104から取得する(項目一覧モデル表示時取得要求125)。
S607において、入出力定義エディタコントローラ部102は、取得した項目一覧定義を項目一覧タブに表示するよう項目一覧表示部105に要求し、項目一覧表示部105は要求に従って項目一覧定義の表示を行う。
図7は、本発明の実施形態に係わる項目一覧の定義をGUIレイアウトの定義に同期するためのシーケンス図の一例である。図6のシーケンス図の各ステップは、情報処理装置100のCPU201により実行される。
S701において、ユーザ操作(101)によりレイアウトタブが選択された際に、プログラム開発ツールからレイアウトタブ選択の要求が発行され、入出力定義エディタコントローラ部102が、定義画面をレイアウト定義タブ(図3)に切り替えるための要求を受け付ける(レイアウトタブ選択要求141)。
S702において、入出力定義エディタコントローラ部102は、GUIレイアウトモデル変換部106に項目一覧モデル変換要求142を通知する(項目一覧モデル変換要求142)。ここで、いずれの定義に対する変換を要求するかは、図1で説明したとおり定義を一意的に決定する情報により特定される。
S703において、GUIレイアウトモデル変換部106は、項目一覧定義をGUIレイアウトモデル定義に変換するため、現在の項目一覧定義を項目一覧モデル記憶部104から取得する(項目一覧モデル変換時取得要求143)。
S704において、GUIレイアウトモデル変換部106は、取得した現在の項目一覧定義を、GUIレイアウト定義に変換する。
S705において、GUIレイアウトモデル変換部106は、変換したGUIレイアウト定義をレイアウトモデル記憶部107に登録する(既にある場合は更新する。レイアウトモデル更新要求144)。
S706において、入出力定義エディタコントローラ部102は、GUIレイアウト定義の登録または更新後、当該登録または更新結果を取得する(レイアウトモデル表示時取得要求145)。
S707において、入出力定義エディタコントローラ部102は、取得したGUIレイアウト定義をGUIレイアウトタブに描画するための準備としてGUIレイアウトコントローラ部108にGUIレイアウト部品の生成を要求する(GUIレイアウト生成要求146)。
S708において、GUIレイアウト生成要求を受けたGUIレイアウトコントローラ部108は、レイアウトモデル記憶部107から取得したGUIレイアウト定義に基づき、描画するためのGUI部品などを生成する。まず、GUIレイアウト上のGUI部品(テキスト入力ボックスやボタンなど)を配置するためのベースとなる部品(ベース部品)を生成し、GUIレイアウト記憶部109(GUIレイアウト&部品記憶部)に追加する(GUIレイアウト追加要求147)。
S709において、GUIレイアウトコントローラ部108は、さらにベース部品に配置するGUI部品を生成するため、ベース部品の直下のGUI部品ごとに、GUI部品生成要求148をGUI部品コントローラ部110に発行する。
S710において、GUI部品コントローラ部110は、GUI部品生成要求148により要求されたGUI部品を、GUIレイアウト定義の個々の部品の定義(項目情報から変換された定義)に基づき生成する。GUIレイアウト定義において、GUI部品に入れ子のGUI部品(ベース部品の直下に配置される部品ではなく、GUI部品上に配置される子供となるGUI部品)が定義されている場合には、入れ子の部品を生成するようにGUI部品コントローラ部110に再帰的に要求を行う(GUI部品生成要求149)。生成したGUI部品は、GUIレイアウト記憶部109に追加する(GUI部品追加要求150)。
S711において、GUIレイアウトコントローラ部108は、GUI部品(ベース部品を含む)の生成が完了すると、GUIレイアウト描画部111にGUIレイアウト描画要求151を発行する。この要求により、GUIレイアウト描画部111は、GUIレイアウトタブにGUIレイアウトの表示を行う。
図6と図7のシーケンス図で説明したとおり、項目一覧タブとレイアウトタブを切り替えるユーザ(開発者)の操作をトリガとして、両者に表示されるデータ(項目一覧定義とGUIレイアウト定義)が再生成され、項目一覧定義(プログラムロジック)と、GUIレイアウト定義(HTML生成などのための画面情報)を、手動で対応付けるための操作や、対応情報の作成などを行う必要がなくなる。これにより、プログラム自動生成ツールによるプログラム定義の作業の生産性が向上するという効果が得られる。
次に図8から図14を用いて、複数の入力フィールド間の参照関係を可視化するための処理について説明する。
図8は、本発明の実施形態に係わる参照関係を示すための機能構成、および各機能の呼び出し関係を示す図の一例である。ここでは、図3(あるいは図10、図11)で示すようにGUIレイアウトの定義が既になされており、GUIレイアウト上のGUI部品(単に部品と呼ぶこともある。入出力フィールドやボタンなどのオブジェクト)として定義された複数のオブジェクトの間で、参照関係が定義されているものとする。レイアウトモデル記憶部107におけるレイアウト情報部品情報に従って、GUIレイアウト定義画面が描画されていることが前提で以下の説明を進める。レイアウトの描画にいては、図1、図3〜図7およびその説明による。
情報処理装置100において、GUIレイアウト定義画面(表示制御部801)において、ユーザがメニューあるいはボタンなど(不図示)を操作することにより図12で後述するダイアログが表示され、ダイアログ上のユーザ操作に従って、参照関係を表示したい対象となるオブジェクトを設定する(参照関係対象設定部)。まず、参照関係についての定義を、図9を用いて説明する。
図9は、本発明の実施形態に係わるプログラム自動生成ツールで定義された項目一覧の情報を記憶する項目一覧モデル記憶部におけるデータ構成の一例を示す図である。実際には図5と同じ項目一覧定義を記憶するデータ構成rows[i]に、更に参照関係の情報が記憶されている。
例えば、rows[3]は“合計金額”(TOTAL(901))という入出力項目である。“合計金額”には、価格(PRICE)と個数(ORDER_NUM)の積が自動的に入る。これは、902に“PRICE*ORDER_NUM”という式が入っていることから分かる(後述する図10の1001参照)。
更に別の例として、rows[4]は“注文”(ORDER_ACTION(903))というアクション(ボタンなど)である。アクション(rows[4]のdata行の最初が“A”として定義)は、例えばボタン(図11の注文ボタン1101)であって、当該ボタンをユーザが押下した際に実行される処理が定義される。図11の例では、注文ボタン1101が押下されると別の画面に遷移するが、その際に図11に表示される画面から、当該別の画面に引き渡すパラメータとしての定義である。
以上で、図9の説明を完了する。なお、これらの定義は、項目一覧定義の各項目(1つのオブジェクトに対応する)の詳細を見ることで確認できる。詳細は、図10、図11を用いて後述することとし、図8の説明に戻る。
参照関係対象設定部802は、表示制御部801から設定要求811がなされた場合に、様々な種別がある参照関係のうち、いずれの参照関係(あるいは全て)の関係を表示するかをユーザに指定させるためのダイアログを表示し、ユーザの設定結果を参照関係情報生成部803に渡す。ダイアログを、図12を用いて説明する。
図12は、本発明の実施形態に係わる表示する参照関係をユーザが選択するためのダイアログの一例を示す図である。図12の参照関係の表示ダイアログ1200は、前述したとおり、いずれの参照関係(あるいは全て)の関係を表示するかをユーザに指定させるためのダイアログである。
“参照関係を表示する”で示されるチェックボックス(1201)は、現在の表示制御部801を切り替えるものである。すなわち、参照関係が表示されていない場合にダイアログ(1200)を開くと、当該チェックボックス(1201)には、チェックが入っていない。そこでユーザは、当該チェックボックスをチェックし、所望の参照関係を1202〜1203で指定する。OKボタン(1205)を押下すると、ダイアログ(1200)は閉じられ、表示制御部801に、指定された参照関係が表示されることになる。逆に、既に参照関係が表示されている際に、当該ダイアログ(1200)を開くと、当該チェックボックス(1201)には、チェックが入っている。ユーザが当該チェックを解除し、OKボタン(1205)を押下すると、ダイアログ(1200)は閉じられ、表示制御部801に表示されていた参照関係の表示が表示されなくなる。
“表示状態”で示されるチェックボックス(1202)では、全ての参照関係を表示制御部801において表示させるか、あるいは、後述する1203、1204でユーザに選択された種別の参照関係だけを表示するかを、ユーザに選択させる。すなわち、参照関係情報記憶部に記憶されたすべての参照関係を表示するか、選択を受け付けた項目を参照元とする参照関係を表示するか否かの指定を受け付け可能とする。あるいは、項目一覧モデル記憶部に記憶された項目定義に設定される参照関係のうち、表示を行う参照関係の種別を受け付ける。“すべて”の参照関係を表示させる場合には、OKボタン(1205)を押下してダイアログ(1200)を閉じると、表示制御部801において表示されているオブジェクトのうち、ダイアログ(1200)で参照元としてチェックされた参照関係を有するオブジェクト間で、参照元から参照先の矢印が表示される。すなわち、すべての参照関係を表示すると受け付けた場合は、参照関係情報記憶部に記憶されたすべての項目間の参照関係を描画する。“選択項目”をチェックしてOKボタン(1205)を押下してダイアログ(1200)を閉じると、その時点では、いずれの参照関係も表示されず(矢印が表示されず)、ユーザがオブジェクト(入出力フィールドやボタンなど)を選択した際に、当該オブジェクトが参照元となっている参照関係が解析結果(参照関係情報記憶部805)にあれば、“参照元”と、当該参照元と参照関係がある“参照先”に対して参照関係の矢印を表示する、さらに当該オブジェクトが被参照元となっている参照関係が解析結果(参照関係情報記憶部805)にあれば、参照元から当該オブジェクトに対して参照関係の矢印を表示する。そして他のオブジェクトを選択すると、元もと選択されていた参照関係の矢印の表示を消去し、そのオブジェクトに対して同様に参照関係の矢印を表示する、という処理をする。すなわち、選択項目の参照関係を表示すると指定された受け付けた場合には、選択を受け付けた項目を参照元とする参照関係情報を参照関係情報記憶部から検索し、当該参照関係情報において参照先と指定された項目との参照関係を描画する。
参照関係には、参照元と参照先(例えば、先ほどの“合計金額”は積の値を表示するため参照元であり、“価格”と“個数”は乗算の元となる値を提供する参照先である)を構成要素とするが、そのうち、1204、1204において“参照元”をユーザに選択させる。以下、参照関係の参照元フィールドの種別について説明する。これはあくまで例であって、他の種別の参照関係があってもよい。
フィールド1203においては、“表示条件”、“初期値”、“加工式”、“選択リスト条件”の4つの種別が示されている。ここでフィールド1203とは、参照元が、入出力フィールド(テキストオブジェクト)であることを示している。すなわち、参照関係は、開発されたプログラムの実行時に、ユーザからの入出力データを受け付ける入出力フィールドとなる項目を参照元とする参照関係が設定可能であることを特徴とする。
“表示条件”フィールドとは、参照先フィールドに値が入力されているか否か、またその値が入力されている場合にはその値に従って、“表示条件”フィールド(参照元フィールド)を表示するか否かを決定するものである。すなわち、参照関係の種別とは、参照関係を構成する参照元となる項目の画面上での表示の有無が、参照関係の参照先となる項目に入力された値に従って決定する、という定義がされている項目における参照関係であることを特徴とする。
“初期値”フィールドとは、アプリケーションの画面を表示する際に、参照先フィールドに値が入っている場合に、当該値に基づき何らかの計算処理を行い、その結果としての値を表示するフィールドである。例えば、参照先フィールドに本体価格が入力されている場合には、その消費税(現在は5%)を計算して値を表示することができる。すなわち、参照関係の種別とは、参照関係を構成する参照元となる項目の画面上での初期値としての表示が、参照関係の参照先となる項目に入力された値に従って決定する、という定義がされている項目における参照関係であることを特徴とする。
“加工式”フィールドとは、例えば、参照先フィールドに入力されている値が変更され、当該参照先フィールドから入力フォーカスがはずれた場合に、当該“加工式”フィールドの値を変更するフィールドである。例えば、“加工式”と呼ばれる式が定義されており、参照先フィールドの値と、加工式に基づいて新たな値を算出し、当該加工式フィールドの値を変更する。すなわち、参照関係の種別とは、参照関係を構成する参照元となる項目の画面上での値が、参照関係の参照先となる項目に値が入力され、フォーカスが当該参照先となる項目からはずれた場合に、計算され変更する、という定義がされている項目における参照関係であることを特徴とする。
“選択リスト条件”フィールドとは、リストボックスなどのオブジェクトであり、参照先フィールド(他のリストボックスや入力フィールド(テキストフィールド))の値次第で、リストの内容を変更するものである。例えば、参照先フィールドに国名が入力(あるいはリストから選択)される場合に、“日本”が指定されると、“選択リスト条件”フィールド(参照元フィールド)では、日本の都道府県の一覧が設定され、“アメリカ”が選択されると、アメリカの州が設定される、といった定義を可能とする。すなわち、参照関係の種別とは、参照関係を構成する参照元となる項目の画面上での値が、参照関係の参照先となる項目に設定されたリストの値に応じて、参照関係の参照元となる項目に表示されるリストの値が変更される、という定義がされている項目における参照関係であることを特徴とする。
アクション1204においては、“表示条件”、“次入出力パラメータ”、“条件指定次入出力条件”、“条件指定次入出力パラメータ”、“加工式”の5つの種別が示されている。ここでアクション1204とは、参照元が、アクションを定義するオブジェクト(ボタンオブジェクトなど)であることを示している。すなわち、参照関係は、開発されたプログラムの実行時に、ユーザからの選択操作指示に基づいてプログラムの機能を実行する項目を参照元とする参照関係が設定可能であることを特徴とする。
“表示条件”アクションとは、参照先フィールドに値が入力されているか否か、またその値が入力されている場合にはその値に従って、“表示条件”アクション(参照元アクション)を表示するか否かを決定するものである。すなわち、参照関係の種別とは、参照関係を構成する参照元となる項目の画面上での表示の有無が、参照関係の参照先の項目に入力された値に従って決定する、という定義がされている項目における参照関係であることを特徴とする。
“次入出力パラメータ”アクションとは、対応するボタンなどのオブジェクトが押下された際に他の画面に遷移する場合、パラメータとして遷移先の画面に渡す入出力フィールドを参照先フィールドとするものである。すなわち、参照関係の種別とは、参照関係を構成する参照元となる項目を画面上で押下した時に次に表示する画面に対し、参照関係を構成する参照先フィールドに入力された値をパラメータとして引き渡す、という定義がされている項目における参照関係であることを特徴とする。
“条件指定次入出力条件”アクションとは、参照先フィールドの値に従って、遷移する画面を変更するという処理の条件を定義する。個数(ORDER_NUMが100以下のときは確認画面に遷移し、100より大きいときは取り消し画面へ遷移する)などによる条件設定が可能とである。すなわち、参照関係の種別とは、参照関係を構成する参照元となる項目を画面上で押下した時に次に表示する画面が、参照関係を構成する参照先となる項目に入力された値に従って決定する、という定義がされている項目における参照関係であることを特徴とする。
“条件指定次入出力パラメータ”アクションとは、対応するボタンなどのオブジェクトが前述の条件指定次入出力条件アクションである場合に、遷移する画面に応じて渡されるパラメータを定義するものである。そのパラメータとなる入出力フィールドを、参照先フィールドとする。すなわち、参照関係の種別とは、参照関係を構成する参照元となる項目を画面上で押下した時に次に表示する画面が、参照関係を構成する参照先となる項目に入力された値に従って決定する場合、次に表示する画面に、参照関係を構成する参照先となる項目に入力された値をパラメータとして引き渡すという定義がされている項目における参照関係であることを特徴とする。
“加工式”アクションとは、当該加工式アクション(ボタンなど)が選択(押下など)された場合に、参照先フィールドから値を取得し、ビジネスロジック(プログラム)を実行するものである。例えば、参照先フィールドの値に基づいてデータベースを検索する。データベースが例えば、注文業務に関するものであれば、参照先フィールドの値を検索条件とする検索式を作成し、データベースの検索結果のうちの合計金額の総合計を算出する、などが可能である。すなわち、参照関係の種別とは、参照関係を構成する参照元となる項目の画面上での値が、参照関係の参照先となる項目に値が入力され、フォーカスが当該参照先となる項目からはずれた場合に、計算され変更する、という定義がされている項目における参照関係であることを特徴とする。
なお、これまで説明した各参照関係の種別における項目に対する参照関係の設定は、画面の項目を利用した計算式によって算出された値を参照関係の設定の条件として付随させることができることとする。つまり、参照関係を構成する参照元となる項目と参照先となる項目の関係が計算式で構成可能であることとする。
以上で、図12のダイアログ(1200)および対象となる参照元フィールドについての説明を完了し、図8の説明に戻る。
参照関係対象設定部802によるユーザの設定が完了すると、当該設定結果を参照関係情報生成部803に渡し、参照関係情報を生成するよう要求する(生成要求812)。
参照関係情報生成部803は、渡された設定結果を、参照関係設定記憶部806に格納する(設定格納813)。さらに。項目一覧モデル記憶部104(図9で説明したrows)から、項目一覧情報を取得(項目情報取得814)して、参照関係を解析するため参照関係解析部804に渡す(解析要求815)。
参照関係解析部804は、渡された項目一覧情報(例えば図9のrows)から、参照関係を解析し、
参照関係設定記憶部806に格納された設定に関する参照関係(設定取得816により取得)を解析結果として、参照関係情報生成部803に返す。参照関係情報生成部803は、返された解析結果を、参照関係情報記憶部805に登録し(解析結果登録817)、解析が完了した旨を表示制御部801に通知する。
表示制御部801は、解析が終わると当該解析結果を参照関係情報記憶部805から取得し(解析結果取得818)、参照関係を表示制御部801のGUIレイアウト定義画面に描画する(参照関係描画819)。すなわち、表示制御部801は、参照元と参照先の間に矢印を描画する。しかしながら、図12で説明したダイアログ(1200)の表示対象1202で、“すべて”が選択された場合と、“選択項目”を選択された場合とでは、図9で説明した通り処理が異なる。
以上で、図8を用いた参照関係を示すための機能構成、および各機能の呼び出し関係についての説明を完了する。
図13は、本発明の実施形態に係わる項目一覧の定義を解析した結果として、参照関係を格納するための参照関係情報記憶部の構成の一例を示す図である。図8における参照関係情報記憶部805のデータ構成を説明するための図である。すなわち、参照関係情報記憶部は、受け付けた参照関係の種別が設定されている参照元項目定義の識別情報と参照先項目定義の識別情報を、参照関係情報として記憶する。
参照関係情報記憶部805に登録される解析結果は、参照元1301、参照先1302、被参照元1303から構成される。
参照元1301、参照先1302は、それぞれ参照関係における参照元と参照先が格納される。1レコードにおいて参照元は1つであるが、参照先は複数あってもよい。また、被参照元1303は、参照元1301を参照先とする他のオブジェクトが格納される。図13では、1つの参照元に対しては、レコードは1つ生成される。
参照関係情報記憶部805の詳細の生成処理については、図14のフローチャートで説明するものとして、各レコード(5レコード)が、いずれの参照関係から解析されたものであるかを図10、図11を用いて説明する。
図10、図11は、本発明の実施形態に係わる項目一覧の参照関係を開発者に可視化して提示するGUIレイアウト画面の一例を示す図である。
図10のGUIレイアウト定義画面1000aは、参照関係が描画されていない状態である。一方、GUIレイアウト定義画面1000bにおいては、参照関係が描画されている。すなわち、合計金額フィールド1001から、価格フィールドと個数フィールドに矢印が描画されている。図9のrows[3]で説明したように、TOTAL(合計金額フィールドのID、図9の901)は、PRICE(価格フィールドのID)との積で表される(902)。TOTALが参照元フィールドであり、その値は、加工式(PRICE*ORDER_NUMという式の定義)で表されるため、参照先フィールドは、PRICE、ORDER_NUMの2つのフィールドとなる。このようにして、図13の参照関係情報記憶部805の1行目のようにデータが格納される。
また、逆にPRICE、ORDER_NUMの2つの参照先フィールドは、被参照元フィールド(参照されるフィールド)となる。そこで、参照元1301がPRICE、被参照元1303がTOTALである2つめのレコードが生成される(この段階ではORDER_ACTIONは格納されていない)。同様に、ORDER_NUMを参照元1301とする3つめのレコードが生成される。
図11のGUIレイアウト定義画面1100の例では、注文ボタン1101に対応するアクションの定義として、個数(ORDER_NUM<=100)という条件が記載されている(1104)。1104は、“条件指定次入出力条件”アクションに相当するものであって、これにより、注文する個数が、100個以下か、100個よりも多いかで、遷移する次の画面が異なる。画面の遷移については、具体的には、条件指定入出力条件欄1103に記載されているように、注文個数が100個よりも多い場合は、“取り消し画面”遷移するように指定されている。また、100個以下である場合には、“確認画面”に遷移するように指定されている。いずれも画面遷移時に渡すパラメータとして、()内に記載された“PRICE”と“ORDER_NUM”が指定されている。図13の参照関係情報記憶部805のに、参照元1301をORDER_ACTION、参照先1302を、PRICE、ORDER_NUMとするレコードが生成、格納される(この時点ではSHOHIN_CODEは格納されていない)。
また、この処理によりORDER_ACTIONが、PRICE、ORDER_NUMの被参照元となる。これにより、1行目と2行目のレコードの被参照元1303に、ORDER_ACTIONが追加される。
図11には、さらに“条件指定次入出力条件”1102が定義されている。ここでは、参照元1301がORDER_ACTION、参照先1302がSHOHIN_CODEとなるため、4行目のレコードの参照先1302に、SHOHIN_CODEが格納される。
さらに参照先であるSHOHIN_CODEに対応するレコードが生成される(図13の5行目)。SHOHIN_CODEは、ORDER_ACTIONから参照されているため、参照元1301にSHOHIN_CODE、被参照元1303に、ORDER_ACTIONが格納される。
以上で、図13の参照関係情報記憶部805と、図10、図11における参照関係の定義の対応付け、および図10、図11に描画された矢印について、説明を完了する。
図14は、本発明の実施形態に係わる参照関係を表示する処理のフローチャートの一例である。図14のフローチャートは、図8から図13までで説明した処理を実行するものであって、フローチャートの各ステップは、情報処理装置100のCPU201により実行される。
S1401においては、図12のダイアログを開発者に提示し、開発者の設定を取得する。すなわち、参照関係の種別、および“すべて”か“選択項目”か、を受け付ける。
S1402においては、S1401で受け付けた設定を、参照関係設定記憶部806に格納する。
S1403においては、表示中のGUIレイアウト画面定義における全てのオブジェクトに対応する項目定義を取得する。具体的には、項目一覧モデル記憶部104から、図9で説明したrowsの情報を取得する。
S1404からS1420は、項目一覧の各項目に対する繰り返し処理である。具体的には、S1403で取得した項目定義、すなわちrowsの各要素(rows[i])に対する繰り返し処理である。
S1405においては、1つの項目情報に着目する。そして、項目定義から参照関係の情報を取得する。
S1406においては、着目中の項目定義から取得した参照関係の種別を取得する。種別とは、図12のダイアログ(1200)における1203、1204のいずれに対応する参照関係であるか、を区別するものである。
S1407においては、S1406において取得した参照関係の種別に、開発者がダイアログ(1200)で設定した種別が表示の必要があるか否かを判定する。表示の必要がある場合(YESの場合)には、表示が必要な項目定義(参照元)としてS1408に進む。表示の必要がない場合(NOの場合)、次の項目定義に進む。
S1408においては、現在着目中の項目定義が参照元となっているレコード(参照関係情報レコード)が、参照関係情報記憶部805に登録済みか否かを判定する。1つの項目定義に対しては、1レコードしか生成されず、すなわち自分自身を参照元1301とて登録されているものが、既にあるか否かで判定する。例えば、項目定義に対応する項目IDで、参照関係情報記憶部805を検索する。登録済みである場合(YESの場合)には、S1410に進む。登録済みでない場合(NOの場合)には、S1409に進む。ここで、S1404からS1420の繰り返し処理では、項目定義が参照元として処理されるのは、それぞれ1回である。しかしながら、項目定義Aが他の項目定義Bの参照元である場合には、項目定義Aを参照元とする参照関係情報レコードが生成されるだけではなく、項目定義Bを参照元とする参照関係情報レコードも生成され、その被参照元1303に、項目定義Aを登録する。そのため、項目定義が、繰り返し処理の中で、参照元としては現れていない場合であっても参照関係情報レコードが存在する場合がある。
S1409においては、参照関係情報レコードを生成し、着目中の項目定義を、参照元1301として格納する。
S1410においては、着目中の項目定義に対応する参照関係情報レコードを取得する。S1408において新たに生成された場合には、その参照関係情報レコードを取得する。あるいは、生成したものをRAM202に記憶させ、それをそのまま使用してもよい。S1408において登録済みであると判定した場合には、そのステップで取得しておいてもよいし、S1410で取得してもよい。いずれにしても一意的に存在する参照関係情報レコードに、以降の処理で格納すべきとされたデータを格納できる状態にしておけばよい。
S1411においては、着目中の項目情報において定義される全ての参照先を取得する。
S1412からS1419の繰り返し処理は、着目中の項目情報(参照元)に対応して、S1411で取得された全ての参照先に対して繰り返される処理である。
S1413においては、着目している参照先項目情報に対応する参照元項目が、ダイアログ(1200)において開発者が描画したいとして指定したものであるか否かを判定する。描画指定されていない場合(NOの場合)には、内側の繰り返し処理の次の参照先項目情報に進む。描画していされている場合(YESの場合)には、S1414に進む。
S1414においては、着目中の参照先の項目情報に対応する参照関係情報レコードが、参照関係情報記憶部805に既に存在するか否かを判定する。存在する場合(YESの場合)には、S1416に進む。存在しない場合(NOの場合)には、S1415に進む。
S1415においては、参照関係情報記憶部805に、着目中の参照先の項目情報に対応する参照関係情報レコードを生成し、当該レコードの参照元に自分自身(参照先)の項目定義を登録する。
S1416においては、着目中の参照先の参照関係情報レコードを取得する。具体的には、S1414において参照先に対応する参照関係情報レコードが存在すると判定された場合(YESの場合)には、その時点で「存在する」とした参照関係情報レコードを使用する。さらに、「存在しない」と判定された場合(NOの場合)には、S1415で生成した参照関係情報レコードを使用する。いずれも便宜上、“取得”したものとして扱う。
S1417においては、前記で生成した参照先の参照関係情報レコードの被参照元1303に参照元の項目情報を格納する。
S1418においては、参照元として着目中の項目情報に対応する参照関係情報レコードの、参照先1302に、参照先として着目中の項目情報を格納する。
以上の処理により、開発者がダイアログ(1200)において指定した参照関係の条件を満たす参照関係情報レコード(参照元1301、参照先1302、さらに被参照元1303を含む)が生成され、参照関係情報記憶部805にすべて格納される。すなわち、項目情報(オブジェクト)間の参照関係の解析処理が完了する。以下は、参照関係を描画するための処理である。
S1421においては、描画する参照関係が前述の「解析されたものすべてか」、「GUIレイアウト定義画面で開発者が指定するものか」を判定する。具体的には、ダイアログ(1200)の表示対象1202において、“すべて”、“選択項目”のいずれを選択したかにより判定される。“すべて”が選択されたと判定された場合(YESの場合)には、S1422に進む。ここで、GUIレイアウト定義画面(表示制御部801)において、参照関係情報記憶部805に記憶されたすべての参照関係情報レコードに基づいて、参照元から参照先に、例えば矢印を描画する。描画方法は開発者にとって識別可能であれば他の方法であってもよい。描画が完了したら図14のフローチャートの処理を完了する。
一方、S1421において“選択項目”が選択されたと判定された場合(NOの場合)には、開発者が参照関係の表示に対して終了指示を出すまで、S1423からS1427の処理を繰り返す。
S1424においては、GUIレイアウト定義画面(表示制御部801)において、アプリケーションにおいて発生したイベントを受け付ける。イベントが、GUIレイアウト定義画面(表示制御部801)にて、開発者がオブジェクトを選択操作したイベントである場合には、選択されたオブジェクトにより、参照関係情報記憶部805を検索する。具体的には、オブジェクトに対応する項目情報の項目IDを参照元1301とする参照関係情報レコードを検索する。検索により参照関係情報レコードの検索が成功した場合(YESの場合)には、S1425に進む。失敗した場合(NOの場合)には、何もせず当該繰り返し処理の1回分を完了し、次のイベント入力を待つ。
S1425においては、S1424において検索した参照関係情報レコードを取得する。
S1426においては、S1425において取得された参照関係情報レコードから、参照先1302のオブジェクト(項目ID)を抽出し、前記イベントで指定された参照元のオブジェクトから、参照先オブジェクトに矢印を描画する。なお、参照先1302には、参照先のオブジェクト(項目ID)が複数記載されている場合がある。その場合は、すべての参照先オブジェクトに対して、矢印を描画する。
すなわち、受け付けた種別の参照関係を、レイアウト定義画面において識別可能な、項目一覧モデル記憶部で記憶された項目定義の参照関係を識別可能にした識別表示と前記項目定義に紐付く項目を用いて、レイアウト定義画面に描画する。また、受け付けた参照関係の種別が設定されている参照元項目定義の識別情報と参照先項目定義の識別情報が記憶されている参照関係情報記憶部に記憶された参照関係情報に基づき、画面の項目定義間の参照関係を識別可能に、識別表示と項目定義に紐付く項目を用いて記レイアウト定義画面に描画する。
以上で、図14のフローチャートの説明を完了する。この処理により、開発者が所望した種別の参照関係に対して、“すべて”を指定した場合には、すべての参照元オブジェクトから参照先オブジェクトへの矢印すべてが表示され、一目で参照関係を把握することができるという効果を得る。また、“選択項目”を指定した場合には、開発者がGUIレイアウト定義画面のオブジェクトを1つずつ選択して確認することができるという効果を得る。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
続いて、GUIレイアウト定義画面において表示された参照関係の識別表示、またその参照関係が設定されている項目を用いて、参照関係を編集することによって、その編集結果を項目に定義される内容として反映する方法を、図面を用いて詳細に説明する。なお、本実施例において識別表示は、矢印を用いて説明を行っているが、これに限定されなくてもよいこととする。
これまでは、複数の入力フィールド間や入力フィールドとボタン間の参照関係をGUIのレイアウト定義画面において可視化するための処理について説明したが、次は、GUIレイアウト定義画面に配置されている複数の入力フィールド間や入力フィールドとボタン間の参照関係をGUIレイアウト画面上で編集することによって、その編集結果を入出力項目の定義に反映することを可能とする方法について説明する。
まず、図15、図16を用いて、GUIレイアウト定義画面において、項目間に定義されている参照関係を削除する一例について説明をする。図15のGUIレイアウト定義画面には、項目1から項目3までの入力フィールドおよびボタンAが配置されており、ボタンAと項目1および項目2については参照関係がある。ここでは、ボタンAを押下したときに、次の画面に遷移する際に項目1と項目2の値をパラメータとして渡す定義がなされている。
1503はボタンAを押下したときに遷移する次の画面の定義を示している。1504はボタンAを押下したときに次の画面に渡す入力フィールドを示している。次の画面に渡す入力フィールドを次入出力パラメータと呼ぶ。すなわち、次入出力パラメータに項目1(1501)と項目2(1502)の項目コードである「ITEM_1、ITEM_2」が定義されている。すなわち、ボタンAは項目1と項目2に対する参照元であり、項目1、項目2はボタンAに対する参照先であることとする。
図15のGUIレイアウト画面にはボタンAから項目1、項目2に対して矢印1501、矢印1502が表示されている。ここで、ユーザは矢印1502を選択する。選択後、キーボードのDELETEキーの押下または、GUIエディタのメニューから削除を選択する(不図示)ことで、矢印1502はGUIレイアウト画面から消える。さらに同時に次入出力パラメータの定義からITEM_2が消える。
すなわち、レイアウト定義画面に表示された参照関係を表示する識別表示と前記参照関係が設定された項目の編集を受け付けると、参照関係が設定された項目の項目定義において設定されている参照関係は、前記編集を受け付けた後の参照関係となるように変更されることを特徴とする。なお、矢印1502をGUIレイアウト画面から削除すると、図16に示す結果の通り、ボタンAから項目1に対する参照関係の矢印1601が表示されのみとなり、また次入出力パラメータにおける定義も、ITEM_1のみとなる(図16、1602)。なお、GUIレイアウト画面の部品の削除によって、項目定義も変更される同期の動きについては、図6に示すGUIレイアウトの定義を項目一覧の定義に同期するためのシーケンスと同様の流れで可能である。
次に図17、図18を用いて、GUIレイアウト定義画面において、項目間に定義されている参照関係のうち、参照先を変更する一例について説明をする。
図17のGUIレイアウト定義画面には元々、参照元のボタンAから参照先の項目1および項目2に対して矢印が表示されている。また、ボタンAの定義として、次入出力パラメータ1701には「ITEM_1、ITEM_2」が定義されている(図17、1701)。ここで、ユーザが、ボタンAから項目2への参照関係を示す矢印1702を選択し、マウスによるドラッグ&ドロップ操作等を使い、矢印の先を項目3へ移動させる(図18の1801)。移動後、次入出力パラメータ1701の値は「ITEM_1、ITEM_2」から「ITEM_1、ITEM_3」へ変更される(図18の1802)。
すなわち、レイアウト定義画面に表示された参照関係を表示する識別表示と前記参照関係が設定された項目の編集を受け付けると、参照関係が設定された項目の項目定義において設定されている参照関係は、前記編集を受け付けた後の参照関係となるように変更されることを特徴とする。
なお、矢印元の変更による項目定義の変更についても、図6に示すGUIレイアウトの定義を項目一覧の定義に同期するためのシーケンスと同様の流れで可能である。
次に図19、図20を用いて、GUIレイアウト定義画面において、項目間に定義されている参照関係のうち、参照元を変更する一例について説明をする。
図19に示すGUIレイアウト画面には元々、参照元のボタンAから参照先の項目1および項目2に対して矢印が表示されている。これは、ボタンAの定義として、次入出力パラメータ1902に、「ITEM_1、ITEM_3」が定義されている(図19の1902)ことである。ここで、ユーザが、ボタンAから項目2への参照関係を示す矢印1901を選択し、マウスによるドラッグ&ドロップ操作等を使い、矢印の元をボタンBへ移動させる(図20の2001)。移動後、次入出力パラメータ1902に定義されていたパラメータのITEM_3は、図20の2002に図示するように、ボタンBに定義される次入出力パラメータの値となる。
すなわち、レイアウト定義画面に表示された参照関係を表示する識別表示と前記参照関係が設定された項目の編集を受け付けると、参照関係が設定された項目の項目定義において設定されている参照関係は、前記編集を受け付けた後の参照関係となるように変更されることを特徴とする。
なお、矢印先の変更による項目定義の変更についても、図6に示すGUIレイアウトの定義を項目一覧の定義に同期するためのシーケンスと同様の流れで可能である。
次に図21、図22を用いて、GUIレイアウト画面において、項目の参照関係を追加する方法について説明する。
図21のGUIレイアウト画面には元々、参照元のボタンAから参照先の項目1および項目2に対して矢印が表示されている。そのため、次入出力パラメータ2101にはパラメータとして「ITEM_1、ITEM_2」が定義されている。
ここでユーザはボタンAから項目3に対して、参照関係の矢印を追加することとする。具体的な操作としては、GUIエディタのメニューから追加モードの状態にして(不図示)、ボタンAから項目3に対して、マウスのドラッグ&ドロップ操作により矢印を描画する。描画後は、図22に図示するように、次入出力パラメータ2202には「ITEM_1、ITEM_2、ITEM_3」が定義されることとなる。すなわち、レイアウト定義画面に表示された参照関係を表示する識別表示と前記参照関係が設定された項目の編集を受け付けると、参照関係が設定された項目の項目定義において設定されている参照関係は、前記編集を受け付けた後の参照関係となるように変更されることを特徴とする。なお、矢印追加による項目定義の変更についても、図6に示すGUIレイアウトの定義を項目一覧の定義に同期するためのシーケンスと同様の流れで可能である。
また、これまでGUIレイアウト画面において配置された項目と、矢印等の識別表示を編集することにより、項目の定義を変更することが可能であるということを説明してきたが、逆に、項目の定義を変更すると、それにともない、GUIレイアウト画面において配置される項目間の参照関係を表示する識別表示を変更可能であるようにしてもよいこととする。すなわち、参照関係が指定された項目の項目定義の参照関係に対する編集を受け付けると、レイアウト定義画面で表示される参照関係の識別表示は、編集を受け付けた後の参照関係となるように変更されることを特徴とすることを特徴とする。
続いて、GUIレイアウト画面に配置された部品に対して、参照関係の矢印の追加・変更・削除に関して、決められた部品のみとする制約を持たすことを可能とする実施例について説明する。図23のGUIレイアウト画面においては、項目1から項目3までの入力フィールドとボタンAが配置されている。項目の参照関係はGUIによる表示は、参照元の項目3から参照先の項目1および項目2にのびる矢印2301および矢印2302によって表示される。また、項目3に表示される値は、項目1および項目2の値を使った計算結果となる定義がなされていることとする(図23の2303)。この計算式の定義には、加工式2303に「ITEM_1+ITEM_2*3」と記述している。この定義の意味は、ITEM_1の値にたいし、ITEM_2の値に3を掛けた値を足す。それをITEM_3に代入するという意味である。よって、この参照関係の表示は、計算式と関連するものである。
なお、ボタンAからは、項目3との参照関係があり、ボタンAの定義(不図示)として、次に呼ぶ画面へのパラメータとして、項目3が次入出力パラメータとして定義がされていることとする。
このように、参照関係の表示が計算式と関係するものである場合の参照関係の矢印については、編集不可とする制約を持たせることができることとする。
このような制約を持たせるのは、一般的に計算式を伴う参照関係については、新たに参照関係を追加した場合に、足し算なのか掛け算なのか、など一意に計算式を決定することはできないためである。
例えば、一例として、図23の2301と2302の参照関係の矢印に関しては、計算式がからんでいるため、削除する、あるいは、変更する等の、編集を行えないようにすることが出来るように、点線表示するということである。すなわち、参照関係を構成する参照元となる項目と参照先となる項目の関係が計算式で構成される場合は、識別表示を編集不可能とし、不可能であることを識別可能に表示することを特徴とする。
なお、逆に、新規に、参照関係が計算式に関係するものである場合に、編集不可とせず、参照関係を追加し計算式を作成する時に、ダイアログにおいて、四則演算の記号を選択できるようにし、図23、2303の加工式において、式を編集することができるようにしても良いこととする。
例えば、図24の追加前の加工式における計算式2403は、図24の項目3に対して、図24の項目1(ITM_1)と図24の項目2(ITEM_2)に対し3を掛けた値を代入するという計算が設定されていが、GUIエディタ上で、識別表示の矢印を項目3から項目4へ新たに追加(例えば足し算で追加等)した場合(図24、2401)、図24の2402で示すように、既に設定されている計算式へ項目を追加するための演算子を選択できるようにダイアログ(図24、2402)を表示し、設定者に選択させるようにすることを行っても良いこととする。すなわち、参照関係を構成する参照元となる項目と参照先となる項目の関係が計算式で構成される場合、計算式を新規に作成する、あるいは、既存の計算式に対する式の追加が行われる場合、識別表示による計算式を編集可能とし、計算式を編集する場合、演算子の選択を可能であることを特徴とする。
ここで、この2402のダイアログより、A.足し算を選択したとすると、図24の追加後の加工式における計算式2404に示すように、追加前の加工式における計算式2403の計算式に項目4が足し算で追加されるようになる。
更に、参照先の追加ではなく、単純に参照先の項目の入れ替えを行う場合に、参照関係の変更を許すようにしても良いこととする。
例えば、例えば、図25の2503の変更前の加工式における計算式は、図25の項目3に対して、図25の項目1(ITM_1)と図25の項目2(ITEM_2)に対し3を掛けた値を代入するという計算が設定されていが、GUIエディタ上で、項目2を項目4にする変更について行なえるようにしても良いということである。すなわち、参照関係を構成する参照元となる項目と参照先となる項目の関係が計算式で構成される場合、計算式を構成する参照関係が設定されている項目を変更することにより、識別表示による計算式を編集可能とすることを特徴とする。
例えば、図25の2501で図示する項目3から項目2を参照するように表示されている識別表示の矢印の参照先を項目4へ変更すると(図25、2502)、変更前は、図25の変更前の加工式における計算式2503で図示するように、計算式は、ITEM_1+ITEM_2*3(項目1+項目2×3)であったが、変更後は、図25の変更後の加工式における計算式2504で図示するように、計算式は、ITEM_1+ITEM_4*3(項目1+項目2×4)になる。
これまで数式を新規に作成するパターンと、数式を追加するパターン、数式の項目のみ変更可能にするパターンについて説明を行ったが、これらすべてパターンの編集が可能とするようにしても良いこととする。すなわち、参照関係を構成する参照元となる項目と参照先となる項目の関係が計算式で構成される場合、レイアウト定義画面で当該参照関係を識別可能に表示する識別表示を用いて編集することにより、計算式を編集可能とすることを特徴とする。
なお、参照関係に対して編集不可の制約を持たせる場合は、参照関係を表示する識別表示子(例えば矢印)に対し、編集可能か不可かを視覚的に判別する方法として、矢印のデザインや色によって判別可能に表示しても良いこととする。例えば、図23の矢印2304で図示するように、編集可能な矢印は直線で表示し、図23の矢印2301または2302で図示するように、編集不可能な矢印は点線で表示すると、画面のGUIエディタを使用するユーザにとって視覚的に分かりやすく、操作の助けとなる。
以上の本発明の実施例により、入出力フィールドやアクションなどの項目の間に参照関係を定義した場合に、その定義を視覚的に提示することで、開発者にとって、定義済みの参照関係を分かりやすくするための技術を提供することが可能となる。更に、視覚的に提示した参照関係を編集することにより項目の参照関係の定義を編集可能とする技術を提供することが可能となる。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明におけるプログラムは、図6、図7に示すシーケンス図、および図12のフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図6、図7、および図12のフローチャートに示すシーケンス図の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図6、図7に示すシーケンス図、および図12のフローチャートの各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
コンピュータプログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。