(57)【特許請求の範囲】
【請求項１】
データの入力領域に対応するデータ項目の階層構造と前記入力領域に関連するプログラムとを記憶する記憶部と、情報を処理する処理部と
を含んで構成される電子帳票部品開発装置であって、
前記処理部は、
部品化の対象として、複数の入力領域を選択する入力領域選択処理と、
当該入力領域選択処理によって選択された入力領域に対応するデータ項目の階層構造を、前記記憶部のデータ項目の階層構造を参照して分析し、当該データ項目の階層構造を維持するために必要なデータ項目及び入力領域をリストアップするデータ構造検証処理と、
前記入力領域選択処理により選択された入力領域及び前記データ構造検証処理により追加された入力領域に関連する前記プログラムが、部品化後も正常に動作するか否かを検証する関連プログラム検証処理と
を実行することを特徴とする電子帳票部品開発装置。
【請求項２】
前記処理部は、前記データ構造検証処理において、
前記入力領域選択処理において選択された、前記入力領域に対応するデータ項目の親に相当するデータ項目を、前記記憶部のデータ項目の階層構造を参照して選択する親メンバ選択処理
を実行し、
前記親メンバ選択処理において選択された前記データ項目が同一であるか否かを判定し、
前記判定において、同一と判定された場合には、
当該データ項目の子孫に相当するデータ項目のうち、前記入力領域選択処理において選択されていないデータ項目を部品化の対象に追加する子メンバ追加処理
を実行し、
前記判定において、異なると判定された場合には、
前記記憶部のデータ項目の階層構造を参照して前記階層構造を親のほうに遡ることにより、共通のデータ項目を検索する共通メンバ選択処理と、
当該共通メンバ選択処理において検索された前記データ項目から、前記記憶部のデータ項目の階層構造を参照して前記階層構造を子のほうに辿り、前記入力領域選択処理において選択されていないデータ項目を部品化の対象に追加する子孫メンバ追加処理と
を実行し、
当該子メンバ追加処理または当該子孫メンバ追加処理により追加された前記データ項目に対応付けられた入力領域を部品化の対象に追加するメンバ対応入力領域追加処理
を実行することを特徴とする請求項１に記載の電子帳票部品開発装置。
【請求項３】
前記処理部は、前記関連プログラム検証処理において、
前記入力領域及び前記データ構造検証処理により追加された入力領域に関連する前記プログラムをリストアップする関連プログラム選択処理
を実行し、
当該関連プログラム選択処理において選択された各プログラムに対するすべての入力変数が、前記入力領域選択処理により選択された入力領域または前記データ構造検証処理により追加された入力領域に含まれるか否かを判定し、
前記判定において、含まれないと判定された場合には、
当該プログラムをリストから削除する関連プログラム削除処理
を実行することを特徴とする請求項１または請求項２に記載の電子帳票部品開発装置。
【請求項４】
前記処理部は、前記関連プログラム検証処理において、
前記入力領域及び前記データ構造検証処理により追加された入力領域に関連する前記プログラムをリストアップする関連プログラム選択処理
を実行し、
当該関連プログラム選択処理において選択された各プログラムに対するすべての入力変数が、前記入力領域選択処理により選択された入力領域または前記データ構造検証処理により追加された入力領域に含まれるか否かを判定し、
前記判定において、含まれないと判定された場合には、
不足している入力領域を追加する入力領域追加処理と、
当該追加した入力領域に対応するデータ項目の階層構造を、前記記憶部のデータ項目の階層構造を参照して分析し、当該データ項目の階層構造を維持するために必要なデータ項目及び入力領域をリストアップするデータ構造検証処理と、
当該データ構造検証処理においてリストアップされた当該入力領域と対応するデータ項目を部品化の対象に追加する追加入力領域登録処理と
を実行することを特徴とする請求項１または請求項２に記載の電子帳票部品開発装置。
【請求項５】
前記電子帳票部品開発装置は、出力装置をさらに備え、
前記処理部は、前記データ構造検証処理の結果に基づき、前記出力装置を介して、追加すべき入力領域と、当該入力領域に対応するデータ項目とを表示し、当該入力領域を部品化の対象に加えるか否かを入力するデータ構造メッセージ表示処理
を実行し、
当該データ構造メッセージ表示処理において、
部品化の対象に加える旨を入力した場合には、前記関連プログラム検証処理に進み、
部品化の対象に加えない旨を入力した場合には、部品化の処理を終了すること
を特徴とする請求項１乃至請求項４のいずれか１項に記載の電子帳票部品開発装置。
【請求項６】
前記電子帳票部品開発装置は、出力装置をさらに備え、
前記処理部は、前記関連プログラム検証処理の結果に基づき、前記出力装置を介して、プログラムごとに、追加すべき入力領域を表示し、当該入力領域を部品化の対象に加えるか否かを入力する関連プログラムメッセージ表示処理
を実行し、
当該関連プログラムメッセージ表示処理において、
部品化の対象に加える旨を入力した場合には、前記プログラムに関連する入力領域とデータ項目とを部品化の対象に加える関連プログラム追加処理
を実行することを特徴とする請求項１乃至請求項４のいずれか１項に記載の電子帳票部品開発装置。
【請求項７】
前記記憶部のデータ項目は、ＸＭＬ（eXtensible Markup Language）によって記述されていることを特徴とする請求項１乃至請求項６のいずれか１項に記載の電子帳票部品開発装置。
【請求項８】
データの入力領域に対応するデータ項目の階層構造と前記入力領域に関連するプログラムとを記憶する記憶部と、情報を処理する処理部と
を含んで構成されるコンピュータによる電子帳票部品開発方法であって、
前記処理部は、
部品化の対象として、複数の入力領域を選択する入力領域選択処理と、
当該入力領域選択処理によって選択された入力領域に対応するデータ項目の階層構造を、前記記憶部のデータ項目の階層構造を参照して分析し、当該データ項目の階層構造を維持するために必要なデータ項目及び入力領域をリストアップするデータ構造検証処理と、
前記入力領域選択処理により選択された入力領域及び前記データ構造検証処理により追加された入力領域に関連する前記プログラムが、部品化後も正常に動作するか否かを検証する関連プログラム検証処理と
を実行することを特徴とする電子帳票部品開発方法。
【請求項９】
前記処理部は、前記データ構造検証処理において、
前記入力領域選択処理において選択された、前記入力領域に対応するデータ項目の親に相当するデータ項目を、前記記憶部のデータ項目の階層構造を参照して選択する親メンバ選択処理
を実行し、
前記親メンバ選択処理において選択された前記データ項目が同一であるか否かを判定し、
前記判定において、同一と判定された場合には、
当該データ項目の子孫に相当するデータ項目のうち、前記入力領域選択処理において選択されていないデータ項目を部品化の対象に追加する子メンバ追加処理
を実行し、
前記判定において、異なると判定された場合には、
前記記憶部のデータ項目の階層構造を参照して前記階層構造を親のほうに遡ることにより、共通のデータ項目を検索する共通メンバ選択処理と、
当該共通メンバ選択処理において検索された前記データ項目から、前記記憶部のデータ項目の階層構造を参照して前記階層構造を子のほうに辿り、前記入力領域選択処理において選択されていないデータ項目を部品化の対象に追加する子孫メンバ追加処理と
を実行し、
当該子メンバ追加処理または当該子孫メンバ追加処理により追加された前記データ項目に対応付けられた入力領域を部品化の対象に追加するメンバ対応入力領域追加処理
を実行することを特徴とする請求項８に記載の電子帳票部品開発方法。
【請求項１０】
前記処理部は、前記関連プログラム検証処理において、
前記入力領域及び前記データ構造検証処理により追加された入力領域に関連する前記プログラムをリストアップする関連プログラム選択処理
を実行し、
当該関連プログラム選択処理において選択された各プログラムに対するすべての入力変数が、前記入力領域選択処理により選択された入力領域または前記データ構造検証処理により追加された入力領域に含まれるか否かを判定し、
前記判定において、含まれないと判定された場合には、
当該プログラムをリストから削除する関連プログラム削除処理
を実行することを特徴とする請求項８または請求項９に記載の電子帳票部品開発方法。
【請求項１１】
前記処理部は、前記関連プログラム検証処理において、
前記入力領域及び前記データ構造検証処理により追加された入力領域に関連する前記プログラムをリストアップする関連プログラム選択処理
を実行し、
当該関連プログラム選択処理において選択された各プログラムに対するすべての入力変数が、前記入力領域選択処理により選択された入力領域または前記データ構造検証処理により追加された入力領域に含まれるか否かを判定し、
前記判定において、含まれないと判定された場合には、
不足している入力領域を追加する入力領域追加処理と、
当該追加した入力領域に対応するデータ項目の階層構造を、前記記憶部のデータ項目の階層構造を参照して分析し、当該データ項目の階層構造を維持するために必要なデータ項目及び入力領域をリストアップするデータ構造検証処理と、
当該データ構造検証処理においてリストアップされた当該入力領域と対応するデータ項目を部品化の対象に追加する追加入力領域登録処理と
を実行することを特徴とする請求項８または請求項９に記載の電子帳票部品開発方法。
【請求項１２】
前記コンピュータは、出力装置をさらに備え、
前記処理部は、前記データ構造検証処理の結果に基づき、前記出力装置を介して、追加すべき入力領域と、当該入力領域に対応するデータ項目とを表示し、当該入力領域を部品化の対象に加えるか否かを入力するデータ構造メッセージ表示処理
を実行し、
当該データ構造メッセージ表示処理において、
部品化の対象に加える旨を入力した場合には、前記関連プログラム検証処理に進み、
部品化の対象に加えない旨を入力した場合には、部品化の処理を終了すること
を特徴とする請求項８乃至請求項１１のいずれか１項に記載の電子帳票部品開発方法。
【請求項１３】
前記コンピュータは、出力装置をさらに備え、
前記処理部は、前記関連プログラム検証処理の結果に基づき、前記出力装置を介して、プログラムごとに、追加すべき入力領域を表示し、当該入力領域を部品化の対象に加えるか否かを入力する関連プログラムメッセージ表示処理
を実行し、
当該関連プログラムメッセージ表示処理において、
部品化の対象に加える旨を入力した場合には、前記プログラムに関連する入力領域とデータ項目とを部品化の対象に加える関連プログラム追加処理
を実行することを特徴とする請求項８乃至請求項１１のいずれか１項に記載の電子帳票部品開発方法。
【請求項１４】
前記記憶部のデータ項目は、ＸＭＬ（eXtensible Markup Language）によって記述されていることを特徴とする請求項８乃至請求項１３のいずれか１項に記載の電子帳票部品開発方法。
【請求項１５】
請求項８乃至請求項１４のいずれか１項に記載の電子帳票部品開発方法をコンピュータに実行させるための電子帳票部品開発プログラム。
【請求項１６】
請求項１５に記載の電子帳票部品開発プログラムを格納した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの入力画面を伴う計算機システムの開発技術に関する。
【背景技術】
【０００２】
データの入力画面を伴う計算機システムの開発に関しては、近年Webアプリケーションの開発技術が広く普及している。特に入力画面部分の開発に関しては、ホームページの開発を支援するソフトウェアが普及している。また、コンポーネントを組合せることにより、プログラムを開発する技術が広く知られている。例えば、特許文献１に示すBorland International, Inc.の発明では、コンポーネント間をportにより接続し、port間を流れるメッセージを定義することにより、プログラムを開発する方法について述べられている。（以上、従来技術１）
【特許文献１】United States Patent 5,850,548 System and methods for visual programming based on a high-level hierarchical data flow model, Williams; David Mark, November 14, 1994
【発明の開示】
【発明が解決しようとする課題】
【０００３】
データの入力画面を伴う計算機上のアプリケーションの開発において、データの入力領域を開発画面上に貼り付けることにより、入力画面を開発する方法は知られている。
また、従来技術１に述べたとおり、画面に限らず、コンポーネントの組合せによりプログラム（アプリケーション）を開発する方法は広く知られている。
ただし、従来技術１では、画面に関連するデータの階層などの構造は定義及び管理できないため、画面の一部を保存する場合に、入力領域に対応するデータを、その構造と共に保存し、再利用することはできない。
本発明は、画面上で選択された入力領域、データ構造及びプログラムを一組の部品として登録するときに、その部品の再利用性を検証することを可能とすることを目的とする。
【課題を解決するための手段】
【０００４】
前記課題を解決するため、本発明の電子帳票部品開発方法は、データの入力領域に対応するデータ項目の階層構造と前記入力領域に関連するプログラムとを記憶する記憶部と、情報を処理する処理部とを含んで構成されるコンピュータによる電子帳票部品開発方法であって、前記処理部が、部品化の対象として、複数の入力領域を選択する入力領域選択処理と、当該入力領域選択処理によって選択された入力領域に対応するデータ項目の階層構造を、前記記憶部のデータ項目の階層構造を参照して分析し、当該データ項目の階層構造を維持するために必要なデータ項目及び入力領域をリストアップするデータ構造検証処理と、前記入力領域選択処理により選択された入力領域及び前記データ構造検証処理により追加された入力領域に関連する前記プログラムが、部品化後も正常に動作するか否かを検証する関連プログラム検証処理とを実行する方法とした。
【０００５】
このような方法によれば、コンピュータの処理部は、選択された入力領域に対応するデータ項目の階層構造を分析し、データ構造の階層構造を維持するために必要なデータ項目及び入力領域をリストアップし、選択または追加された入力領域に関連するプログラムが、部品化後も正常に動作するか否かを検証することが可能となる。
【発明の効果】
【０００６】
本発明によれば、データの入力画面を伴う計算機上のアプリケーションの開発において、入力画面の中から、入力領域、データ構造及びプログラムを一組の部品として登録するときに、その部品の再利用性を検証できる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。
図１に、本発明の電子帳票部品開発方法のフローチャートを示す。
電子帳票部品開発方法は、開発者が帳票の設計画面から選択した部品化の対象（入力領域）を入力する入力領域選択処理Ｓ１０１（コントロール選択処理Ｓ１０１）と、コントロール選択処理Ｓ１０１において選択されたコントロールに関連したデータの構造が、部品に適しているか否か検証するデータ構造検証処理Ｓ１０２と、データ構造検証処理Ｓ１０２の処理結果に基づき、開発者にコントロール選択に関する選択を促がすメッセージを、後記するコンピュータのディスプレイなどの出力装置１１５０上に表示するデータ構造メッセージ表示処理Ｓ１０３と、データ構造メッセージ表示処理Ｓ１０３のメッセージを開発者が承認するか否かにより以降の処理を振り分ける処理Ｓ１０４と、データ構造検証処理Ｓ１０２において検証されたコントロールに関連したプログラムが、部品として切り出され、他の帳票にコピーされた場合に正しく動作するか否か検証する関連プログラム検証処理Ｓ１０５と、関連プログラム検証処理Ｓ１０５において検証された関連プログラムを部品の構成要素として登録する部品登録処理Ｓ１１０とを含んで構成される。コントロールについての説明は、後記する。
【０００８】
図２に、本発明の電子帳票部品開発方法をコンピュータ上で実現した例を示す。
図２において、電子帳票部品開発装置１１００は、中央処理装置１１１０（処理部１１１０）と、メインメモリ１１２０（記憶部１１２０）と、記憶装置１１３０と、入力装置１１４０と、出力装置１１５０とを含んで構成される。中央処理装置１１１０は、メインメモリ１１２０中の帳票表示／加工プログラム１１２１の指令を受け、記憶装置１１３０の帳票定義テーブル１１３１及び部品定義テーブル１１３２を参照して、これらのテーブルに蓄積された帳票定義や部品の中から、入力装置１１４０を経て選択されたものを出力装置１１５０上に表示する。また、開発者が入力装置１１４０により、部品化の対象をドラッグし、部品パレットにドロップすると、データ構造検証プログラム１１２２、関連プログラム検証プログラム１１２３が実行される。ここで、データ構造検証プログラム１１２２は、データ構造を検証する処理（例えば、図１におけるＳ１０１〜Ｓ１０４の処理）について記載されたものであり、関連プログラム検証プログラム１１２３は、関連プログラムを検証する処理（例えば、図１におけるＳ１０５以降の処理、または図１０におけるＳ１０６〜Ｓ１０９の処理）について記載されたものである。図１０は本発明の変更例の処理の流れを示したフローチャートであり、変更例については後記する。
【０００９】
このように、本発明の電子帳票部品開発方法をコンピュータに実行させるためのプログラムを記憶装置１１３０にインストールし、中央処理装置１１１０がそのプログラムをメインメモリ１１２０上にロードし、実行することによって、電子帳票部品開発装置１１００（例えば、図１、図５、図７、図１０、図１１に記載された各処理を行う装置）を実現することが可能である。
【００１０】
図３は、図２における入力装置１１４０を経て選択され、電子帳票部品開発装置１１００に入力されるデータ（申請データ）の例を示すものである。
申請データ２０５は、図３に示す通り、開始タグと、終了タグ及び、それらに囲まれたデータとを含んで構成される。「／」で始まるタグが終了タグであり、それ以外が開始タグである。申請データ２０５の場合、＜／氏名＞、＜／住所＞などは、終了タグであり、＜氏名＞、＜住所＞などは開始タグである。
開始タグとこれに対応する終了タグに囲まれた特定のデータをメンバと呼ぶ。また、メンバ名とはメンバがどのようなデータであるかを示すための識別子であり、管理者がメンバの内容から任意のメンバ名をつけてもよいし、そのメンバの開始タグの情報をメンバ名としてもよい。
また、画面２０３の氏名欄に日立太郎と入力すると、申請データ２０５は、
<氏名>日立太郎<／氏名>
となる。この例は、日立太郎が氏名であることを示す。
また、申請データの中から開始タグのみを抽出し、申請データの階層構造を再現したものをメンバ一覧と呼ぶ。図４において、符号３０１によって示された一覧がメンバ一覧である。メンバ一覧は、メンバから構成され、開始タグとメンバは１対１に対応する。
メンバ一覧３０１は、次に示すような申請データに対応する。
＜root＞
＜年月日＞
＜年＞＜／年＞
＜月＞＜／月＞
＜日＞＜／日＞
＜／年月日＞
＜申請者＞
＜氏名＞＜／氏名＞
＜住所＞＜／住所＞
＜／申請者＞
＜／root＞
メンバ一覧は、階層構造を持てるため、親子関係を持ったメンバが存在する。メンバ一覧３０１において、＜年＞は、＜年月日＞の子メンバであり、＜年月日＞は、＜年＞、＜月＞、＜日＞の親メンバである。子メンバを有しないメンバは、帳票に入力されるデータの項目名である。子メンバを有するメンバは、子メンバを総括するグループである。
【００１１】
次に、図１の各処理について、図４を参照して詳しく説明する。
最初にコントロール選択処理Ｓ１０１について説明する。
図４に、開発者がコントロール入力処理をおこなう計算機上のユーザインタフェースを示す。ここでコントロールとは、帳票のデータ入力部分のＧＵＩ（Graphical User Interface）のことである。
図４は、帳票及び部品の設計画面である。
【００１２】
帳票及び部品の設計画面は、メンバ一覧ウィンドウ３０１と、帳票コントロール一覧ウィンドウ３０２と、帳票設計ウィンドウ３０３とを含んで構成される。また、これらのウィンドウとは別に、部品パレットウィンドウ３０４が表示される。
帳票設計ウィンドウ３０３において、斜線部分が帳票コントロールであり、帳票コントロール一覧ウィンドウ３０２に、その一覧が表示されている。例えば、帳票コントロール一覧ウィンドウ３０２のＣＩＤ＿ＥＦ＿Ｙは、３０３における「年」の左隣のコントロールの名称である。
【００１３】
メンバ一覧ウィンドウ３０１には、申請データ２０５（図１３参照）のメンバ名が表示される。メンバ一覧ウィンドウにおいて、「年」、「月」、「日」など、子メンバを持たないメンバは、コントロールと対応付けられる。「年月日」、「申請者」など、子メンバを持つメンバは、コントロールと対応付けられない。例えば、「年」メンバは、ＣＩＤ＿ＥＦ＿Ｙコントロールと対応付けられているが、「年月日」メンバに対応付けられるコントロールは存在しない。
【００１４】
部品パレットウィンドウ３０４は、一つ以上のコントロールを組み合わせた部品の格納庫の役割を果たすものである。部品パレットウィンドウ３０４は、部品一覧ウィンドウ３０５、プレビューウィンドウ３０６、プロパティウィンドウ３０７などから構成される。
部品一覧ウィンドウ３０５には、格納された部品の一覧が表示される。
プレビューウィンドウ３０６には、マウスなどのポインティングデバイスにより、部品一覧ウィンドウ３０５上で選択された部品が表示される。
プロパティウィンドウ３０７には、同様にマウスなどのポインティングデバイスにより、部品一覧ウィンドウ３０５上で選択された部品の属性が表示される。属性には、部品名、部品の幅、部品の高さなどが含まれる。
【００１５】
コントロール選択処理Ｓ１０１とは、図４の帳票設計ウィンドウ３０３において、マウスなどのポインティングデバイスにより、開発者が一つ以上の帳票コントロールをドラッグし、部品パレットウィンドウ上に、ドロップすることによって、コントロールを入力する処理のことである。
図４の例では、帳票設計ウィンドウ３０３において、月の左隣のコントロール（帳票コントロール一覧３０２のＣＩＤ＿ＥＦ＿Ｍに対応）と、日の左隣のコントロール（帳票コントロール一覧３０２のＣＩＤ＿ＥＦ＿Ｄに対応）とを部品パレットにドラッグ＆ドロップしている。帳票設計ウィンドウ３０３上で帳票コントロールをドラッグすると、帳票コントロール一覧ウィンドウ３０２上で、対応するコントロール名と、メンバ一覧ウィンドウ３０１上の対応するメンバ名に下線が引かれる。
【００１６】
次に、図５を用いて、データ構造検証処理Ｓ１０２について説明する。
データ構造検証処理Ｓ１０２では、メンバの階層構造を維持することが、部品の再利用性を高めると判断し、コントロール選択処理Ｓ１０１において入力されたメンバが、階層構造を維持しているか否か検証し、維持していない場合には、メンバ追加による修正案を作成する。階層構造の維持とは、あるメンバの子メンバを全て含むことを意味する。
修正案を作成する過程を、フローチャートを用いて説明する。
データ構造検証処理Ｓ１０２は、親メンバ選択処理Ｓ４０１と、親メンバ選択処理Ｓ４０１において選択されたメンバの親が全て同一であるか確認する処理Ｓ４０２と、子メンバ追加処理Ｓ４０３と、共通メンバ選択処理Ｓ４０５と、子孫メンバ追加処理Ｓ４０６とを含んで構成される。
【００１７】
以下、各処理について、図４に示した例を用いて説明する。
図４において、コントロールとして「月」と「日」のメンバが選択されたものとする。
まず、親メンバ選択処理Ｓ４０１について説明する。
親メンバ選択処理Ｓ４０１は、コントロール選択処理Ｓ１０１において入力された全てのメンバの親メンバを検索する。ここでは、親メンバ選択処理Ｓ４０１によって、「月」メンバの親として「年月日」、「日」メンバの親として「年月日」が選択される。
【００１８】
次に、処理Ｓ４０２について説明する。
処理Ｓ４０２は、親メンバ選択処理Ｓ４０１で選択した全ての親メンバのパス名が同一か否か検証する。ここで、「月」メンバの親メンバ「年月日」のパス名は、root／年月日であり、「日」メンバの親メンバ「年月日」のパス名は、root／年月日である。
この場合、パス名が同一とみなし、子メンバ追加処理Ｓ４０３に進む。
【００１９】
子メンバ追加処理Ｓ４０３について説明する。
子メンバ追加処理Ｓ４０３は、処理Ｓ４０２で検証した同一の親メンバの子メンバの中で、コントロール選択処理Ｓ１０１で入力されなかったメンバが存在する場合、そのメンバを追加メンバとして追加する。ここでは、「年」メンバを追加する。本例の場合、「年」メンバは、子孫を持っていないが、子孫を持っている場合には、その子孫も追加する。
【００２０】
次に、メンバ対応入力領域追加処理Ｓ４０４（メンバ対応コントロール追加処理Ｓ４０４）について説明する。メンバ対応コントロール追加処理Ｓ４０４では、子メンバ追加処理Ｓ４０３で追加された子メンバに対応する帳票コントロールを部品化の対象に追加する。ただし、追加された子メンバの中で、対応する帳票コントロールが存在しないメンバに関しては追加しない。本例の場合、「年」メンバに対応する帳票コントロールである「ＣＩＤ＿ＥＦ＿Ｙ」を追加する。
【００２１】
次に、共通メンバ選択処理Ｓ４０５について説明する。
図４は、「月」メンバと、「日」メンバとを入力した場合について示したものであり、共通メンバ選択処理Ｓ４０５に進まない場合について示したものであるが、仮に、先に選択されていた「月」メンバ、「日」メンバに加え、「氏名」メンバも、コントロール選択処理Ｓ１０１において入力されたとする。
この場合、「氏名」メンバの親メンバは、「申請者」であり、そのパス名は、
root／申請者
であるので、「日」メンバ及び「月」メンバの親メンバである「年月日」のパス名
root／年月日
とは異なるため、処理Ｓ４０２の結果、共通メンバ選択処理Ｓ４０５に進む。
【００２２】
共通メンバ選択処理Ｓ４０５は、処理Ｓ４０２で検証した全ての親メンバパスの中で、共通でかつ、最下層のメンバを選択する。
この例では、rootの直下が「年月日」と「申請者」となり異なるため、「root」を共通メンバとして選択し、子孫メンバ追加処理Ｓ４０６に進む。
【００２３】
子孫メンバ追加処理Ｓ４０６について説明する。
子孫メンバ追加処理Ｓ４０６は、メンバ対応コントロール追加処理Ｓ４０４で選択した共通メンバの子孫メンバの中で、コントロール選択処理Ｓ１０１において入力されていなかったメンバが存在する場合、そのメンバを追加メンバとして追加する。
本例の場合、「年月日」、「年」、「申請者」、「住所」のメンバが、追加メンバとして追加される。メンバ対応コントロール追加処理Ｓ４０４では、「年」、「住所」に対応する帳票コントロールが追加される。「年月日」、「申請者」に対応する帳票コントロールは存在しないため、追加されない。
【００２４】
次に、データ構造メッセージ表示処理Ｓ１０３について説明する。
データ構造メッセージ表示処理Ｓ１０３は、処理Ｓ１０２の結果に基づき、コントロール選択処理Ｓ１０１により選択されたコントロールに追加すべきコントロールを計算機のディスプレイ上のウィンドウに提示し、開発者に選択を促がす。図６に本例の具体的なメッセージを示す。本ウィンドウには、「はい」「いいえ」の二つのボタンが表示され、開発者は、マウス等のポインティングデバイスにより、どちらか一方を選択できる。開発者が、「はい」、「いいえ」のいずれかを選択すると、処理Ｓ１０４に進む。
【００２５】
次に、処理Ｓ１０４について説明する。
処理Ｓ１０４は、データ構造メッセージ表示処理Ｓ１０３において表示されるウィンドウ上で「はい」が選択された場合には、データ構造メッセージ表示処理Ｓ１０３のウィンドウ上に表示されたコントロールを部品化の対象に追加し、関連プログラム検証処理Ｓ１０５に進む。「いいえ」が選択された場合、部品化の処理を終了する。
【００２６】
次に、関連プログラム検証処理Ｓ１０５について説明する。
帳票の中には、入力データの検証、入力データを用いた計算などのプログラムを埋め込むことができる。例えば、図４に示す例の場合、請求年月日に入力されたデータをカレンダーと比較し、実際に存在する年月日か否か検証するプログラムを埋めこみ、データの送信時に起動できる。関連プログラム検証処理Ｓ１０５では、帳票の中から一部のコントロールを選択し、部品として登録する場合、選択したコントロールに関連付けられているプログラムが正常に動作するか否か検証し、正常に動作しない場合には、追加すべきコントロールを選択する。
【００２７】
以下、図７に示すフローチャートを用いて詳しく説明する。
関連プログラム検証処理Ｓ１０５は、関連プログラム選択処理Ｓ６０１と、処理Ｓ６０２と、終了確認処理Ｓ６０３と、関連プログラム削除処理Ｓ６０４とを含んで構成される。
関連プログラム選択処理Ｓ６０１は、コントロール選択処理Ｓ１０１で入力されたコントロールとデータ構造判別処理の結果、追加されたコントロールに関して、関連付けられているプログラムをリストアップし、重複しているものは、一つになるように削除する。
【００２８】
処理Ｓ６０２は、関連プログラム選択処理Ｓ６０１でリストアップした各プログラムについて、その入出力変数が全て、部品化の対象である帳票コントロールであるか否か検証する。全て部品化の対象である帳票コントロールである場合には、終了確認処理Ｓ６０３に進み、部品化の対象である帳票コントロール以外のコントロールが含まれる場合には、関連プログラム削除処理Ｓ６０４に進む。
【００２９】
終了確認処理Ｓ６０３は、関連プログラム選択処理Ｓ６０１でリストアップされた全ての関連プログラムについて、入出力変数検証処理Ｓ６０２が実行されていれば処理を終了し、それ以外の場合には、入出力変数検証処理Ｓ６０２を未実施の関連プログラムについて、処理Ｓ６０２を実行する。
関連プログラム削除処理Ｓ６０４は、処理Ｓ６０２において検証していた関連プログラムを部品化の対象から削除する。
【００３０】
最後に部品登録処理Ｓ１１０は、処理Ｓ１０５において作成された部品を部品パレット３０４（図４参照）に登録する。部品に関する情報は、部品パレット３０４（図４参照）、つまり後記する記憶装置１１３０（図２参照）に、図９に示すフォーマットで格納される。また、部品の実体に関しては、後記する記憶装置１１３０（図２参照）内の部品定義テーブル１１３２（図１２参照）の部品カラムに格納される。
【００３１】
図９に示すとおり、部品に関する情報は、表示部８０１と、データ構造部８０２と、制約条件部８０３と、関連プログラム部８０４とを含んで構成される。
【００３２】
表示部８０１は、部品を構成する帳票コントロールの表示位置など、表示に関する情報が記述される。<xforms:input ref>タグにより、次に述べるデータ構造部８０２のデータ項目と対応付けられる。図９に示す例では、「年」に対応するコントロールの情報が記述されている。
データ構造部８０２には、部品のデータ構造が記述される。
制約条件部８０３は、帳票コントロールのプロパティに設定される、最大値、最小値などの制約条件が記述される。図９に示す例では、「年」に入力可能な数値は、Integer型で、最小値は2005、最大値は2008であることを示す。
関連プログラム部８０４は、部品の帳票コントロールに割り当てられた関連プログラムに関する情報が記述される。図９に示す例では、「年」「月」「日」に入力された値が実在するか否か検証するプログラムである「Ｄａｙ＿ｅｘｉｓｔｅｎｃｅ＿ｃｈｅｃｋ」が、「ＣＩＤ＿ＥＦ＿Ｙ」「ＣＩＤ＿ＥＦ＿Ｍ」「ＣＩＤ＿ＥＦ＿Ｄ」の三つのコントロールに入力された値を入力パラメータとすることを示す。
【００３３】
以上説明したように、本発明によって再利用性の高い表示イメージとデータ構造を保持した部品を抽出できる。
そして、本発明を利用して開発した部品を利用することにより、入力画面の開発効率を改善すると共に、入力画面の開発に必要な技術レベルを下げることもできる。また、入力画面の品質を一定に保てるという効果もある。
【００３４】
図１２に、図２に示す記憶装置１１３０に格納された帳票定義テーブル１１３１及び部品定義テーブル１１３２の例を示す。
帳票定義テーブル１１３１は、帳票定義ＩＤ、帳票名称、帳票などのカラムから構成される。帳票定義ＩＤカラムは、帳票を一意に特定する番号である。帳票名称カラムは、帳票の名称である。帳票カラムは、バイナリ形式の帳票データを格納するものである。帳票カラムに格納される帳票は、帳票ＩＤや帳票名称から特定され、帳票定義テーブル１１３１から読み出されて使用される。また、ここでは、帳票カラムには、帳票の実体を格納することとしたが、帳票の実体が格納されている場所を示すアドレス情報を格納することとしてもよい。この場合、帳票を使用する際には、アドレス情報が示す場所から帳票の実体を取り出して使用することになる。
部品定義テーブル１１３２は、部品ＩＤ、部品名称、部品種別、部品などのカラムから構成される。部品ＩＤカラムは、部品を一意に特定する番号である。部品名称カラムは、部品の名称である。部品種別カラムは、部品の種類を表す。ここで、Ｃは、コントロール部品を表し、これは本実施形態で説明した、コントロール、データ構造及び関連プログラムを一組とした部品を表す。この他、関連プログラムのみの部品も考えられる。
部品カラムは、その部品の実体であるＸＭＬ（eXtensible Markup Language）データやバイナリデータを格納するものである。部品カラムに格納される部品は、部品ＩＤや部品名称から特定され、部品定義テーブル１１３２から読み出されて使用される。また、ここでは、部品カラムには、部品の実体を格納することとしたが、部品の実体が格納されている場所を示すアドレス情報を格納することとしてもよい。この場合、部品を使用する際には、アドレス情報が示す場所から部品の実体を取り出して使用することになる。
【００３５】
以上の実施例は以下のように変更して実施することも可能である。
第１の変更例として、図１において、関連プログラム検証処理Ｓ１０５の内容を変更する場合が考えられる。
図１においては、関連プログラム検証処理Ｓ１０５は、関連プログラムを正常に動作させるために新たなコントロールの追加が必要な場合には、削除している。以下の例では、関連プログラムを正常に動作させるために追加が必要なコントロールをリストアップし、関連プログラムと、それに関連して追加が必要なコントロールを部品に追加するか否か、開発者が選択可能とする。
【００３６】
本変更内容のフローチャートを、図１０に示す。
図１０は、図１と比べ、処理Ｓ１０６、関連プログラムメッセージ表示処理Ｓ１０７、処理Ｓ１０８、関連プログラム追加処理Ｓ１０９が追加されている。また、関連プログラム検証処理Ｓ１０５の内容も変更されている。変更後の処理Ｓ１０５のフローチャートを、図１１に示す。
【００３７】
まず、図１０における変更部分について説明する。
処理Ｓ１０６は、関連プログラム検証処理Ｓ１０５でリストアップした関連プログラムの中で未処理のプログラムが存在するか否かを確認する。未処理のプログラムが存在する場合には、関連プログラムメッセージ表示処理Ｓ１０７を実行し、それ以外の場合には、部品登録処理Ｓ１１０を実行する。
【００３８】
関連プログラムメッセージ表示処理Ｓ１０７では、関連プログラム検証処理Ｓ１０５において登録された関連プログラムと、各関連プログラムの追加に伴い追加する必要のある帳票コントロールとを一組とし、計算機のディスプレイ上のウィンドウに提示し、開発者に選択を促す。図８に本例の具体的なメッセージを示す。本ウィンドウには、「はい」、「いいえ」の二つのボタンが表示され、開発者は、マウス等のポインティングデバイスにより、どちらか一方を選択できる。開発者が、「はい」、「いいえ」のいずれかを選択すると、処理Ｓ１０８に進む。
図８に示す通り、関連プログラムメッセージ表示処理Ｓ１０７で表示されるメッセージは、例えば、プログラム名称の追加を問うメッセージと、プログラムの追加に伴い追加される帳票コントロール名を示すメッセージとが表示される。ただし、本例では、プログラムの追加に伴い追加される帳票コントロールは存在しない。
【００３９】
次に、処理Ｓ１０８について説明する。
処理Ｓ１０８は、関連プログラムメッセージ表示処理Ｓ１０７のウィンドウ上で「はい」が選択された場合には、関連プログラム追加処理Ｓ１０９に進み、「いいえ」が選択された場合には、処理Ｓ１０６を実行する。
【００４０】
次に、関連プログラム追加処理Ｓ１０９について説明する。
関連プログラム追加処理Ｓ１０９は、処理Ｓ１０８で「はい」と回答された関連プログラムを、そのプログラムの引数となる帳票コントロールと共に、部品化の対象に追加する。この場合、帳票コントロールに対応付けられたメンバも部品化の対象に追加される。関連プログラムとその引数となる帳票コントロールとの関係については、追加入力領域登録処理Ｓ１００２（追加コントロール登録処理Ｓ１００２）において登録されている情報を参照する。
【００４１】
次に、図１１を用いて、変更後の関連プログラム検証処理Ｓ１０５について説明する。
図１１の処理フローは、図７の処理フローと比べ、処理Ｓ６０２の結果がＮｏの場合に、関連プログラム削除処理Ｓ６０４の代わりに、入力領域追加処理Ｓ１００１（コントロール追加処理Ｓ１００１）、データ構造検証処理Ｓ１０２、追加コントロール登録処理Ｓ１００２を実行する。
コントロール追加処理Ｓ１００１は、処理Ｓ６０２においてＮｏに該当する場合、選択されたコントロールを、部品化の対象に追加し、データ構造検証処理Ｓ１０２は、コントロール追加処理Ｓ１００１が追加したコントロールに関して、データ構造の検証を実行する。
データ構造検証処理Ｓ１０２については、先に説明した通りである。
追加コントロール登録処理Ｓ１００２は、コントロール追加処理Ｓ１００１及びデータ構造検証処理Ｓ１０２により、新たに追加された帳票コントロールと、関連プログラムとを一組として登録する。
【００４２】
第２の変更例として、図１０において、関連プログラムメッセージ表示処理Ｓ１０７を実行せずに、関連プログラム追加処理Ｓ１０９において、関連プログラムの追加に伴い新たに追加が必要な帳票コントロールと、メンバを全て追加する方法も考えられる。これは、開発者が全ての関連プログラムに関して、関連プログラムメッセージ表示処理Ｓ１０７において表示される図８の画面上で「はい」を押下した場合と同じ結果になる。
【００４３】
次に、第３の変更例について図１３を用いて説明する。
ここで説明する第３の変更例における本電子申請システムは、クライアント２０２とサーバ２０６とを含んで構成される。
また、サーバ２０６は、ユーザプログラム２０７と電子帳票サーバ２１０とを含んで構成され、ユーザプログラム２０７は、帳票生成プログラム２０８とデータ受信プログラム２０９とを含んで構成される。
【００４４】
まず、申請者２０１が、特定の帳票を呼出す。すると、帳票生成プログラム２０８が、電子帳票サーバ２１０に対して、指定された帳票を要求する。帳票生成プログラム２０８は、電子帳票サーバ２１０から受け取った帳票２０４をクライアント２０２に送信する。
帳票２０４は、クライアント２０２の画面上で、画面２０３の形式で表示される。
申請者２０１は、画面２０３上で、氏名、住所、申請内容を入力した上で、送信ボタンを押下する。すると、申請データ２０５がサーバ２０６に送信される。
データ受信プログラム２０９は、申請データ２０５を受信し、電子帳票サーバ２１０が提供する機能を利用して、入力漏れなどがないか、検証し、申請データ２０５を、記憶装置１１３０に格納する。
このように、本電子申請システムは、クライアント２０２とサーバ２０６とを含む構成として実現することも可能である。
【００４５】
クライアント２０２のハードウェア構成については図示しないが、図２に示した電子帳票部品開発装置１１００のように、中央処理装置、メインメモリ、記憶装置、入力装置、出力装置などを備えた構成である。そして、記憶装置中にクライアント２０２の処理が記載されたプログラムが格納されており、中央処理装置は、そのプログラムをメインメモリに読み込み、メインメモリ中のプログラムから指令を受け、クライアント２０２の処理を実行する。
また、サーバ２０６のハードウェア構成についても図示しないが、図２に示した電子帳票部品開発装置１１００のように、中央処理装置、メインメモリ、記憶装置、入力装置、出力装置などを備えた構成である。そして、記憶装置中にサーバ２０６の処理が記載されたプログラムが格納されており、中央処理装置は、そのプログラムをメインメモリに読み込み、メインメモリ中のプログラムから指令を受け、サーバ２０６の処理を実行する。メインメモリ中のプログラムには、クライアント２０２とデータを送受信するためのプログラム（帳票生成プログラム２０８、データ受信プログラム２０９など）がさらに含まれる構成となる。
【００４６】
以上、本発明によれば、データの入力画面を伴う計算機上のアプリケーションの開発において、入力画面の中から、表示イメージと、データ構造と、プログラムとを一組の部品として登録するときに、その部品の再利用性を検証できる。
そして、本発明を利用して開発した部品を利用することにより、入力画面の開発効率を改善すると共に、入力画面の開発に必要な技術レベルを下げることもできる。また、入力画面の品質を一定に保つこともできる。
【００４７】
さらに、本発明における部品をＸＭＬで表記することにより、ＸＭＬの構造さえ揃えば、異なる開発ツールで開発した部品も流用することが可能になる。しかし、本発明における部品は、ＸＭＬによる表記に限定されない。例えば、ＳＧＭＬ（Standard Generalized Mark-up Language）や、ＨＴＭＬ（HyperText Markup Language）、ＳＯＡＰ（Simple Object Access Protocol）など、プログラムと連携可能な階層構造を有するマークアップ言語等を用いて部品を表記すれば、本発明を実施することが可能である。
【図面の簡単な説明】
【００４８】
【図１】本発明の部品開発方法の全体を示したフローチャートである。
【図２】本発明の部品開発方法のコンピュータ上の実装図である。
【図３】本発明の部品開発装置に入力される申請データの説明図である。
【図４】本発明の部品開発方法を適用する、部品及び帳票を開発するユーザインタフェースである。
【図５】本発明の部品開発方法を構成するデータ構造検証処理のフローチャートである。
【図６】本発明の部品開発方法を構成するデータ構造メッセージ表示処理のユーザインタフェースである。
【図７】本発明の部品開発方法を構成する関連プログラム検証処理のフローチャートである。
【図８】本発明の部品開発方法を構成する関連プログラムメッセージ表示処理のユーザインタフェースである。
【図９】本発明の部品開発方法により開発される部品のフォーマットである。
【図１０】本発明の第１の変更例の全体を示すフローチャートである。
【図１１】本発明の第１の変更例における関連プログラム検証処理のフローチャートである。
【図１２】本発明の部品開発方法が利用する帳票定義と部品を格納するテーブルの例である。
【図１３】本発明の第３の変更例における部品開発方法を利用して開発された帳票の運用形態の説明図である。
【符号の説明】
【００４９】
８０１  表示部
８０２  データ構造部
８０３  制約条件部
８０４  関連プログラム部
Ｓ１０１  入力領域入力処理（コントロール入力処理）
Ｓ１０２  データ構造検証処理
Ｓ１０３  データ構造メッセージ表示処理
Ｓ１０５  関連プログラム検証処理
Ｓ１０７  関連プログラムメッセージ表示処理
Ｓ１０９  関連プログラム追加処理
Ｓ１１０  部品登録処理
Ｓ４０１  親メンバ選択処理
Ｓ４０３  子メンバ追加処理
Ｓ４０４  メンバ対応入力領域追加処理（メンバ対応コントロール追加処理）
Ｓ４０５  共通メンバ選択処理
Ｓ４０６  子孫メンバ追加処理
Ｓ６０１  関連プログラム選択処理
Ｓ６０２  入出力変数検証処理
Ｓ６０３  終了確認処理
Ｓ６０４  関連プログラム削除処理
Ｓ６０５  追加コントロール登録処理
Ｓ１００２  コントロール追加処理
１１００  電子帳票部品開発装置
１１１０  処理部（中央処理装置）
１１２０  記憶部（メインメモリ）
１１４０  入力装置
１１５０  出力装置
【図１】
0004559955.tif 000002
【図２】
0004559955.tif 000003
【図３】
0004559955.tif 000004
【図４】
0004559955.tif 000005
【図５】
0004559955.tif 000006
【図６】
0004559955.tif 000007
【図７】
0004559955.tif 000008
【図８】
0004559955.tif 000009
【図９】
0004559955.tif 000010
【図１０】
0004559955.tif 000011
【図１１】
0004559955.tif 000012
【図１２】
0004559955.tif 000013
【図１３】
0004559955.tif 000014