(57)【要約】【課題】画面定義の簡便さを損なわず、自由なダイアログを実現し、またダイアログとのパラメータの受け渡しを実現するプログラムを自動生成すること。【解決手段】コード生成部Ａ１０７は、入出力テーブルＡ１０９内の指定情報に基づいて、ダイアログ画面の表示処理コードとして「遷移元画面から渡されるパラメータに基づいて関連データテーブルを検索し、検索結果を対応する入出力項目に表形式でセットする」コード、ダイアログ画面への画面遷移コードとして「遷移先画面をダイアログとして呼び出すとともに次画面パラメータとして指定された遷移元画面上の入出力項目にセットされた値を遷移先画面に渡す」コード、ダイアログ画面から通常画面への画面遷移コードとして「次画面パラメータとして指定された遷移元画面上の入出力項目の値を遷移先の画面へ渡す」コードを生成する構成を特徴とする。【選択図】図１
2008052387.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを生成するプログラム生成装置において、
生成するプログラムで用いる画面の定義，前記画面に関連する関連データテーブルの指定，前記画面に配置される入出力項目の指定，前記入出力項目への指示に対応する画面遷移の指定，前記画面遷移時に遷移元画面から遷移先画面に受け渡しされるパラメータの指定を含む指定情報に基づいて、プログラムコードを生成する生成手段を有し、
前記画面の定義は、生成する画面が遷移元画面に付随する付随タイプの画面か遷移元画面に付随しない非付随タイプの画面かの指定を含むものであり、
前記生成手段は、
前記指定情報で付随タイプと指定された画面の表示処理を実現させるコードとして、「遷移元画面から渡されるパラメータに基づいて関連データテーブルを検索し、該検索結果を対応する画面上の入出力項目にセットする」コードを生成し、
前記指定情報において付随タイプとして定義された画面への画面遷移を実現させるコードとして、「遷移先画面を遷移元画面の付随画面として呼び出すとともに画面遷移時のパラメータとして指定された遷移元画面上の入出力項目にセットされた値を遷移先画面に渡す」コードを生成し、
前記指定情報で付随タイプと指定された画面から非付随タイプと指定された画面への画面遷移を実現させるコードとして、「パラメータとして指定された遷移元画面上の入出力項目の値を遷移先の画面へ渡す」コードを生成する、
ことを特徴とするプログラム生成装置。
【請求項２】
前記入出力項目の指定は、入出力項目をマトリクス形式で配置するか否かの指定を含むものであり、
前記生成手段は、前記指定情報で付随タイプと指定され且つマトリクス形式の入出項目の配置が指定される画面内の表示処理を実現させるコードとして、「遷移元画面から渡されるパラメータに基づいて関連データテーブルを検索し、該検索結果に基づいてマトリクス形式で指定された入出力項目をマトリクス形式に配置させ、該マトリクス形式に配置された各入出力項目に、前記検索結果の各レコード内の対応する項目の値をそれぞれセットする」コードを生成することを特徴とする請求項１に記載のプログラム生成装置。
【請求項３】
前記生成手段は、前記指定情報でマトリクス形式に指定された入出項目に対する指示に応じて前記指定情報で付随タイプと指定された画面から非付随タイプと指定された画面への画面遷移を実現させるコードとして、「指示された入出力項目に対応してマトリクス形式で配置された入出力項目のうちパラメータとして指定された入出力項目の値を、遷移先画面へ渡す」コードを生成することを特徴とする請求項２に記載のプログラム生成装置。
【請求項４】
前記指定情報は、前記関連データテーブルの検索条件を含むものであり、
前記生成手段は、前記指定情報で指定された関連データテーブルを検索するコードとして、「遷移元画面から渡されるパラメータと検索条件とに基づいて関連データテーブルを検索する」コードを含めることを特徴とすることを特徴とする請求項１乃至３のいずれか１項に記載のプログラム生成装置。
【請求項５】
前記生成手段は、予めプログラム構造が定められたプログラムテンプレートに対して前記指定情報で指定された情報を組み込むことによりプログラムコードを生成することを特徴とする請求項１乃至４のいずれか１項に記載のプログラム生成装置。
【請求項６】
プログラムを生成するプログラム生成方法において、
生成するプログラムで用いる画面の定義，前記画面に関連する関連データテーブルの指定，前記画面に配置される入出力項目の指定，前記入出力項目への指示に対応する画面遷移の指定，前記画面遷移時に遷移元画面から遷移先画面に受け渡しされるパラメータの指定を含む指定情報に基づいて、プログラムコードを生成する生成ステップを有し、
前記画面の定義は、生成する画面が遷移元画面に付随する付随タイプの画面か遷移元画面に付随しない非付随タイプの画面かの指定を含むものであり、
前記生成ステップは、
前記指定情報で付随タイプと指定された画面の表示処理を実現させるコードとして、「遷移元画面から渡されるパラメータに基づいて関連データテーブルを検索し、該検索結果を対応する画面上の入出力項目にセットする」コードを生成し、
前記指定情報において付随タイプとして定義された画面への画面遷移を実現させるコードとして、「遷移先画面を遷移元画面の付随画面として呼び出すとともに画面遷移時のパラメータとして指定された遷移元画面上の入出力項目にセットされた値を遷移先画面に渡す」コードを生成し、
前記指定情報で付随タイプと指定された画面から非付随タイプと指定された画面への画面遷移を実現させるコードとして、「パラメータとして指定された遷移元画面上の入出力項目の値を遷移先の画面へ渡す」コードを生成する、
ことを特徴とするプログラム生成方法。
【請求項７】
前記入出力項目の指定は、入出力項目をマトリクス形式で配置するか否かの指定を含むものであり、
前記生成ステップは、前記指定情報で付随タイプと指定され且つマトリクス形式の入出項目の配置が指定される画面内の表示処理を実現させるコードとして、「遷移元画面から渡されるパラメータに基づいて関連データテーブルを検索し、該検索結果に基づいてマトリクス形式で指定された入出力項目をマトリクス形式に配置させ、該マトリクス形式に配置された各入出力項目に、前記検索結果の各レコード内の対応する項目の値をそれぞれセットする」コードを生成することを特徴とする請求項６に記載のプログラム生成方法。
【請求項８】
前記生成ステップは、前記指定情報でマトリクス形式に指定された入出項目に対する指示に応じて前記指定情報で付随タイプと指定された画面から非付随タイプと指定された画面への画面遷移を実現させるコードとして、「指示された入出力項目に対応してマトリクス形式で配置された入出力項目のうちパラメータとして指定された入出力項目の値を、遷移先画面へ渡す」コードを生成することを特徴とする請求項７に記載のプログラム生成方法。
【請求項９】
前記指定情報は、前記関連データテーブルの検索条件を含むものであり、
前記生成ステップは、前記指定情報で指定された関連データテーブルを検索するコードとして、「遷移元画面から渡されるパラメータと検索条件とに基づいて関連データテーブルを検索する」コードを含めることを特徴とすることを特徴とする請求項６乃至８のいずれか１項に記載のプログラム生成方法。
【請求項１０】
前記生成ステップは、予めプログラム構造が定められたプログラムテンプレートに対して前記指定情報で指定された情報を組み込むことによりプログラムコードを生成することを特徴とする請求項６乃至９のいずれか１項に記載のプログラム生成方法。
【請求項１１】
請求項６乃至１０のいずれか1項に記載されたプログラム生成方法をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項６乃至１０のいずれか1項に記載されたプログラム生成方法をコンピュータに実行させるためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定情報に基づいてプログラムのソースコードを生成するプログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
ダイアログは、ユーザが該当する情報を簡便に選択できるので便利なＧＵＩ機能である。特許文献１には、ダイアログをプログラム生成要素の一つとするプログラム生成方法が提案されている。
【０００３】
特許文献１では、例えば、男女の性別についての選択ダイアログのように既に完成されたダイアログ、即ち、いくつかの定型のダイアログをプログラム部品として用意し、定義指定によりソースプログラムパターンに組み込む方法である。
【０００４】
特許文献２では、画面遷移プログラムの生成方法が提案されている。
【特許文献１】特許第３２２７０６６号
【特許文献２】特開平８−２８６８９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の方法は、ダイアログそのものの構造や選択データを組み込むものではない。即ち、決められたダイアログのみしか生成できず、ダイアログを自由に定義することができないという問題点があった。
【０００６】
通常画面からダイアログを表示する状態は、一種の画面遷移とみなすことができる。
【０００７】
しかし、特許文献２の方法では、画面遷移であるダイアログを自由形式で作成することは可能であるが、その画面遷移の定義が非常に煩雑になってしまうという問題点があった。
【０００８】
また、特許文献２の方法では、画面上である部品がクリックされた際に他の部品の状態（選択，非選択，活性，不活性，独立）を遷移させるコードや、他の画面に遷移するコードを生成することは可能である。しかし、特許文献２の方法では、画面遷移時に遷移元画面から遷移先画面に対して値を受け渡しするコード等を自動生成することができない。
【０００９】
また、特許文献２の方法では、画面を自由に定義できるものの、遷移元画面から受け取ったパラメータに基づいて外部のデータテーブルを検索してダイナミックにダイアログの表示内容，表示レコード数等を変更するようなコードを自動生成することはできない。
【００１０】
結局、このようなコードに関しては、ユーザが手作業で作成する必要があり、非常に煩雑であるばかりでなく、高度なプログラムスキルを有するユーザでなければ行えないという問題点もあった。
【００１１】
従来の技術では、このような画面遷移プログラムを自動生成する技術は見当たらないが、実際このような画面遷移プログラムを自動生成しようとすると、遷移する画面間の関連が存在するので、遷移条件となる項目やクリックの定義、あるいは画面遷移時に抱え込むパラメータ指定、さらに、遷移先画面が主画面に重ならないように付随的な位置に表示させるための指定等の煩雑な指定操作が必要となると推定される。
【００１２】
このように、自由なダイアログを自動生成するには様々な問題点があり、従来の技術では実現できなかった。
【００１３】
本発明は、この問題を解決するためになされたものであり、発明の目的は、ダイアログ定義の簡便さを損なわずに、自由なダイアログを実現し、またダイアログとのパラメータの受け渡しを実現するプログラムを自動生成する仕組を提供することである。
【課題を解決するための手段】
【００１４】
本発明は、プログラムを生成するプログラム生成装置において、生成するプログラムで用いる画面の定義，前記画面に関連する関連データテーブルの指定，前記画面に配置される入出力項目の指定，前記入出力項目への指示に対応する画面遷移の指定，前記画面遷移時に遷移元画面から遷移先画面に受け渡しされるパラメータの指定を含む指定情報に基づいて、プログラムコードを生成する生成手段を有し、前記画面の定義は、生成する画面が遷移元画面に付随する付随タイプの画面か遷移元画面に付随しない非付随タイプの画面かの指定を含むものであり、前記生成手段は、前記指定情報で付随タイプと指定された画面の表示処理を実現させるコードとして、「遷移元画面から渡されるパラメータに基づいて関連データテーブルを検索し、該検索結果を対応する画面上の入出力項目にセットする」コードを生成し、前記指定情報において付随タイプとして定義された画面への画面遷移を実現させるコードとして、「遷移先画面を遷移元画面の付随画面として呼び出すとともに画面遷移時のパラメータとして指定された遷移元画面上の入出力項目にセットされた値を遷移先画面に渡す」コードを生成し、前記指定情報で付随タイプと指定された画面から非付随タイプと指定された画面への画面遷移を実現させるコードとして、「パラメータとして指定された遷移元画面上の入出力項目の値を遷移先の画面へ渡す」コードを生成することを特徴とする。
【発明の効果】
【００１５】
プログラム自動生成環境において、入力補助機能として遷移元画面に付随する付随画面（ダイアログ）を自在に設計して自動生成できる。
【００１６】
例えば、関連しあった階層の入力項目があった場合に、各階層の入力項目数分ダイアログを開いて、入力項目を決定するのではなく、関連が見やすい表などの形態に項目を表示して、該当する項目グループを選択入力しやすいダイアログを生成できる。
【００１７】
また、ダイアログ表示データを、設計者が指定した項目に関する部分のみに絞って表示する機能と、表示する関連項目グループが多い場合には、ダイアログ画面に検索機能を付加して、多い項目を絞り込む補完機能を生成できる。
【００１８】
例えば、既にあるデータをダイアログに使用する場合に、ユーザにとって不用な項目を排除して必要な項目のみを表示し、一方、表示グループが多い場合には、ダイアログの検索により、有意な選択候補値を同一ダイアログ画面内に絞り込み、絞り込み一覧化の効果を維持しつつ、多量な表示にも有用さを発揮する機能を生成できる。
【００１９】
また、ダイアログから所望のグループが発見できた場合に、該当するグループを１回選択すれば、グループに含まれる項目群から必要な項目のみが入力値として一括セットされる機能を生成できる。即ち、１回の選択で複数項目を一度に選択する簡便さを享受できる。
【００２０】
従って、アプリケーション開発時の入力画面と入力補助であるダイアログ画面の生成において、入力項目間の階層関係、関連性のあるデータの表示形式をユーザフレンドリにしたプログラムを容易に生成することができる等の効果を奏する。
【発明を実施するための最良の形態】
【００２１】
〔第１実施形態〕
本発明は、プログラム生成の効率化、開発物の管理のし易さを目的として構築されたアプリケーションプログラム自動生成システムにおいて、特に一覧表型（マトリクス型）ダイアログに関する自動生成の仕組を提供するものである。
【００２２】
まず、このアプリケーションプログラム自動生成システムの全体を、図１〜図４を参照して説明し、次いで、本発明に関わる部分を取り上げ、説明していく。
【００２３】
図１は、本発明に係るアプリケーションプログラム自動生成システムを適用可能なプログラム生成装置の一実施形態を示すブロック図である。
【００２４】
図１において、Ａ１０１は入力装置であり、キーボードやマウス等のポインティングデバイス等に相当する。この入力装置Ａ１０１は、業務仕様情報（生成する画面の定義（後述する図５に示す画面情報テーブル３００），各画面の項目の定義（後述する図６に示す画面項目情報テーブル４００），データ項目のデータベースへの配置とデータ項目間の関係、即ちあるデータがどのような条件のもとにどのようなデータから求められるかを示す情報（不図示）等）や、物理仕様情報（表示画面のプログラムコードを生成する際に用いる配置，色，表示の有無，サイズ等の条件情報等）の入力の選択等を行うためのものである。
【００２５】
Ａ１０２は表示装置で、ＣＲＴ，ＬＣＤ等で構成される。この表示装置Ａ１０２は、業務仕様情報，物理仕様情報の入力画面や、該入力画面から入力された業務仕様情報や物理仕様情報、生成されたプログラムコード等を表示可能である。
【００２６】
Ａ１０４はハードディスク等の外部記憶装置である。この外部記憶装置Ａ１０４は、入力装置Ａ１０１から入力された業務仕様を記憶するための入出力テーブルＡ１０９や入力された物理仕様を記憶するための物理仕様テーブルＡ１１０、生成されたプログラムコード（ＪＳＰコード１１２，サーブレット（Ｓｅｒｖｌｅｔ）コード１１３，Ｂｅａｎコード１１４）等を記憶するものである。
【００２７】
Ａ１０３は処理装置で、図２に示すＣＰＵ１０１，ＲＯＭ１０３，ＲＡＭ１０２等から構成される。
【００２８】
図２は、図１に示したプログラム生成装置のハードウェア構成の一例を示すブロック図であり、図１と同一のものには同一の符号を付してある。
【００２９】
図２に示すように、図１に示したプログラム生成装置は、パーソナルコンピュータ等で実現可能である。
【００３０】
ＣＰＵ１０１は、ＲＯＭ１０３或いは外部記憶装置Ａ１０４に記憶されている制御プログラムに基づいて、システムバスに接続されている各種デバイスとのアクセスを総括的に制御する構成となっている。
【００３１】
システムバスには、ＣＰＵ１０１の主メモリ、ワークエリア等として機能するＲＡＭ２０２が接続されている。ＲＯＭ２０３或いは外部メモリ１０４には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Basic Input ／ Output System）やオペレーティングシステム（以下、「ＯＳ」という。）プログラム、コンピュータＡ１０３が実行する処理を実現するために必要な各種プログラム等が記憶されている。
【００３２】
ＣＰＵ２０１は、処理の実行に際して必要な各種プログラム等をＲＡＭ２０２にロードして、当該プログラム等を実行することで図１に示した全体制御部Ａ１０８の機能及び各種動作を実現するものである。
【００３３】
外部メモリ１０４は、上述した各種プログラムとして、図示しないブートプログラム、各種アプリケーションプログラム、フォントデータ、ユーザーファイル等を記憶する。
【００３４】
ＣＰＵ２０１は、例えば、ＲＡＭ２０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、表示装置１０２上でＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ２０１は、表示装置１０２上のマウスカーソル(不図示)等で指示されたコマンドに基づいて、登録された種々なウィンドウを開き、種々のデータ処理を実行する。
【００３５】
以下、図１の説明に戻る。
【００３６】
処理装置Ａ１０３のＣＰＵ１０１は、ＲＯＭ１０３，外部記憶装置Ａ１０４又はその他の記録媒体に格納されるプログラムをＲＡＭ１０２上にロードして実行することにより、画面制御部Ａ１０５，仕様解析部Ａ１０６，コード生成部Ａ１０７，全体制御部Ａ１０８の機能を実現する。
【００３７】
画面制御部Ａ１０５は、入力装置Ａ１０１から業務仕様情報を入力するために表示装置Ａ１０２の画面を制御する業務仕様記述部Ａ１１６と、入力装置Ａ１０１から物理仕様情報を入力するために表示装置Ａ１０２の画面を制御する物理仕様記述部Ａ１１７から構成される。
【００３８】
仕様解析部Ａ１０６は、入力装置Ａ１０１から入力された又は外部記憶装置Ａ１０４から読み出された業務仕様情報，物理仕様情報に対して字句解析や文法解析を行う。
【００３９】
コード生成部Ａ１０７は、仕様解析部Ａ１０６により仕様解析された業務仕様情報，物理仕様情報に基づいてプログラムコード（ＪＳＰコードＡ１１２，サーブレット（Ｓｅｒｖｌｅｔ）コードＡ１１３，ＢｅａｎコードＡ１１４）を生成し、外部記憶装置Ａ１０４に記憶させる。
【００４０】
なお、コード生成部Ａ１０７は、外部記憶装置Ａ１０４から読み出された業務仕様情報（入出力テーブルＡ１０９）に基づいて外部記憶装置Ａ１０４上にデータベース（ＤＢ）Ａ１１５を構築するように構成してもよい。
【００４１】
全体制御部Ａ１０８は、画面制御部Ａ１０５，仕様解析部Ａ１０６，コード生成部Ａ１０７等の各部の制御を行う。
【００４２】
図３は、図１に示したコード生成部Ａ１０７によって生成されたサーブレットコードＡ１１３、ＪＳＰコードＡ１１２、およびＢｅａｎコードＡ１１４を利用したウェブアプリケーションシステムの全体構成であり、本プログラム生成装置から自動生成されたものの一例を示す模式図である。
【００４３】
コード生成部Ａ１０７によって生成されたサーブレットコードＡ１１３、ＪＳＰコードＡ１１２、およびＢｅａｎコードＡ１１４は、図３に示すように、それぞれ実行可能な状態のサーブレットＡ２０７、ＪＳＰ（Ａ２０９）、およびＢｅａｎ（Ａ２０８）として、サーバＡ２０４側のアプリケーションサーバＡ２０６上に配置される。
【００４４】
このＷｅｂアプリケーションシステムは、クライアントＡ２０１からウェブブラウザＡ２０２によって利用される。ウェブブラウザＡ２０２からＪＳＰ（Ａ２０９）にアクセスすることにより、ＨＴＭＬページを生成し、クライアントＡ２０１側に返送する。そして、ウェブブラウザＡ２０２上には、ＪＳＰ（Ａ２０９）から送信されるＨＴＭＬページＡ２０３が表示される。
【００４５】
また、ＷｅｂブラウザＡ２０２からのリクエストは、ＨＴＴＰ経由でサーバＡ２０４側に送信される。サーバＡ２０４にはＨＴＴＰサーバＡ２０５とアプリケーションサーバＡ２０６があり、アプリケーションサーバＡ２０６にはサーブレットやＪＳＰの実行環境が含まれている。
【００４６】
サーバＡ２０４側にリクエストが送信されると、リクエストに応じて該当するサーブレットＡ２０７が起動される。サーブレットＡ２０７は、対応するＢｅａｎ（Ａ２０８）に処理を要求する。さらに、Ｂｅａｎ（Ａ２０８）はＤＢアクセスオブジェクトＡ２１０を利用してデータベースＡ２１１にアクセスし、業務に関する処理やデータ加工などを行い、その処理結果を保持する。ＤＢアクセスオブジェクトＡ２１０は、業務を分析、設計した結果、作成されるクラスや、再利用可能な既存のクラスである。
【００４７】
次に、サーブレットＡ２０７からＪＳＰ（Ａ２０９）にＢｅａｎ（Ａ２０８）を渡し、ＪＳＰ（Ａ２０９）を呼び出す。ＪＳＰ（Ａ２０９）は、Ｂｅａｎ（Ａ２０８）で保持する処理結果を参照して、ＨＴＭＬページを生成し、クライアントＡ２０１側に返送する。クライアントＡ２０１側に返送されたＨＴＭＬページは、ＷｅｂブラウザＡ２０２上に表示される。
【００４８】
サーブレットＡ２０７は、ＷｅｂブラウザＡ２０２からのリクエストの受け付け、Ｂｅａｎ（Ａ２０８）への処理要求、およびＪＳＰ（Ａ２０９）の呼び出しという、それぞれの間をつなぎ、制御する役割を持つ。ＪＳＰ（Ａ２０９）はＨＴＭＬページを出力するための表示に関することを受け持ち、Ｂｅａｎ（Ａ２０８）はデータベースＡ２１１へのアクセス等の業務に関する処理を受け持つ。Ｂｅａｎ（Ａ２０８）やＪＳＰ（Ａ２０９）を利用せず、サーブレットＡ２０７のみでＷｅｂブラウザＡ２０２からのリクエストを処理することは可能であるが、Ｂｅａｎ（Ａ２０８）やＪＳＰ（Ａ２０９）を利用することでそれぞれの役割を明確に分離することで、機能分担を簡潔に把握することができる。なお、本実施形態では、コード生成部Ａ１０７が生成するコードとして、ＪＳＰコード，Ｓｅｒｖｌｅｔコード，Ｂｅａｎコードを例として挙げている。しかし、コード生成部Ａ１０７が生成するコードは、ＪＳＰコード，Ｓｅｒｖｌｅｔコード，Ｂｅａｎコードに限られるものではなく、どのようなプログラム言語のどのようなプログラムコードであってもよい。
【００４９】
以下、図４を参照して、本発明のプログラム生成装置における処理について説明する。
【００５０】
図４は、本発明のプログラム生成装置におけるにおける第１の制御処理手順の一例を示すフローチャートであり、図１に示した処理装置Ａ１０３の全体制御部Ａ１０８の動作に対応する。即ち、このフローチャートは図２に示したＣＰＵ１０１が外部記憶装置Ａ１０４等に記憶されているプログラムをＲＡＭ１０２上で実行することにより実現される。なお、Ｓ１０１〜Ｓ１０７は各ステップを示す。
【００５１】
図１に示した処理装置Ａ１０３は、コード生成する業務仕様（入出力テーブルＡ１０９）や物理仕様テーブルＡ１１０の入力を行う入力モードと、入力された業務仕様（入出力テーブルＡ１０９）や物理仕様テーブルＡ１１０からプログラムコードを生成する生成モードとを有する。
【００５２】
まず、全体制御部Ａ１０８が起動されると、ステップＳ１０１において、全体制御部Ａ１０８は、入力装置Ａ１０１からオペレータの指示により選択されたモードが生成モードか入力モードかを判定する。そして、入力モードが選択されたと判定した場合には、全体制御部Ａ１０８は、ステップＳ１０２に処理を進め、画面制御部Ａ１０５を起動する。
【００５３】
起動された画面制御部Ａ１０５は、ステップＳ１０３において、業務仕様記述部Ａ１１６により業務仕様入力画面を表示させ、オペレータから、生成するウェブアプリケーションのアプリケーション名や業務仕様の一形態である入出力テーブルへの項目入力を受け付け、該入出力テーブルを外部記憶装置Ａ１０４に格納する（図１に示した入出力テーブルＡ１０９）。なお、入出力テーブルＡ１０９については図５，図６を用いて後述する。
【００５４】
次に、画面制御部Ａ１０５は、ステップＳ１０４において、物理仕様記述部Ａ１１７を起動させる。起動された物理仕様記述部Ａ１１７は物理仕様入力画面を表示させ、オペレータから、物理仕様の一形態である物理仕様テーブルへの入力と業務パターンの選択を受け付け、この物理仕様テーブルと業務パターンの選択情報を外部記憶装置Ａ１０４にそれぞれ格納する（図１に示した物理仕様テーブルＡ１１０）。そして、処理を終了する。
【００５５】
一方、ステップＳ１０１において、入力装置Ａ１０１からオペレータの指示により選択されたモードが生成モードであると判定した場合には、全体制御部Ａ１０８は、ステップＳ１０５に処理を進める。
【００５６】
ステップＳ１０５では、全体制御部Ａ１０８は、外部記憶装置Ａ１０４に格納された入出力テーブルＡ１０９と物理仕様テーブルＡ１１０を読み出すとともに、仕様解析部Ａ１０６を起動させて、読み出した入出力テーブルＡ１０９と物理仕様テーブルＡ１１０の字句解析，文法解析を行う。
【００５７】
次に、ステップＳ１０６において、全体制御部Ａ１０８は、コード生成部Ａ１０７を起動させて、仕様解析部Ａ１０６で字句解析，文法解析が行われた入出力テーブルＡ１０９と物理仕様テーブルＡ１１０に基づいてコード生成処理及びデータベースの構築を行う。なお、コード生成処理の詳細については図７以降を用いて後述する。
【００５８】
そして、ステップＳ１０７において、全体制御部Ａ１０８は、生成されたコードを、オペレータの指示により表示装置Ａ１０２に表示し、かつ外部記憶装置Ａ１０４に書き込む出力処理を行う。
【００５９】
以下、図５〜図９を参照して、アプリケーションプログラムの自動生成システムから本発明を実施するにおいて、必要となるリソースを抽出して説明する。
【００６０】
図５，図６は、図１に示した入出力テーブルＡ１０９内の情報の一例を示す模式図であり、画面，画面内の項目，画面遷移等を定義したものである。コード生成処理時には、プログラムとして成立させるために必要な条件等をこのテーブルを参照してプログラムに表現する。
【００６１】
図１に示した１０９は、図５に示す画面情報テーブル３００，図６に示す画面項目情報テーブル４００を含む。
【００６２】
図５の画面情報テーブル３００には、画面そのものの定義情報が格納されている。
【００６３】
この画面情報テーブル３００には、生成する画面の画面名３０１と、生成する画面が「通常」タイプなのか「ダイアログ」タイプなのかを指定する画面タイプ３０２と、その画面でデータを「表示」または「登録」するＤＢテーブルを指定する関連テーブル３０３と、画面を表示する際、その表示レコードを絞り込む条件（即ち、検索条件）を指定する表示条件３０４が格納されている。
【００６４】
なお、画面タイプ３０２の「通常」は、遷移元画面に付随しない非付随タイプの画面（即ち、ダイアログボックス以外の画面）を示し、画面タイプ３０２の「ダイアログ」は、遷移元画面に付随する付随タイプの画面（即ち、ダイアログボックス）を示す。また、画面タイプ３０２が「ダイアログ」と定義されている画面は、遷移元の画面から渡されるパラメータと表示条件３０４とに基づいて関連テーブル３０３で定義されたＤＢテーブルからデータを検索し、該検索したデータを表示する画面である。
【００６５】
図５に示した例では、レコード３０５により、「通常」タイプの画面である「入力画面」が定義されている。
【００６６】
また、レコード３０６により、「ダイアログ」タイプの画面である「ダイアログ画面」が定義されている。この「ダイアログ画面」は、画面表示の際に遷移元の画面から渡されるパラメータと表示条件３０４での定義された条件とに基づいて関連テーブル３０３で定義された「部課テーブル」を検索し、該検索したデータを表示する画面となる。
【００６７】
図６の画面項目情報テーブル４００には、定義情報ＤＢのテーブルに画面に配置される項目の情報が格納されている。
【００６８】
この画面項目情報テーブル４００には、画面名４０１の他、画面に配置される項目の表示名である項目名４０２と、その項目がテキスト入力部品（入力フィールド）なのかボタン（通常のボタン，関連テーブルへデータを登録する登録ボタン，関連テーブルからデータを削除する削除ボタン等）なのかを設定する項目タイプ４０３と、その項目が明細形式で配置される「１」か、一覧形式（マトリクス形式）で配置される「２」かを設定する項目レベル４０４と、特に項目タイプがボタンの際に次に表示する画面を設定する次画面４０５と、同じく特に項目タイプがボタンの際に次画面に渡すパラメータとして項目名を設定する次画面パラメータ４０６が格納されている。
【００６９】
特に、図６の４０９に示すレコードで定義されるように、値を受け取る側の画面（入力画面）において「ダイアログ画面」を表示するボタン（選択ボタン）では、次画面パラメータ４０６に「ダイアログ画面」で設定してほしい項目の項目名（ここでは「部署名」，「課名」）を設定する。
【００７０】
また、図６の４１５に示すレコードで定義されるように、「ダイアログ画面」側の選択ボタンでも、次画面パラメータ４０６に設定する項目の項目名（「部署名」，「課名」）を設定する。
【００７１】
なお、レコード４０９と４１５の次画面パラメータは、互いに項目の順番を合わせる必要がある（ここでは「部署名」，「課名」の順となっている）。
【００７２】
また、値を受け取る側の画面（入力画面）においてダイアログ画面を表示するボタン（選択ボタン）の次画面パラメータ４０６には、もう1つ、「ダイアログ画面」に渡す項目（初期表示レコード検索用の項目）の意味もある。
【００７３】
また、図示していないが、図５の画面情報テーブル３００と図６の画面項目情報テーブル４００に別途他の画面定義を追加することにより、「入力画面」と「ダイアログ画面」の画面遷移だけでなく、「ダイアログ画面」から別のダイアログ画面へと画面遷移させることも簡単に定義できる。本実施形態は、複数の画面遷移を、階層をもって移動できる機能の一部を利用した例を示しているに過ぎず、この例により本発明が限定されるものではない。
【００７４】
以下、図５に示した画面情報テーブル３００，図６に示した画面項目情報テーブル４００を、該テーブルから実際に生成されるアプリケーションの画面例（図７，図８）を用いて詳細に説明する。
【００７５】
図７，図８は、図５に示した画面情報テーブル３００，図６に示した画面項目情報テーブル４００により定義（指定）され、コード生成部Ａ１０７で生成構成される画面の一例を示す模式図である。なお、図７，図８では、同一のものには同一の符号を付してある。
【００７６】
図７，図８に示す入力画面５０１は、図４の画面情報テーブル３００の画面名３０１，図５の画面項目情報テーブル４００の画面名４０１のそれぞれが「入力画面」であるレコード（図５の３０５，図６の４０７〜４１１）に対応する。
【００７７】
また、ダイアログ画面５０２は、図４の画面情報テーブル３００の画面名３０１，図５の画面項目情報テーブル４００の画面名４０１のそれぞれが「ダイアログ画面」であるレコード（図５の３０６，図４の４１２〜４１７）に対応する。
【００７８】
また、入力画面５０１の入力フィールドである部署名５０５，課名５０６は、図６のレコード４０７，４０８に対応する。
【００７９】
さらに、入力画面５０１の選択ボタン５０７は、図６のレコード４０９に対応する。なお、図６のレコード４０９の次画面４０５で定義されているように、この選択ボタン５０７が押下（指示）された場合、ダイアログ画面５０２が表示される。また、この際、図６のレコード４０９の次画面パラメータ４０６で定義されているように、部署名５０５，課名５０６に設定されるパラメータ値が、ダイアログ画面５０２に渡される。さらに、図６のレコード４１５の次画面パラメータ４０６で定義された項目に設定されるパラメータ値がダイアログ画面５０２から入力画面５０１に戻されるパラメータともなる。
【００８０】
また、入力画面５０１の入力フィールドである社員名５０８は、図６のレコード４１０に対応する。
【００８１】
さらに、入力画面５０１の追加ボタン５０９は、図６のレコード４１１に対応する。この追加ボタン５０９が押下（指示）された場合、図６のレコード４１１の次画面４０５で定義されているように、画面は自画面（入力画面５０１）のままとなる。なお、この追加ボタン５０９は図６のレコード４１１に定義されるように「登録ボタン」であるので、入力画面５０１で設定されたデータ（部署名，課名，社員名）が図５のレコード３０５で定義されている「社員テーブル」に登録されることになる。
【００８２】
ダイアログ画面５０２は、図３のレコード３０６で定義されるように、前の画面から渡されたパラメータ（「部署名」，「課名」）と表示条件３０４（部署名が同じ、または、課名が同じ）とに基づいて、部課テーブル５０４を検索して、検索結果を表示するものである。
【００８３】
図７に示した例では、パラメータの対象となる部署名５０５，課名５０６が空白となっているので、ダイアログ画面５０２では、部課テーブル５０４のレコード全件が検索され表示されている。
【００８４】
一方、図８に示した例では、パラメータの対象となる部署名５０５，課名５０６にパラメータに値が入力されてダイアログ画面５０２が表示された例を示してある。
【００８５】
図８に示すように、入力画面５０１で部署名５０５に「人事部」と入力された状態で選択ボタン５０７が押下されると、部署名５０５，課名５０６がパラメータとしてダイアログ画面５０２に渡され、ダイアログ画面５０２はこのパラメータ値を検索条件に部課テーブル５０４のレコードから部署名が「人事部」のデータが検索され（絞り込まれて）表示される。
【００８６】
なお、図示は無いが、部課テーブル５０４が大量である場合には、表示行を自動的に制限して、選択可能な量のみ表示する機能や、ダイアログ画面５０２に検索キーを入力して、表示を絞り込むこと等のプログラム機能を自動生成するように構成してもよい。
【００８７】
また、ダイアログ画面５０２の入力フィールドである部署検索５１０，課検索５１１は、図６のレコード４１２，４１３に対応する。
【００８８】
さらに、ダイアログ画面５０２の検索ボタン５１２は、図６のレコード４１４に対応する。なお、この検索ボタン５１２が押下（指示）された場合、図６のレコード４１４で定義されているように、部署検索５１０，課検索５１１の値を、次画面である自画面（ダイアログ画面５０２）に渡す。これにより、部署検索５１０，課検索５１１に設定された値に基づき、部課テーブル５０４が検索され、検索結果が部署名５１４，課名５１５に表示される。
【００８９】
なお、ダイアログ画面５０２の入力フィールドである部署名５１４，課名５１５，選択ボタン５１３は、図６のレコード４１２，４１３，４１１に対応するものであり、項目レベル４０４で「２」と定義されているように、一覧形式で配置表示される。
【００９０】
なお、一覧形式で配置されるいずれかの選択ボタン５１３が押下（指示）された場合、図６のレコード４１５の次画面４０５で定義されているように、入力画面５０１が表示される。また、この際、図６のレコード４１５の次画面パラメータ４０６で定義されているように、押下された選択ボタン５１３に対応する部署名５１４，課名５１５のパラメータ値が、入力画面５０１に渡される。
【００９１】
また、ユーザが、ダイアログ画面５０２の部署検索５１０，課検索５１１に検索に適切な値を入れて、検索ボタン５１２を押下すると、部署検索５１０，課検索５１１に入力された値は次画面（ダイアログ画面）へ渡されるパラメータなので、部署検索５１０，課検索５１１に入力した値をキーに部課テーブル５０４が検索され、検索結果が部署名５１４，課名５１５，選択ボタン５１３として一覧表示される。
【００９２】
そして、ユーザは、この検索結果から選択するレコードを見つけた場合、対応する選択ボタン５１３を押下する。すると、ダイアログ画面５０２が閉じられる。なお、入力画面５０１からダイアログ画面５０２へ渡す次画面パラメータ４０６（図６）は入力画面５０１の部署名５０５，課名５０６に設定されていたが、ダイアログ画面５０２から入力画面５０１に戻るときも、当該パラメータ格納項目に応答のパラメータが格納される。即ち、入力画面５０１の部署名５０５，課名５０６に対して、順に、ダイアログ画面５０２で選択された行の「部署名」，「課名」の値が設定される。
【００９３】
図７に示した例では、入力画面５０１で、ダイアログ画面５０２において「部署名」に「人事部」、「課名」に「採用課」のレコードが選択されたため、それぞれ、入力画面５０１の部署名５０５，課名５０６に「人事部」，「採用課」という値が設定されている。
【００９４】
なお、本実施形態では、部課テーブル５０４を例示しているが、入出力テーブルＡ１０９に他のデータテーブルを定義すれば、様々なダイアログを形成できることはいうまでもない。
【００９５】
以下、図９を参照して、図５，図６で定義（指定）されてコード生成部Ａ１０７で生成構成されたアプリケーションの各画面におけるパラメータの受け渡し動作について説明する。
【００９６】
図９は、図５，図６で定義（指定）されてコード生成部Ａ１０７で生成構成されたアプリケーションの各画面におけるパラメータの受け渡し動作を示す模式図である。
【００９７】
図５に示す画面情報テーブル３００，図６に示す画面項目情報テーブル４００により定義され、コード生成部Ａ１０７で生成構成されたアプリケーションプログラムを起動すると、ダイアログを表示する側の画面（図７，図８の入力画面５０１）がまず表示される（６０１）。ここでダイアログ表示ボタン（図７，図８の選択ボタン５０７）が押下されると、アプリケーションプログラムは、ダイアログを開く処理を行う(６０２)。この際、図６で示した画面項目情報テーブル４００で定義されたダイアログ画面５０２が表示され、ダイアログ画面５０２に次画面パラメータが渡される。
【００９８】
ダイアログ画面５０２側では、渡されたパラメータを、ダイアログ側の画面表示処理の表示条件に使用する(６０３)。即ち、ダイアログを表示するアプリケーションプログラムは、入力画面５０１から渡されたパラメータを検索キーとし、表示条件３０４で指定されている表示条件を検索条件として関連テーブル３０３についてデータ検索を行い、表示するレコードを絞り込む。この場合の関連テーブルは部課テーブルである。これらの実行手順が、ダイアログを表示するアプリケーションプログラムとして生成される。
【００９９】
なお、このダイアログ画面５０２で表示されているレコードを変更したい場合、ユーザは、検索条件（図７，図８の部署検索５１０，課検索５１１）を入力し、検索ボタン５１２を押下する。
【０１００】
するとアプリケーションプログラムは、自ダイアログ（ダイアログ画面５０２）の再表示を行う(６０４)。この際、ダイアログ画面５０２から自ダイアログ（ダイアログ画面５０２）にパラメータが渡される。そして、渡されたパラメータは、ダイアログ画面５０２の画面表示処理の表示条件に使用され、渡されたパラメータを使用してデータ検索が行われ、表示するレコードが絞り込まれる。
【０１０１】
そして、ユーザは、ダイアログ画面５０２で該当するレコードを見つけた際には、そのレコードの選択ボタン５１３を押下する。すると、ダイアログ画面５０２は閉じられ、選択されたレコードの情報が元画面（入力画面５０１）に渡される(６０５)。
【０１０２】
そして、入力画面５０１では、渡されたデータが部署名５０５，課名５０６に設定される。なお、このとき、ダイアログ画面５０２から渡されるパラメータの各項目への設定位置は、ダイアログ画面５０２へ渡したパラメータの項目順に対応する。即ち、入力画面５０１ではダイアログ画面５０２から渡されるパラメータを、ダイアログ画面５０２へ渡したパラメータの順に項目に設定していく。以上のように、パラメータの受け渡し動作が行われる。
【０１０３】
以上の説明は、図６における次画面パラメータの定義に基づいているが、実施例ではたまたま入力画面５０１の次画面パラメータ格納項目名とダイアログ画面５０２の次画面パラメータ格納項目名が、それぞれ「部課名」、「課名」と同じであるので、わかりやすいが、一方の項目を異なるものにしてもよい。ただし、入力画面５０１の次画面パラメータ格納項目が受ける戻りパラメータは、パラメータの順、データの性格が同じでなければならない。
【０１０４】
以下、図１０〜図１４を参照して、図１に示したコード生成部Ａ１０７におけるコード生成処理について説明する。
【０１０５】
図１０は、本発明のプログラム生成装置におけるにおける第２の制御処理手順の一例を示すフローチャートであり、図１に示した処理装置Ａ１０３のコード生成部Ａ１０７のコード生成処理における本発明に関わる部分の処理に対応する。即ち、このフローチャートは図２に示したＣＰＵ１０１が外部記憶装置Ａ１０４等に記憶されているプログラムをＲＡＭ１０２上で実行することにより実現される。なお、Ｓ９０１〜Ｓ９０２は各ステップを示す。
【０１０６】
まず、ステップＳ９０１において、コード生成部Ａ１０７は、外部記憶装置Ａ１０４の入出力テーブルＡ１０９から画面情報テーブル３００を読み込み、その情報から画面生成処理（画面定義の生成処理）を行う。なお、この画面生成処理の詳細は図１１に示す。
【０１０７】
まず、ステップＳ９０２において、コード生成部Ａ１０７は、外部記憶装置Ａ１０４の入出力テーブルＡ１０９から画面情報テーブル３００と画面項目情報テーブル４００を読み込み、その情報から画面項目生成処理（画面項目の生成処理、及び項目選択条件、画面遷移等の機能の組み込む処理）を行う。なお、この画面項目生成処理の詳細は図１２に示す。
【０１０８】
図１１は、本発明のプログラム生成装置におけるにおける第３の制御処理手順の一例を示すフローチャートであり、図１０のステップＳ９０１に示した画面生成処理に対応する。即ち、このフローチャートは図２に示したＣＰＵ１０１が外部記憶装置Ａ１０４等に記憶されているプログラムをＲＡＭ１０２上で実行することにより実現される。なお、Ｓ１００１〜Ｓ１００８は各ステップを示す。
【０１０９】
まず、ステップＳ１００１において、コード生成部Ａ１０７は、外部記憶装置Ａ１０４の入出力テーブルＡ１０９から画面情報テーブル３００のレコードを全件読み込み、Ｓ１００２〜Ｓ１００８に示すように、全ての画面情報レコードに対して、Ｓ１００３〜Ｓ１００７の処理を行う。
【０１１０】
まず、ステップＳ１００３において、コード生成部Ａ１０７は、画面情報テーブル３００のカレントレコードの画面タイプ３０２に対応する画面表示用のプログラムファイル（以下、画面表示プログラムファイル）の中間ファイルを外部記憶装置Ａ１０４内に作成する。即ち、この画面表示プログラムファイルは、画面毎に作成される。なお、この画面表示プログラムファイルは、予めプログラム構造が定められた外部記憶装置Ａ１０４に格納されているプログラムテンプレートの複製を作成することにより作成される。即ち、この時点でこの画面表示プログラムファイルはまだ雛型となっており、以降Ｓ１００４〜Ｓ１００７で画面固有の情報を埋め込む処理を行う。
【０１１１】
ステップＳ１００４において、コード生成部Ａ１０７は、Ｓ１００３で作成した画面表示プログラムファイルに、画面情報テーブル３００のカレントレコードの画面名３０１を設定するコードを埋め込む。
【０１１２】
次にステップＳ１００５において、コード生成部Ａ１０７は、同様にＳ１００３で作成した画面表示プログラムファイルに、画面情報テーブル３００のカレントレコードの画面タイプ３０２を設定するコードを埋め込む。以下、順次、画面表示する項目テーブルや、表示条件を設定し、該当コードを埋め込む手順に進むが、画面タイプが「ダイアログ」の場合には、このダイアログがオープンされた際にこの画面（ダイアログ）の表示処理を実現させるコードとして、「遷移元の画面から受け取ったパラメータと表示条件を検索条件として、このダイアログに関連するデータテーブルを検索し、検索結果を取得する」汎用的な処理コードも埋め込むものとする。この汎用的な処理コードは、予めプログラム構造が定めされたプログラム生成テンプレートであり、外部記憶装置Ａ１０４内に格納されている。
【０１１３】
次にステップＳ１００６において、コード生成部Ａ１０７は、Ｓ１００３で作成した画面表示プログラムファイルに、画面情報テーブル３００のカレントレコードの関連テーブル３０３をこの画面で表示するテーブルに設定するコードを埋め込む。画面タイプが「ダイアログ」の場合、上述した検索処理を行う汎用的な処理コード内に検索するデータテーブル名として、関連テーブル３０３で指定されたデータテーブル名を埋め込む。
【０１１４】
最後にステップＳ１００７において、コード生成部Ａ１０７は、Ｓ１００３で作成した画面表示プログラムファイルに、画面情報テーブル３００のカレントレコードの表示条件３０３を設定するコードを埋め込む。画面タイプが「ダイアログ」の場合、上述した検索処理を行う汎用的な処理コード内に検索条件として、関連テーブル３０３で指定された表示条件を埋め込む。そして、次の画面情報レコードに処理を移行させる。
【０１１５】
そして、コード生成部Ａ１０７は、Ｓ１００１で読み込んだ全ての画面情報レコードに対してＳ１００３〜Ｓ１００７の処理を終了したと判定した場合には、本フローチャートの処理を終了する。
【０１１６】
図１２は、本発明のプログラム生成装置におけるにおける第４の制御処理手順の一例を示すフローチャートであり、図１０のステップＳ９０２に示した画面項目生成処理に対応する。即ち、このフローチャートは図２に示したＣＰＵ１０１が外部記憶装置Ａ１０４等に記憶されているプログラムをＲＡＭ１０２上で実行することにより実現される。なお、Ｓ１１０１〜Ｓ１１１８は各ステップを示す。
【０１１７】
まず、ステップＳ１１０１において、コード生成部Ａ１０７は、外部記憶装置Ａ１０４の入出力テーブルＡ１０９から画面情報テーブル３００のレコードを全件読み込み、Ｓ１１０２〜Ｓ１１１８に示すように、全ての画面情報レコードに対して、Ｓ１１０３〜Ｓ１１１７の処理を行う。
【０１１８】
まず、ステップＳ１１０３において、コード生成部Ａ１０７は、外部記憶装置Ａ１０４から画面項目情報テーブル４００のレコードを全件読み込み、Ｓ１１０４〜Ｓ１１１７に示すように、全ての画面項目情報レコードに対して、Ｓ１１０５〜Ｓ１１１６の処理を行う。
【０１１９】
まず、ステップＳ１１０５において、コード生成部Ａ１０７は、図１０のステップＳ９０１で生成されたカレントの画面情報レコードに対応する画面表示プログラムファイル（以下、カレントの画面表示プログラムファイル）に対して、カレントの画面項目情報レコードの項目名４０２を設定するコードを埋め込む。
【０１２０】
次に、ステップＳ１１０６において、コード生成部Ａ１０７は、カレントの画面項目情報レコードの項目タイプ４０３を参照して、カレントの項目が「ボタン」であるか否かを判定する。
【０１２１】
ステップＳ１１０６で、カレントの項目が「ボタン」でないと判定した場合には、コード生成部Ａ１０７は、ステップＳ１１０８において、カレントの画面表示プログラムファイルに対して入力フィールドを配置するコードを埋め込む。この際、カレントの項目の項目レベル４０４の値が「１」の場合は明細形式で、「２」の場合は一覧形式で（即ち、動的に変化する表示対象の全レコードが一覧表示（マトリクス形式で表示）されるように）配置するコードを埋め込む。即ち、一覧形式（マトリクス形式）の場合、関連データテーブルの検索結果に基づいてこの入力フィールドをマトリクス形式に配置させ、該マトリクス形式に配置されたこの入力フィールドに、前記検索結果の各レコード内の対応する項目の値をそれぞれセットするコードを埋め込む。例えば図７，図８の部署名５１４，課名５１５のように入力フィールドが配置されるようにコードを埋め込む。そして、ステップＳ１１１７に処理を進め、次の項目に処理を移行させる。
【０１２２】
一方、ステップＳ１１０６で、カレントの項目が「ボタン」であると判定した場合には、コード生成部Ａ１０７は、ステップＳ１１０７において、カレントの画面表示プログラムファイルに対してボタンを配置するコードを埋め込む。この際、カレントの項目の項目レベル４０４の値が「１」の場合は明細形式で、「２」の場合は一覧形式で（即ち、動的に変化する表示対象の全レコードに対応して一覧表示されるように）配置するコードを埋め込む。一覧形式の場合、例えば図７，図８の選択ボタン５１３のようにボタンが配置されるコードを埋め込む。そして、ステップＳ１１０９に処理を進める。
【０１２３】
ステップＳ１１０９では、コード生成部Ａ１０７は、カレントの画面項目情報レコードの次画面４０５及びカレントの画面情報レコードに基づいて、次画面が「ダイアログ」であるか否かを判定する。
【０１２４】
ステップＳ１１０９で、次画面が「ダイアログ」であると判定した場合には、ステップＳ１１１０において、コード生成部Ａ１０７は、ボタンが押下（指示）された際に実行される処理として、遷移先がダイアログである場合の処理コード（例えば図１３の７０２）を、カレントの画面表示プログラムファイルに対して設定する（埋め込む）。さらに、この処理コードに対して、コード生成部Ａ１０７は、カレントの画面項目情報レコードの次画面４０５の情報（次画面の画面名）を設定するコードを埋め込む。例えば、図１３の７０４に示すコードを埋め込む。このコードにより、自画面からダイアログを開くことができるようになる。
【０１２５】
さらに、ステップＳ１１１１において、コード生成部Ａ１０７は、遷移先のダイアログの次画面パラメータとして、カレントの画面項目情報レコードの次画面パラメータ４０６の情報を、カレントの画面表示プログラムファイルに対して設定するコードを埋め込む。例えば、図１３の７０１，７０３に示すコードを埋め込む。このコードにより、自画面からダイアログへパラメータを渡すこと（及び受け取ること）ができるようになる。本実施例では、７０１と７０３には同じ項目名をセットするので、次画面パラメータとしてダイアログ画面に渡すパラメータ格納項目は、ダイアログ画面から戻ってきたときのパラメータ格納項目にもなる。即ち、ステップＳ１１１０，Ｓ１１１１では、ダイアログタイプの画面への画面遷移を実現させるコードとして、「遷移先画面をダイアログとして呼び出すとともに画面遷移時の次画面パラメータとして指定された遷移元画面上の入力フィールドにセットされた値を遷移先画面に渡す」コードを生成する。そして、ステップＳ１１１７に処理を進め、次の項目に処理を移行させる。
【０１２６】
また、ダイアログ画面から遷移元画面へ戻る処理は、後述するステップＳ１１１３，Ｓ１１１４において、「遷移先画面から戻された値を次画面パラメータとして指定された遷移元画面の入力フィールドにセットする」コードを生成する。このようにして、入力画面からダイアログ画面にパラメータと共に画面遷移し、また、応答用のパラメータを持って入力画面に戻ってくる処理を生成できる。
【０１２７】
なお、図１３は、図１２のステップＳ１１１０，Ｓ１１１１の結果出力されるダイアログへ遷移するボタン部分の処理コードの断片の一例を示す図である。
【０１２８】
一方、ステップＳ１１０９で、次画面が「ダイアログ」でないと判定した場合には、ステップＳ１１１２において、コード生成部Ａ１０７は、カレントの画面情報レコードの画面タイプ３０２に基づいて、自画面が「ダイアログ」であるか否かを判定する。
【０１２９】
ステップＳ１１１２で、自画面が「ダイアログ」であると判定した場合には、ステップＳ１１１３において、コード生成部Ａ１０７は、遷移先がダイアログでなく且つ遷移元がダイアログである場合の処理コード（例えば、図１４の８０３）を、カレントの画面表示プログラムファイルに対して設定する（埋め込む）。これが、ダイアログ画面（元は遷移先、今は遷移元）から入力画面（元は遷移元、今は遷移先）へ戻る処理を含む。このコードにより、自画面（ダイアログ）から通常画面へ遷移させることができるようになる。即ち、ステップＳ１１１３，Ｓ１１１４では、ダイアログから通常の画面への画面遷移を実現させるコードとして、「押下（指示）されたボタンに対応してマトリクス形式で配置された入力フィールド（押下されたボタンと同じ行（又は列）の入力フィールド）のうち次画面パラメータとして指定された入力フィールドの値を、遷移先画面へ渡す」コードを生成する。
【０１３０】
さらに、ステップＳ１１１４において、コード生成部Ａ１０７は、カレントの画面項目情報レコードの次画面パラメータ４０６の情報を、カレントの画面表示プログラムファイルに対して設定するコードを埋め込む。例えば、図１３の８０１，８０２に示すコードを埋め込む。このコードにより、自画面（ダイアログ）から通常画面へパラメータを渡すことができるようになる。そして、ステップＳ１１１７に処理を進め、次の項目に処理を移行させる。
【０１３１】
なお、図１４は、図１２のステップＳ１１１３，Ｓ１１１４の結果出力されるダイアログから元画面へ遷移するボタン部分の処理コードの断片の一例を示す図である。
【０１３２】
一方、ステップＳ１１１２で、自画面が「ダイアログ」でないと判定した場合には、ステップＳ１１１５において、コード生成部Ａ１０７は、遷移先及び遷移元が通常画面である場合の処理コード（不図示）を、カレントの画面表示プログラムファイルに対して設定する（埋め込む）。画面項目情報テーブル４００のレコード４１１の場合（追加ボタン５０９の場合）もこれに相当する。なお、この追加ボタン５０９は「登録ボタン」であるため、このステップで、関連テーブルへの登録処理に対応するコードが埋め込まれる。この処理コードも、予め作成された部品として外部記憶装置Ａ１０４内に格納されているものとする。そして、埋め込んだ処理コードに、カレントの画像情報レコード内の関連テーブル３０３の情報（ここでは「社員テーブル」）を埋め込むものとする。
【０１３３】
さらに、ステップＳ１１１６において、コード生成部Ａ１０７は、カレントの画面項目情報レコードの次画面パラメータ４０６の情報を、カレントの画面表示プログラムファイルに対して設定するコードを埋め込む。そして、次の項目に処理を移行させる。
【０１３４】
そして、コード生成部Ａ１０７は、ステップＳ１１０３で読み込んだ全ての画面項目情報レコードに対してＳ１１０５〜Ｓ１１１６の処理を終了したと判定した場合には、次の画面に処理を移行させる。
【０１３５】
そして、コード生成部Ａ１０７は、ステップＳ１１０１で読み込んだ全ての画面情報レコードに対してＳ１１０３〜Ｓ１１１７の処理を終了したと判定した場合には、ステップＳ１１１８に処理を進め、本フローチャートの処理を終了する。
【０１３６】
以上示したように、本発明では、入力補助としての選択ダイアログを通常画面の定義と同様に自由に設計でき、これらを図５，図６に示したような簡便な指定情報により定義して、プログラムコードを自動生成することができる。
【０１３７】
そして、一覧表形式（マトリクス形式）のようなユーザに見やすい画面を自在に設計できるので、関連項目を一覧表にして、選択ダイアログに適用でき、見やすく、かつ１回の選択で複数項目を一度に選択する簡便さを実現できる。
【０１３８】
例えば、関連しあった階層の入力項目があった場合に、各階層の入力項目数分ダイアログを開いて、入力項目を決定するのではなく、関連が見やすい表などの形態に項目を表示するので、該当する項目グループを発見しやすいダイアログに設計できる。
【０１３９】
さらに、ダイアログから所望のグループが発見できた場合に、該当するグループを１回選択すれば、グループに含まれる項目群から必要な項目のみが入力値として一括セットされる機能を設定できる効果を奏する。即ち、１回の選択で複数項目を一度に選択する簡便さを享受できる。
【０１４０】
このように、アプリケーション開発時における、入力画面と入力補助であるダイアログ画面の生成において、入力項目間の階層関係、関連性のあるデータの表示形式をユーザフレンドリにするプログラムを楽に構築できる効果を奏する。
【０１４１】
そのうえ、ダイアログ表示データは、おしきせのデータではなく、設計者が指定することにより、必要な項目を絞って表示できる。
【０１４２】
また同様に、選択ダイアログの選択項目を外部のデータテーブル等から持ってくる場合、データが大量にある場合は、検索機能をダイアログ画面に適用でき、ほどよいデータ量に絞って表示できる。
【０１４３】
よって、ダイアログ表示データを、設計者が指定した項目に関する部分のみに絞って表示する機能と、表示する関連項目グループが多い場合には、ダイアログ画面に検索機能を付加して、多い項目を絞り込む補完機能を設定できる。
【０１４４】
例えば、既にあるデータをダイアログに使用する場合に、ユーザにとって不用な項目を排除し、必要な項目のみを表示するようにし、一方、表示グループが多い場合には、検索により、有意な選択候補値を同一ダイアログ画面内に絞り込むので、絞り込み一覧化の効果を維持しつつ、多量な表示にも有用さを発揮するダイアログ画面を構築することができる。
【０１４５】
さらに、画面遷移に付随する面倒な定義を必要とせず、画面タイプを指定するといった簡便な定義のみで、ダイアログ形式の画面表示ができるプログラムを自動生成できる。
【０１４６】
このように、プログラム自動生成環境において、ダイアログ本来の役割である入力補助機能として、表形式のようなユーザに見やすい表示形式を自在に設計でき、ダイアログ定義の簡便さを損なわずに、自由なダイアログ設計やダイアログ画面の遷移機能を享受できる。
【０１４７】
上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１４８】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４９】
以下、図１５に示すメモリマップを参照して本発明に係るプログラム生成装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１５０】
図１５は、本発明に係るプログラム生成装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１５１】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１５２】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１５３】
本実施形態における図４，図１０，図１１，図１２に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１５４】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１５５】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１５６】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１５７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５８】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５９】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１６０】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１６１】
なお、上述した実施形態およびその変形例のいずれか又は全てを組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【０１６２】
【図１】本発明に係るアプリケーションプログラム自動生成システムを適用可能なプログラム生成装置の一実施形態を示すブロック図である。
【図２】図１に示したプログラム生成装置のハードウェア構成の一例を示すブロック図である。
【図３】図１に示したコード生成部によって生成されたサーブレットコード、ＪＳＰコード、およびＢｅａｎコードを利用したウェブアプリケーションシステムの全体構成であり、本プログラム生成装置から自動生成されたものの一例を示す模式図である。
【図４】本発明のプログラム生成装置におけるにおける第１の制御処理手順の一例を示すフローチャートである。
【図５】図１に示した入出力テーブル内の情報の一例を示す模式図である。
【図６】図１に示した入出力テーブル内の情報の一例を示す模式図である。
【図７】図５に示した画面情報テーブル，図６に示した画面項目情報テーブルにより定義（指定）され、コード生成部で生成構成される画面の一例を示す模式図である。
【図８】図５に示した画面情報テーブル，図６に示した画面項目情報テーブルにより定義（指定）され、コード生成部で生成構成される画面の一例を示す模式図である。
【図９】図５，図６で定義（指定）されてコード生成部で生成構成されたアプリケーションの各画面におけるパラメータの受け渡し動作を示す模式図である。
【図１０】本発明のプログラム生成装置におけるにおける第２の制御処理手順の一例を示すフローチャートである。
【図１１】本発明のプログラム生成装置におけるにおける第３の制御処理手順の一例を示すフローチャートである。
【図１２】本発明のプログラム生成装置におけるにおける第４の制御処理手順の一例を示すフローチャートである。
【図１３】図１２のステップＳ１１１０，Ｓ１１１１の結果出力されるダイアログへ遷移するボタン部分の処理コードの断片の一例を示す図である。
【図１４】図１２のステップＳ１１１３，Ｓ１１１４の結果出力されるダイアログから元画面へ遷移するボタン部分の処理コードの断片の一例を示す図である。
【図１５】本発明に係るプログラム生成装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０１６３】
Ａ１０１  入力装置
Ａ１０２  表示装置
Ａ１０３  処理装置
Ａ１０４  外部記憶装置
Ａ１０５  画面制御部
Ａ１０７  コード生成部
Ａ１０８  全体制御部
Ａ１０９  入出力テーブル
Ａ１１２  ＪＳＰコード
Ａ１１３  サーブレットコード
Ａ１１４  Ｂｅａｎコード
【図１】
2008052387.tif 000003
【図２】
2008052387.tif 000004
【図３】
2008052387.tif 000005
【図４】
2008052387.tif 000006
【図５】
2008052387.tif 000007
【図６】
2008052387.tif 000008
【図７】
2008052387.tif 000009
【図８】
2008052387.tif 000010
【図９】
2008052387.tif 000011
【図１０】
2008052387.tif 000012
【図１１】
2008052387.tif 000013
【図１２】
2008052387.tif 000014
【図１３】
2008052387.tif 000015
【図１４】
2008052387.tif 000016
【図１５】
2008052387.tif 000017