(57)【要約】【課題】プルダウンリストを桁毎に分割する、分割しないを自動判別し、長い選択リストを作らずに短い選択リストから数値を選択入力できる機能を提供してプルダウンリストから目的の数値を容易に選択入力可能なプログラムを提供すること、また、該プログラムをプルダウンリスト長や画面状況を考慮せず、簡便な定義情報のみで自動生成すること。【解決手段】コード生成部Ａ１０７は、入出力テーブルＡ１０９内で指定されるプルダウンリストに設定する数値の値間隔に基づき、単一のプルダウンリストと桁毎の複数のプルダウンリストの両方の選択数値個数を比較し、該選択数値個数の少ない前記いずれかのプルダウンリストを選択し、該選択された前記単一のプルダウンリスト又は前記桁毎の複数のプルダウンリストによる数値入力機能をコンピュータに実現させるためのプログラム２０７を生成する構成を特徴とする。【選択図】図５
2008052386.tif 000002
【特許請求の範囲】
【請求項１】
プルダウンリストにより数値を選択入力するプログラムを生成するプログラム生成装置において、
指定されるプルダウンリストに設定する数値の値間隔に基づき、単一のプルダウンリストと桁毎の複数のプルダウンリストの両方の選択数値個数を比較し、該選択数値個数の少ない前記いずれかのプルダウンリストを選択する選択手段と、
前記選択手段により選択された前記単一のプルダウンリスト又は前記桁毎の複数のプルダウンリストによる数値入力機能をコンピュータに実現させるためのプログラムを生成する生成手段と、
を有することを特徴とするプログラム生成装置。
【請求項２】
前記生成手段により生成されたプログラムは、
該プログラムがコンピュータにより実行されて、前記単一のプルダウンリスト又は前記桁毎の複数のプルダウンリストが表示されている際に、該プルダウンリストに設定されている数値の値間隔を変更可能な値間隔変更機能をコンピュータに実現させるためのプログラムを含むことを特徴とする請求項１に記載のプログラム生成装置。
【請求項３】
前記値間隔変更機能は、該プルダウンリストに変更設定する数値の値間隔を使用者に指定させ、該指定された値間隔に該プルダウンリストの値間隔を変更する機能であることを特徴とする請求項２に記載のプログラム生成装置。
【請求項４】
前記生成手段により生成されたプログラムは、カレンダにより日付を選択入力を可能にする日付入力機能をコンピュータに実現させるプログラムを含むものであり、
さらに、前記生成手段により生成されたプログラムは、該プログラムが実行され、前記カレンダが表示されている領域のサイズが変更された際に、該変更された表示領域サイズに応じて、前記カレンダの表示月数を変更制御する表示形態変更機能をコンピュータに実現させるプログラムを含むことを特徴とする請求項１乃至３のいずれか１項に記載のプログラム生成装置。
【請求項５】
前記表示形態変更機能は、前記変更された表示領域サイズが、一月分のカレンダを表示可能なサイズより小さい場合には、前記表示領域にカレンダの代わりに日付入力を可能にするプルダウンリストを表示する機能であることを特徴とする請求項４に記載のプログラム生成装置。
【請求項６】
前記生成手段は、指定される、プログラムの生成に供する画面構造を定義した画面情報テーブルと、プログラムの生成に供する画面内の入出力項目を定義した画面項目情報テーブルと、前記画面項目情報テーブルに定義された項目に対して型やプルダウンリストに設定する数値の値間隔を含む条件値を含むプロパティ情報を定義した項目プロパティ情報テーブルの情報を、予めプログラム構造が定めされたプログラムテンプレートに対して組み込むことによりプログラムを生成することを特徴とする請求項１乃至５のいずれか１項に記載のプログラム生成装置。
【請求項７】
カレンダにより日付を選択入力するプログラムを生成する生成手段を有するプログラム生成装置において、
前記生成手段により生成されたプログラムは、該プログラムが実行され、前記カレンダが表示されている領域のサイズが変更された際に、該変更された表示領域サイズに応じて、前記カレンダの表示月数を変更制御する表示形態変更機能をコンピュータに実現させるプログラムを含むことを特徴とするプログラム生成装置。
【請求項８】
前記表示形態変更機能は、前記変更された表示領域サイズが、一月分のカレンダを表示可能なサイズより小さい場合には、前記表示領域にカレンダの代わりに日付入力を可能にするプルダウンリストを表示する機能であることを特徴とする請求項７に記載のプログラム生成装置。
【請求項９】
プルダウンリストにより数値を選択入力する入力手段と、
前記入力手段のプルダウンリストに設定されている数値の値間隔を変更可能な値間隔変更手段と、
を有することを特徴とする入力装置。
【請求項１０】
前記変更手段は、前記入力手段のプルダウンリストに変更設定する数値の値間隔を使用者に指定させ、該指定された値間隔に前記入力手段のプルダウンリストの値間隔を変更することを特徴とする請求項９に記載の入力装置。
【請求項１１】
カレンダにより日付を選択入力する入力手段と、
前記入力手段のカレンダが表示されている領域のサイズが変更された際に、該変更された表示領域サイズに応じて、前記入力手段のカレンダの表示月数を変更制御する表示形態変更手段と、
を有することを特徴とする入力装置。
【請求項１２】
前記表示形態変更手段は、前記変更された表示領域サイズが、一月分のカレンダを表示可能なサイズより小さい場合には、前記表示領域にカレンダの代わりに日付入力を可能にするプルダウンリストを表示することを特徴とする請求項１１に記載の入力装置。
【請求項１３】
プログラムを生成するプログラム生成方法において、
指定されるプルダウンリストに設定する数値の値間隔に基づき、単一のプルダウンリストと桁毎の複数のプルダウンリストの両方の選択数値個数を比較し、該選択数値個数の少ない前記いずれかのプルダウンリストを選択する選択ステップと、
前記選択ステップで選択された前記単一のプルダウンリスト又は前記桁毎の複数のプルダウンリストによる数値入力機能をコンピュータに実現させるためのプログラムを生成する生成ステップと、
を有することを特徴とするプログラム生成方法。
【請求項１４】
カレンダにより日付を選択入力するプログラムを生成する生成ステップを有するプログラム生成方法において、
前記生成ステップにより生成されたプログラムは、該プログラムが実行され、前記カレンダが表示されている領域のサイズが変更された際に、該変更された表示領域サイズに応じて、前記カレンダの表示月数を変更制御する表示形態変更機能をコンピュータに実現させるプログラムを含むことを特徴とするプログラム生成方法。
【請求項１５】
プルダウンリストにより数値を選択入力する入力手段を有する入力装置の制御方法において、
前記入力手段のプルダウンリストに設定されている数値の値間隔を変更可能な値間隔変更ステップを有することを特徴とする入力装置の制御方法。
【請求項１６】
カレンダにより日付を選択入力する入力手段を有する入力装置の制御方法において、
前記入力手段のカレンダが表示されている領域のサイズが変更された際に、該変更された表示領域サイズに応じて、前記入力手段のカレンダの表示月数を変更制御する表示形態変更ステップを有することを特徴とする入力装置の制御方法。
【請求項１７】
請求項１乃至８のいずれかに記載されたプログラム生成装置、請求項９乃至１２のいずれかに記載された入力装置、請求項１３又は１４に記載されたプログラム生成方法、又は、請求項１５又は１６に記載された入力装置の制御方法をコンピュータに実現させるためのプログラム。
【請求項１８】
請求項１乃至８のいずれかに記載されたプログラム生成装置、請求項９乃至１２のいずれかに記載された入力装置、請求項１３又は１４に記載されたプログラム生成方法、又は、請求項１５又は１６に記載された入力装置の制御方法をコンピュータに実現させるためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定情報に基づいてプログラムのソースコードを生成するプログラム生成装置および入力装置およびプログラム生成方法および入力装置の制御方法およびプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
近年、コンピュータ端末などの入力手段として、時刻・日付をプルダウンリストを用いて、選択入力する技術が頻繁に使用されている。
【０００３】
また、カレンダ等を表示することにより、日付等を簡単に入力することも提案されている（特許文献１）。
【特許文献１】特開平８−９５６９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、時刻や日付等を固定のプルダウンリストや固定のカレンダから選択させるものであるため、非常に使い勝手が悪い場合があった。
【０００５】
例えば、分・秒をプルダウンリストから選択する場合に、０〜５９の選択幅が設定されると、非常に長いプルダウンリストになってしまい選択し難くなっていたという問題が起きていた。
【０００６】
また、一度設定されたプルダウンリストの選択形態や方法は、固定型であると、実行時に画面上の様々な条件に従い、変更させる融通性に乏しく、画面幅が少ない場合にスクロール形式にすることが精一杯である。
【０００７】
この固定的な表示形態は、特に月別日付一覧表示のカレンダには、非常に見難い場合が考えられる。
【０００８】
例えば、ある月分の日付をカレンダから日を選択するとき、画面幅が少なく全体が表示できない場合には、カレンダをスクロールして該当の日を探すという操作が想定される。
【０００９】
また、画面幅を大きく複数月分等のより多くの情報を表示できるにもかかわらず１ヶ月分しか表示されていない場合があるといった不自由さ、操作性、画面幅の変化への融通性に問題が生じていた。
【００１０】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、アプリケーションプログラムの開発者には、プルダウンリストを桁毎に分割する、分割しないを自動判別し、長い選択リストを作らずに短い選択リストから数値を選択入力できる機能を提供してプルダウンリストから目的の数値を容易に選択入力可能なプログラムを、プルダウンリスト長や画面状況を考慮せず、簡便な定義情報のみで生成することができる仕組を提供し、また、アプリケーションプログラムの使用者には、プルダウンリストを桁毎に分割する、分割しないが自動判別され、短い選択リストから目的の数値を容易に選択する仕組を提供することである。
【課題を解決するための手段】
【００１１】
本発明は、プルダウンリストにより数値を選択入力するプログラムを生成するプログラム生成装置において、指定されるプルダウンリストに設定する数値の値間隔に基づき、単一のプルダウンリストと桁毎の複数のプルダウンリストの両方の選択数値個数を比較し、該選択数値個数の少ない前記いずれかのプルダウンリストを選択する選択手段と、前記選択手段により選択された前記単一のプルダウンリスト又は前記桁毎の複数のプルダウンリストによる数値入力機能をコンピュータに実現させるためのプログラムを生成する生成手段と、を有することを特徴とする。
【００１２】
また、本発明は、プルダウンリストにより数値を選択入力する入力手段と、
前記入力手段のプルダウンリストに設定されている数値の値間隔を変更可能な値間隔変更手段と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、アプリケーションプログラムの開発者は、プルダウンリストを桁毎に分割する、分割しないを自動判別し、長い選択リストを作らずに短い選択リストから数値を選択入力できる機能を提供してプルダウンリストから目的の数値を容易に選択入力可能なプログラムを、プルダウンリスト長や画面状況を考慮せず、簡便な定義情報のみで生成することができる。
【００１４】
また、実行時の操作状況に応じて、プルダウンリストの選択値の間隔を動的に変更でき、選択操作性を向上可能なプルダウンリストを再設定可能なプログラムを容易に生成することができる。
【００１５】
さらに、画面表示幅により表示形態を動的に変化させる機能を提供して選択に必要な情報をできるだけ多く画面に表示させる変更でき、日付の選択入力の操作性を向上可能なプログラムを容易に生成することができる等の効果を奏する。
【００１６】
また、アプリケーションプログラムの使用者は、プルダウンリストを桁毎に分割する、分割しないが自動判別され、短い選択リストから目的の数値を容易に選択することができる。
【００１７】
さらに、実行時の操作状況に応じて、プルダウンリストの選択値の間隔を動的に変更でき、操作し易いプルダウンリストに再設定できる。
【００１８】
また、画面表示幅により表示形態を動的に変化させて、選択に必要な情報をできるだけ多く画面に表示させて、選択の操作性を向上させることができる等の効果を奏する。
【発明を実施するための最良の形態】
【００１９】
本発明は、プログラム生成の効率化、開発物の管理のし易さを目的として構築されたアプリケーションプログラム自動生成システムにおいて、特にカレンダ機能に関する自動生成の仕組を提供するものである。
【００２０】
まず、このアプリケーションプログラム自動生成システムの全体を、図１〜図４を参照して説明し、次いで、本発明に関わる部分を取り上げ、説明していく。
【００２１】
図１は、本発明のプログラム生成装置の一例を示すブロック図である。
【００２２】
図１において、Ａ１０１は入力装置であり、キーボードやマウス等のポインティングデバイス等に相当する。この入力装置Ａ１０１は、業務仕様情報（生成する画面の定義（後述する図６に示す画面情報テーブル２０２），各画面の項目の定義（後述する図７に示す画面項目情報テーブル２０３），項目のプロパティ定義（後述する図８に示す項目プロパティ情報テーブル２０４），データ項目のデータベースへの配置とデータ項目間の関係、即ちあるデータがどのような条件のもとにどのようなデータから求められるかを示す情報（不図示）等）や、物理仕様情報（表示画面のプログラムコードを生成する際に用いる配置，色，表示の有無，サイズ等の条件情報等）の入力の選択等を行うためのものである。
【００２３】
Ａ１０２は表示装置で、ＣＲＴ，ＬＣＤ等で構成される。この表示装置Ａ１０２は、業務仕様情報，物理仕様情報の入力画面や、該入力画面から入力された業務仕様情報や物理仕様情報、生成されたプログラムコード等を表示可能である。
【００２４】
Ａ１０４はハードディスク等の外部記憶装置である。この外部記憶装置Ａ１０４は、入力装置Ａ１０１から入力された業務仕様を記憶するための入出力テーブルＡ１０９や入力された物理仕様を記憶するための物理仕様テーブルＡ１１０、生成されたプログラムコード（ＪＳＰコード１１２，サーブレット（Ｓｅｒｖｌｅｔ）コード１１３，Ｂｅａｎコード１１４）等を記憶するものである。
【００２５】
Ａ１０３は処理装置で、図２に示すＣＰＵ１０１，ＲＯＭ１０３，ＲＡＭ１０２等から構成される。
【００２６】
図２は、図１に示したプログラム生成装置のハードウェア構成の一例を示すブロック図であり、図１と同一のものには同一の符号を付してある。
【００２７】
図２に示すように、図１に示したプログラム生成装置は、パーソナルコンピュータ等で実現可能である。
【００２８】
ＣＰＵ１０１は、ＲＯＭ１０３或いは外部記憶装置Ａ１０４に記憶されている制御プログラムに基づいて、システムバスに接続されている各種デバイスとのアクセスを総括的に制御する構成となっている。
【００２９】
システムバスには、ＣＰＵ１０１の主メモリ、ワークエリア等として機能するＲＡＭ１０２が接続されている。ＲＯＭ２０３或いは外部記憶装置Ａ１０４には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Basic Input ／ Output System）やオペレーティングシステム（以下、「ＯＳ」という。）プログラム、コンピュータＡ１０３が実行する処理を実現するために必要な各種プログラム等が記憶されている。
【００３０】
ＣＰＵ１０１は、処理の実行に際して必要な各種プログラム等をＲＡＭ１０２にロードして、当該プログラム等を実行することで図１に示した全体制御部Ａ１０８の機能及び各種動作を実現するものである。
【００３１】
外部記憶装置Ａ１０４は、上述した各種プログラムとして、図示しないブートプログラム、各種アプリケーションプログラム、フォントデータ、ユーザーファイル等を記憶する。
【００３２】
ＣＰＵ１０１は、例えば、ＲＡＭ１０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、表示装置Ａ１０２上でＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１０１は、表示装置Ａ１０２上のマウスカーソル(不図示)等で指示されたコマンドに基づいて、登録された種々なウィンドウを開き、種々のデータ処理を実行する。
【００３３】
以下、図１の説明に戻る。
【００３４】
処理装置Ａ１０３のＣＰＵ１０１は、ＲＯＭ１０３，外部記憶装置Ａ１０４又はその他の記録媒体に格納されるプログラムをＲＡＭ１０２上にロードして実行することにより、画面制御部Ａ１０５，仕様解析部Ａ１０６，コード生成部Ａ１０７，全体制御部Ａ１０８の機能を実現する。
【００３５】
画面制御部Ａ１０５は、入力装置Ａ１０１から業務仕様情報を入力するために表示装置Ａ１０２の画面を制御する業務仕様記述部Ａ１１６と、入力装置Ａ１０１から物理仕様情報を入力するために表示装置Ａ１０２の画面を制御する物理仕様記述部Ａ１１７から構成される。
【００３６】
仕様解析部Ａ１０６は、入力装置Ａ１０１から入力された又は外部記憶装置Ａ１０４から読み出された業務仕様情報，物理仕様情報に対して字句解析や文法解析を行う。
【００３７】
コード生成部Ａ１０７は、仕様解析部Ａ１０６により仕様解析された業務仕様情報，物理仕様情報に基づいてプログラムコード（ＪＳＰコードＡ１１２，サーブレット（Ｓｅｒｖｌｅｔ）コードＡ１１３，ＢｅａｎコードＡ１１４）を生成し、外部記憶装置Ａ１０４に記憶させる。
【００３８】
なお、コード生成部Ａ１０７は、外部記憶装置Ａ１０４から読み出された業務仕様情報（入出力テーブルＡ１０９）に基づいて外部記憶装置Ａ１０４上にデータベース（ＤＢ）Ａ１１５を構築するように構成してもよい。
【００３９】
全体制御部Ａ１０８は、画面制御部Ａ１０５，仕様解析部Ａ１０６，コード生成部Ａ１０７等の各部の制御を行う。
【００４０】
図３は、図１に示したコード生成部Ａ１０７によって生成されたサーブレットコードＡ１１３、ＪＳＰコードＡ１１２、およびＢｅａｎコードＡ１１４を利用したウェブアプリケーションシステムの全体構成であり、本プログラム生成装置から自動生成されたものの一例を示す模式図である。
【００４１】
コード生成部Ａ１０７によって生成されたサーブレットコードＡ１１３、ＪＳＰコードＡ１１２、およびＢｅａｎコードＡ１１４は、図３に示すように、それぞれ実行可能な状態のサーブレットＡ２０７、ＪＳＰ（Ａ２０９）、およびＢｅａｎ（Ａ２０８）として、サーバＡ２０４側のアプリケーションサーバＡ２０６上に配置される。
【００４２】
このＷｅｂアプリケーションシステムは、クライアントＡ２０１からウェブブラウザＡ２０２によって利用される。ウェブブラウザＡ２０２からＪＳＰ（Ａ２０９）にアクセスすることにより、ＨＴＭＬページを生成し、クライアントＡ２０１側に返送する。そして、ウェブブラウザＡ２０２上には、ＪＳＰ（Ａ２０９）から送信されるＨＴＭＬページＡ２０３が表示される。
【００４３】
また、ＷｅｂブラウザＡ２０２からのリクエストは、ＨＴＴＰ経由でサーバＡ２０４側に送信される。サーバＡ２０４にはＨＴＴＰサーバＡ２０５とアプリケーションサーバＡ２０６があり、アプリケーションサーバＡ２０６にはサーブレットやＪＳＰの実行環境が含まれている。
【００４４】
サーバＡ２０４側にリクエストが送信されると、リクエストに応じて該当するサーブレットＡ２０７が起動される。サーブレットＡ２０７は、対応するＢｅａｎ（Ａ２０８）に処理を要求する。さらに、Ｂｅａｎ（Ａ２０８）はＤＢアクセスオブジェクトＡ２１０を利用してデータベースＡ２１１にアクセスし、業務に関する処理やデータ加工などを行い、その処理結果を保持する。ＤＢアクセスオブジェクトＡ２１０は、業務を分析、設計した結果、作成されるクラスや、再利用可能な既存のクラスである。
【００４５】
次に、サーブレットＡ２０７からＪＳＰ（Ａ２０９）にＢｅａｎ（Ａ２０８）を渡し、ＪＳＰ（Ａ２０９）を呼び出す。ＪＳＰ（Ａ２０９）は、Ｂｅａｎ（Ａ２０８）で保持する処理結果を参照して、ＨＴＭＬページを生成し、クライアントＡ２０１側に返送する。クライアントＡ２０１側に返送されたＨＴＭＬページは、ＷｅｂブラウザＡ２０２上に表示される。
【００４６】
サーブレットＡ２０７は、ＷｅｂブラウザＡ２０２からのリクエストの受け付け、Ｂｅａｎ（Ａ２０８）への処理要求、およびＪＳＰ（Ａ２０９）の呼び出しという、それぞれの間をつなぎ、制御する役割を持つ。ＪＳＰ（Ａ２０９）はＨＴＭＬページを出力するための表示に関することを受け持ち、Ｂｅａｎ（Ａ２０８）はデータベースＡ２１１へのアクセス等の業務に関する処理を受け持つ。Ｂｅａｎ（Ａ２０８）やＪＳＰ（Ａ２０９）を利用せず、サーブレットＡ２０７のみでＷｅｂブラウザＡ２０２からのリクエストを処理することは可能であるが、Ｂｅａｎ（Ａ２０８）やＪＳＰ（Ａ２０９）を利用することでそれぞれの役割を明確に分離することで、機能分担を簡潔に把握することができる。なお、本実施形態では、コード生成部Ａ１０７が生成するコードとして、ＪＳＰコード，Ｓｅｒｖｌｅｔコード，Ｂｅａｎコードを例として挙げている。しかし、コード生成部Ａ１０７が生成するコードは、ＪＳＰコード，Ｓｅｒｖｌｅｔコード，Ｂｅａｎコードに限られるものではなく、どのようなプログラム言語のどのようなプログラムコードであってもよい。
【００４７】
以下、図４を参照して、本発明のプログラム生成装置における処理について説明する。
【００４８】
図４は、本発明のプログラム生成装置におけるにおける第１の制御処理手順の一例を示すフローチャートであり、図１に示した処理装置Ａ１０３の全体制御部Ａ１０８の動作に対応する。即ち、このフローチャートは図２に示したＣＰＵ１０１が外部記憶装置Ａ１０４等に記憶されているプログラムをＲＡＭ１０２上で実行することにより実現される。なお、Ｓ１０１〜Ｓ１０７は各ステップを示す。
【００４９】
図１に示した処理装置Ａ１０３は、コード生成する業務仕様（入出力テーブルＡ１０９）や物理仕様テーブルＡ１１０の入力を行う入力モードと、入力された業務仕様（入出力テーブルＡ１０９）や物理仕様テーブルＡ１１０からプログラムコードを生成する生成モードとを有する。
【００５０】
まず、全体制御部Ａ１０８が起動されると、ステップＳ１０１において、全体制御部Ａ１０８は、入力装置Ａ１０１からオペレータの指示により選択されたモードが生成モードか入力モードかを判定する。そして、入力モードが選択されたと判定した場合には、全体制御部Ａ１０８は、ステップＳ１０２に処理を進め、画面制御部Ａ１０５を起動する。
【００５１】
起動された画面制御部Ａ１０５は、ステップＳ１０３において、業務仕様記述部Ａ１１６により業務仕様入力画面を表示させ、オペレータから、生成するウェブアプリケーションのアプリケーション名や業務仕様の一形態である入出力テーブルへの項目入力を受け付け、該入出力テーブルを外部記憶装置Ａ１０４に格納する（図１に示した入出力テーブルＡ１０９）。なお、入出力テーブルＡ１０９については図５〜図８を用いて後述する。
【００５２】
次に、画面制御部Ａ１０５は、ステップＳ１０４において、物理仕様記述部Ａ１１７を起動させる。起動された物理仕様記述部Ａ１１７は物理仕様入力画面を表示させ、オペレータから、物理仕様の一形態である物理仕様テーブルへの入力と業務パターンの選択を受け付け、この物理仕様テーブルと業務パターンの選択情報を外部記憶装置Ａ１０４にそれぞれ格納する（図１に示した物理仕様テーブルＡ１１０）。そして、処理を終了する。
【００５３】
一方、ステップＳ１０１において、入力装置Ａ１０１からオペレータの指示により選択されたモードが生成モードであると判定した場合には、全体制御部Ａ１０８は、ステップＳ１０５に処理を進める。
【００５４】
ステップＳ１０５では、全体制御部Ａ１０８は、外部記憶装置Ａ１０４に格納された入出力テーブルＡ１０９と物理仕様テーブルＡ１１０を読み出すとともに、仕様解析部Ａ１０６を起動させて、読み出した入出力テーブルＡ１０９と物理仕様テーブルＡ１１０の字句解析，文法解析を行う。
【００５５】
次に、ステップＳ１０６において、全体制御部Ａ１０８は、コード生成部Ａ１０７を起動させて、仕様解析部Ａ１０６で字句解析，文法解析が行われた入出力テーブルＡ１０９と物理仕様テーブルＡ１１０に基づいてコード生成処理及びデータベースの構築を行う。なお、コード生成処理の詳細については図９以降を用いて後述する。
【００５６】
そして、ステップＳ１０７において、全体制御部Ａ１０８は、生成されたコードを、オペレータの指示により表示装置Ａ１０２に表示し、かつ外部記憶装置Ａ１０４に書き込む出力処理を行う。
【００５７】
以下、図５〜図８を参照して、アプリケーションプログラムの自動生成システムから本発明を実施するにおいて、必要となるリソースを抽出して説明する。
【００５８】
図５は、カレンダを含むアプリケーション生成を行う部分の構成を示すブロック図であり、図１と同一のものには同一の符号を付してある。
【００５９】
図５に示すように、コード生成部Ａ１０７は、入出力テーブルＡ１０９に格納された画面情報テーブル２０２と画面項目情報テーブル２０３に基づき、画面と画面項目に関する情報を取得し、項目プロパティ情報テーブル２０４に基づき、日付に関する項目とプログラム部品をプログラムテンプレート２０５のファイルに当てはめる形で、プログラム２０７を自動生成する。なお、このプログラム２０７は、図１に示したＡ１１２〜〜Ａ１１４のいずれか又は全てを含む。
【００６０】
図６は、図５に示した画面情報テーブル２０２の一例を示す模式図である。
【００６１】
図６に示すように、画面情報テーブル２０２は、画面に関する定義情報（画面名３０１、画面タイプ３０２、表示条件３０３等）により構成されている。
【００６２】
なお、画面名３０１は、生成する画面名である。また、画面タイプ３０２は、生成する画面の特徴（通常、ダイアログ等）を定義するものである。さらに、表示条件３０３は、表示形式のタイプや表示項目の絞込み指定等を定義するものである。
【００６３】
図７は、図５に示した画面項目情報テーブル２０３の一例を示す模式図である。
【００６４】
図７に示すように、画面項目情報テーブル２０３は、画面項目に関する定義情報（画面名４０１、項目名４０２、項目タイプ４０３、項目データタイプ４０４等）により構成されている。
【００６５】
なお、画面名４０１は、表示対象の画面名を定義したものである。項目名４０２は、画面名４０１に示す画面上に表示される又は入出力が行われる項目についての項目定義名でありかつ、その定義した項目名が画面に表示される。項目タイプ４０３は、項目名４０２の入出力タイプ（入力項目、ボタン項目等）を定義する。項目データタイプ４０４は、該項目の入力時又は表示時のデータの型を定義する（図６では、文字列なのか時刻なのかを例示してある）。
【００６６】
図８は、図５に示した項目プロパティ情報テーブル２０４の一例を示す模式図である。
【００６７】
図８に示すように、項目プロパティ情報テーブル２０４は、図７に示した画面項目情報テーブル２０３で定義された項目に対してのプロパティ情報が定義される。
【００６８】
画面名５０１、項目名５０２の定義機能は、図７に示した画面項目情報テーブル２０３で定義された項目と名称で関連付けされている。項目プロパティ５０３は、項目の型や時刻の場合はその性質（「分間隔」，「秒間隔」等）を定義し、プロパティ値５０４は、設定したい条件値（「分間隔」，「秒間隔」の設定における間隔値等（例えば「１５」，「１０」等））を定義する。
【００６９】
以下、図９を参照して、図１に示したコード生成部Ａ１０７におけるコード生成処理について説明する。
【００７０】
図９は、本発明のプログラム生成装置におけるにおける第２の制御処理手順の一例を示すフローチャートであり、図１に示した処理装置Ａ１０３のコード生成部Ａ１０７のコード生成処理における本発明に関わる部分の処理に対応する。即ち、このフローチャートは図２に示したＣＰＵ１０１が外部記憶装置Ａ１０４等に記憶されているプログラムをＲＡＭ１０２上で実行することにより実現される。なお、Ｓ１３０１〜Ｓ１３０３は各ステップを示す。
【００７１】
まず、ステップＳ１３０１において、コード生成部Ａ１０７のＣＰＵ１０１は、入力装置Ａ１０１よりユーザから生成要求を受け付け、入力装置Ａ１０１から生成要求が入力されると、ステップＳ１３０２に処理を進める。
【００７２】
次に、ステップＳ１３０２において、コード生成部Ａ１０７のＣＰＵ１０１は、外部記憶装置Ａ１０４の入出力テーブルＡ１０９から画面情報テーブル２０２を読み込み、その情報から画面生成処理を行う。なお、この画面生成処理の詳細は図１０に示す。
【００７３】
まず、ステップＳ１３０３において、コード生成部Ａ１０７のＣＰＵ１０１は、外部記憶装置Ａ１０４の入出力テーブルＡ１０９から画面情報テーブル２０２，画面項目情報テーブル２０３，項目プロパティ定義情報２０４を読み込み、その情報から画面項目生成処理を行う。なお、この画面項目生成処理の詳細は図１１に示す。
【００７４】
図１０は、本発明のプログラム生成装置におけるにおける第３の制御処理手順の一例を示すフローチャートであり、図９のステップＳ１３０２に示した画面生成処理に対応する。即ち、このフローチャートは図２に示したＣＰＵ１０１が外部記憶装置Ａ１０４等に記憶されているプログラムをＲＡＭ１０２上で実行することにより実現される。なお、Ｓ１４０１〜Ｓ１４０７は各ステップを示す。
【００７５】
まず、ステップＳ１４０１において、コード生成部Ａ１０７のＣＰＵ１０１は、外部記憶装置Ａ１０４の入出力テーブルＡ１０９から画面情報テーブル２０２のレコードを全件読み込み、Ｓ１４０２〜Ｓ１４０７に示すように、全ての画面情報レコードに対して、Ｓ１４０３〜Ｓ１４０６の処理を行う。
【００７６】
まず、ステップＳ１４０３において、コード生成部Ａ１０７のＣＰＵ１０１は、画面情報テーブル２０２のカレントレコードの画面タイプ３０２に対応する画面表示用のプログラムファイル（以下、プログラムファイル）を外部記憶装置Ａ１０４内に作成する。即ち、このプログラムファイルは、画面毎に作成される。なお、このプログラムファイルは、予めプログラム構造が定めされ外部記憶装置Ａ１０４に格納されているプログラムテンプレート２０５（図５）の複製を作成することにより作成される。即ち、この時点でこのプログラムファイルはまだ雛型となっており、以降Ｓ１４０４〜Ｓ１４０６で画面固有の情報を埋め込む処理を行う。
【００７７】
ステップＳ１４０４において、コード生成部Ａ１０７のＣＰＵ１０１は、Ｓ１４０３で作成したプログラムファイルに、画面情報テーブル２０２のカレントレコードの画面名３０１を設定するコードを埋め込む。この結果、例えば後述する図１２の１９０１に示すように画面名が設定される。
【００７８】
次にステップＳ１４０５において、コード生成部Ａ１０７のＣＰＵ１０１は、同様にＳ１４０３で作成したプログラムファイルに、画面情報テーブル２０２のカレントレコードの画面タイプ３０２を設定するコードを埋め込む。
【００７９】
次にステップＳ１４０６において、コード生成部Ａ１０７は、Ｓ１４０３で作成したプログラムファイルに、画面情報テーブル２０２のカレントレコードの表示条件３０３を設定するコードを埋め込む。そして、次の画面情報レコードに処理を移行させる。
【００８０】
そして、コード生成部Ａ１０７のＣＰＵ１０１は、Ｓ１４０１で読み込んだ全ての画面情報レコードに対してＳ１４０３〜Ｓ１４０６の処理を終了したと判定した場合には、本フローチャートの処理を終了する。
【００８１】
図１１は、本発明のプログラム生成装置におけるにおける第４の制御処理手順の一例を示すフローチャートであり、図９のステップＳ１３０３に示した画面項目生成処理に対応する。即ち、このフローチャートは図２に示したＣＰＵ１０１が外部記憶装置Ａ１０４等に記憶されているプログラムをＲＡＭ１０２上で実行することにより実現される。なお、Ｓ１５０１〜Ｓ１５１２は各ステップを示す。
【００８２】
まず、ステップＳ１５０１において、コード生成部Ａ１０７のＣＰＵ１０１は、外部記憶装置Ａ１０４の入出力テーブルＡ１０９から画面情報テーブル２０２のレコードを全件読み込み、Ｓ１５０２〜Ｓ１５１２に示すように、全ての画面情報レコードに対して、Ｓ１５０３〜Ｓ１５１１の処理を行う。
【００８３】
まず、ステップＳ１５０３において、コード生成部Ａ１０７は、外部記憶装置Ａ１０４から画面項目情報テーブル２０３のレコードを全件読み込み、Ｓ１５０４〜Ｓ１５１１に示すように、全ての画面項目情報レコードに対して、Ｓ１５０５〜Ｓ１５１０の処理を行う。
【００８４】
まず、ステップＳ１５０５において、コード生成部Ａ１０７のＣＰＵ１０１は、図１１のステップＳ１４０１で生成されたカレントの画面情報レコードに対応するプログラムファイル（以下、カレントのプログラムファイル）に対して、カレントの画面項目情報レコードの項目名４０２を設定するコードを埋め込む。
【００８５】
次に、ステップＳ１５０６において、コード生成部Ａ１０７のＣＰＵ１０１は、項目プロパティ定義情報２０４を参照して、カレントの画面項目情報レコードの項目について、プロパティ情報があるか否かを判定する。
【００８６】
そして、ステップＳ１５０６で、カレントの項目にプロパティ情報があると判定した場合には、コード生成部Ａ１０７のＣＰＵ１０１は、ステップＳ１５０７に処理を進める。
【００８７】
そして、ステップＳ１５０７において、コード生成部Ａ１０７のＣＰＵ１０１は、当該カレントの項目に関して定義されたプロパティ情報（項目プロパティ５０３，プロパティ値５０４）を、項目プロパティ定義情報２０４から読み出して、プロパティ値やその仕組を設定する。なお、ここで、カレントの項目のプロパティ情報内のプロパティ値５０４が「カレンダ」の場合は、コード生成部Ａ１０７のＣＰＵ１０１は、ＲＡＭ１０２内に、該当項目に対してカレンダをダイアログボックスのようなポップアップ画面として生成し、選択する間隔値を設定する（カレンダ生成処理）。なお、このカレンダ生成処理の詳細は後述する図１３に示す。そして、ステップＳ１５０８に処理を進める。
【００８８】
一方、ステップＳ１５０６で、カレントの項目にプロパティ情報がないと判定した場合には、コード生成部Ａ１０７のＣＰＵ１０１は、そのままステップＳ１５０８に処理を進める。
【００８９】
次に、ステップＳ１５０８において、コード生成部Ａ１０７のＣＰＵ１０１は、カレントの画面項目情報レコードの項目タイプ４０３を参照して、カレントの項目が「ボタン」であるか否かを判定する。
【００９０】
そして、ステップＳ１５０８で、カレントの項目が「ボタン」であると判定した場合には、コード生成部Ａ１０７のＣＰＵ１０１は、ステップＳ１５０９において、カレントのプログラムファイルに対してボタンを配置するコードを埋め込む。この結果、例えば後述する図１２の１９０７に示すようにボタンが配置される。
【００９１】
一方、ステップＳ１５０８で、カレントの項目が「ボタン」でないと判定した場合には、コード生成部Ａ１０７のＣＰＵ１０１は、ステップＳ１５１０において、カレントのプログラムファイルに対して入力フィールドを配置するコードを埋め込む。この結果、例えば後述する図１２の１９０２〜１９０４に示すように入力フィールドが配置される。なお、この際、カレントの項目のプロパティ情報内のプロパティ値５０４が「カレンダ」の場合は、コード生成部Ａ１０７のＣＰＵ１０１は、ステップＳ１５０７で生成したカレンダを表示させるためのカレンダボタン（後述する図１２の）を、カレントのプログラムファイルに対して配置するコードを埋め込むものとする。この結果、例えば後述する図１２の１９０５，１９０６に示すように「カレンダボタン」が配置される。また、ここでは、「カレンダボタン」が押下指示された際にポップアップ画面としてのカレンダを表示する処理を示すコードと該ポップアップ画面（カレンダ）で選択入力された値を対応する入力フィールドに設定するコードもカレントのプログラムファイルに対して埋め込むものとする。そして、ステップＳ１５１１に処理を進める。
【００９２】
さらに、ステップＳ１５１１において、コード生成部Ａ１０７のＣＰＵ１０１は、次の項目に処理を移行させる。
【００９３】
そして、コード生成部Ａ１０７は、ステップＳ１５０３で読み込んだ全ての画面項目情報レコードに対してＳ１５０５〜Ｓ１５１０の処理を終了したと判定した場合には、次の画面に処理を移行させる。
【００９４】
そして、コード生成部Ａ１０７は、ステップＳ１５０１で読み込んだ全ての画面情報レコードに対してＳ１５０３〜Ｓ１５１１の処理を終了したと判定した場合には、本フローチャートの処理を終了する。
【００９５】
なお、図１１のフローチャートでは、カレンダをダイアログボックスとして生成する構成について説明したが、画面情報テーブル２０２で定義された画面上に、画面項目情報テーブル２０３で定義された項目として直接配置するコードを生成するように構成してもよい。
【００９６】
図１２は、図１０，図１１に示した処理により生成されるプログラムコードを実行することにより表示される画面の一例を示す模式図である。
【００９７】
図１３は、本発明のプログラム生成装置におけるにおける第５の制御処理手順の一例を示すフローチャートであり、上述のカレンダ生成処理（特に、プルダウンリスト付きカレンダ生成処理）に対応する。なお、このフローチャートは図２に示したＣＰＵ１０１が外部記憶装置Ａ１０４等に記憶されているプログラムをＲＡＭ１０２上で実行することにより実現される。なお、Ｓ６０１〜Ｓ６１０は各ステップを示す。
【００９８】
まず、ステップＳ６０１において、コード生成部Ａ１０７のＣＰＵ１０１は、対象となる項目に関するプロパティ情報（項目プロパティ５０３，プロパティ値５０４）を、項目プロパティ定義情報２０４からＲＡＭ１０２に読み出して、間隔の指定があるか否かを判定する。例えば、図８に示した画面名「業務Ａ」の項目名「出勤時間」の場合には、項目プロパティ５０３，プロパティ値５０４に「分間隔」が「１５」、「秒間隔」が「１０」と定義されているため、間隔指定があると判定する。
【００９９】
そして、ステップＳ６０１で、対象となる項目に間隔の指定がないと判定した場合には、ステップＳ６０２において、コード生成部Ａ１０７のＣＰＵ１０１は、間隔を「１」に設定し（ＲＡＭ１０２に記憶し）、ステップＳ６０３に処理を進める。
【０１００】
一方、ステップＳ６０１で、対象となる項目に間隔の指定があると判定した場合には、不図示のステップにおいて、間隔を指定された間隔に設定し（ＲＡＭ１０２に記憶し）、ステップＳ６０３に処理を進める。
【０１０１】
次に、ステップＳ６０３において、コード生成部Ａ１０７のＣＰＵ１０１は、指定された間隔に従ってプルダウンの個数がいくつになるか計算し、ＲＡＭ１０２に格納する。
【０１０２】
また、ステップＳ６０４において、コード生成部Ａ１０７のＣＰＵ１０１は、ステップＳ６０３で計算したプルダウンを十の位と一の位に分割した時のそれぞれの個数を計算し、ＲＡＭ１０２に格納する。
【０１０３】
次にステップ６０５において、ＣＰＵは、ステップＳ６０４で計算した分割した十の位の個数と一の位の個数とを比較し個数の多い方を選択する。
【０１０４】
次に、ステップＳ６０６において、ステップＳ６０５で選択した個数の多い方とステップＳ６０３で計算した個数（１つの時の数）とを比較する。
【０１０５】
このステップＳ６０６の比較結果、ステップＳ６０５で選択した個数の多い方がステップＳ６０３で計算した１つの時の数より多いと判定した場合には、コード生成部Ａ１０７のＣＰＵ１０１は、ステップＳ６０７，Ｓ６０８に処理を進める。
【０１０６】
ステップＳ６０７，Ｓ６０８では、コード生成部Ａ１０７のＣＰＵ１０１は、十の位と一の位を分けたプルダウンリスト（例えば、後述する図１４の９０１，９０２）をＲＡＭ１０２上に生成する。即ち、十の位のプルダウンリストと一の位のプルダウンリストをそれぞれ生成する。そして、ステップＳ６１０に処理を進める。
【０１０７】
一方、ステップＳ６０６の比較結果、ステップＳ６０５で選択した個数の多い方がステップＳ６０３で計算した１つの時の数より多くない（等しい又は少ない）と判定した場合には、コード生成部Ａ１０７のＣＰＵ１０１は、ステップＳ６０９に処理を進める。
【０１０８】
この場合、十の位と一の位に分けてしまうと操作性が落ちるので、ステップＳ６０９では、コード生成部Ａ１０７のＣＰＵ１０１は、十の位と一の位が結合された単一のプルダウンリスト（例えば、後述する図１５の１００１，１００２）をＲＡＭ１０２上に生成し、ステップＳ６１０に処理を進める。
【０１０９】
そして、ステップＳ６１０では、コード生成部Ａ１０７のＣＰＵ１０１は、カレンダ（後述する図１４，図１５に示す９００）をＲＡＭ１０２上に生成し、該生成したカレンダ上にステップＳ６０７〜Ｓ６０９で生成されたプルダウンリストを配置し、処理を終了する。
【０１１０】
なお、ステップＳ６１０では、予め生成されて外部記憶装置Ａ１０４内に格納されるプログラムテンプレートを用いてカレンダ生成する（本実施形態ではダイアログボックスとして生成する）。なお、このプログラムテンプレートには、図１４，図１５に示すようなカレンダ９００の雛形と該カレンダ上に配置されるボタンが押下された際に実行される処理を実現する処理コード等が予め埋め込まれているものとする（詳細は後述する図１６に示す）。
【０１１１】
また、このプログラムテンプレートには、カレンダ９００の画面サイズ変更時にカレンダ９００の表示形態を変更する処理に対応する処理コードも予め埋め込まれているものとする（詳細は後述する図１７に示す）。
【０１１２】
以下、図１４，図１５を参照して、図１３に示したカレンダ生成処理により生成されるカレンダについて説明する。
【０１１３】
図１４は、プルダウンリストが十の位と一の位に分割された場合のカレンダの一例を示す模式図である。このカレンダは、図１３のカレンダ生成処理においてプルダウンリストの分割が適切と判定された場合（Ｓ６０６で「はい」の場合）に生成されるカレンダに対応する。
【０１１４】
例えば、「分」・「秒」ともに値の間隔として「１」が指定され、１つのプルダウンリストが形成されると、「分」・「秒」のプルダウンリストに「０」から「５９」の値が並び、選択の操作性が悪くなってしまう。
【０１１５】
そこで、本発明では、操作性の落ちる長いプルダウンリストを避け、「分」・「秒」共に１０の位、１の位に分割したプルダウンリスト９０１，９０２を持つカレンダを生成する。
【０１１６】
また、本発明では、実行時に間隔を再設定できるように、カレンダ９００上に間隔指定フィールド９０３と変更ボタン９０４を備え、この変更ボタン９０４が指示されることにより、プルダウンリストの間隔を再設定することが出来る構成となっている。なお、このプルダウンリストの間隔を再設定する処理の詳細は後述する図１６に示す。
【０１１７】
また、９０５は１ヶ月分の日付表示のカレンダ部分を示す。
【０１１８】
図１５は、プルダウンリストが単一の場合のカレンダの一例を示す模式図であり、図１３と同一のものには同一の符号を付してある。このカレンダは、図１３のカレンダ生成処理においてプルダウンリストを分割せず単一で生成することが適切と判定された場合（Ｓ６０６で「いいえ」の場合）に生成されるカレンダに対応する。
【０１１９】
例えば、「分」の間隔が「１５」、「秒」の間隔が「１０」の場合、もし十の位と一の位に分割されてしまうと、「分」が十の位に｛０，１，３，４｝、一の位に｛０，５｝、「秒」が十の位に｛０，１，２，３，４，５｝、一の位に｛０｝のプルダウンリストが形成されてしまう。
【０１２０】
一方、分割しない場合、図１５の１００１，１００２に示すように、「分」が｛０，１５，３０，４５｝、「秒」が｛０，１０，２０，３０，４０，５０｝のプルダウンリストが形成される。
【０１２１】
よって、このような場合は、分割することにより逆に使用者の選択の手間が増える結果となり、操作性が劣化してしまうことになる。
【０１２２】
そこで、本発明では、このような場合、操作性の落ちる分割されたプルダウンリストを避け、分割しないプルダウンリスト１００１，１００２を持つカレンダを生成する。
【０１２３】
ただし、間隔指定フィールド９０３，変更ボタン９０４により、間隔を再設定して、分割／単一のプルダウンに置き換えることが可能である。
【０１２４】
以下、図１６を参照して、本発明のプログラム生成装置により生成されたプログラムが実行されて図１４，図１５に示した変更ボタン９０４が押下指示された際に実行される処理について説明する。
【０１２５】
図１６は、本発明のプログラム生成装置におけるにおける第６の制御処理手順の一例を示すフローチャートである。なお、この処理は、本発明のプログラム生成装置が実行する処理そのものではなく、本発明のプログラム生成装置により生成されたプログラムが実行されて、図１４，図１５に示した変更ボタン９０４が押下指示された際に実行される処理に対応する。即ち、この処理は、変更ボタン９０４が押下指示された際に実行されるように、本発明のプログラム生成装置により図１３のステップＳ６１０で生成されるカレンダに埋め込まれたプログラムコードに対応する。よって、この処理は、本発明のプログラム生成装置により生成されたプログラムを実行するコンピュータのＣＰＵが記憶装置に記憶されているプログラムをＲＡＭ上で実行することにより実現される。なお、図１６中のＳ７０１〜Ｓ７１０は各ステップを示す。
【０１２６】
図１４，図１５に示した変更ボタン９０４が押下指示されると、ＣＰＵは、本フローチャートの処理を開始する。まず、ステップＳ７０１において、ＣＰＵは、間隔を指定するフィールド９０３（図１４，図１５）に指定があるか否かを判定する。
【０１２７】
そして、ステップＳ７０１で、フィールド９０３に間隔の指定がないと判定した場合には、ステップＳ７０２において、ＣＰＵは、間隔を「１」に設定し（ＲＡＭに記憶し）、ステップＳ７０３に処理を進める。
【０１２８】
一方、ステップＳ７０１で、フィールド９０３に間隔の指定があると判定した場合には、不図示のステップにおいて、間隔を指定された間隔に設定し（ＲＡＭに記憶し）、ステップＳ７０３に処理を進める。
【０１２９】
次に、ステップＳ７０３において、ＣＰＵは、指定された間隔に従ってプルダウンの個数がいくつになるか計算し、ＲＡＭに格納する。
【０１３０】
また、ステップＳ７０４において、ＣＰＵは、ステップＳ７０３で計算したプルダウンを十の位と一の位に分割した時のそれぞれの個数を計算し、ＲＡＭに格納する。
【０１３１】
次にステップ７０５において、ＣＰＵは、ステップＳ７０４で計算した分割した十の位の個数と一の位の個数とを比較し個数の多い方を選択する。
【０１３２】
次に、ステップＳ７０６において、ステップＳ７０５で選択した個数の多い方とステップＳ７０３で計算した個数（１つの時の数）とを比較する。
【０１３３】
このステップＳ７０６の比較結果、ステップＳ７０５で選択した個数の多い方がステップＳ６０３で計算した１つの時の数より多いと判定した場合には、ＣＰＵは、ステップＳ７０７，Ｓ７０８に処理を進める。
【０１３４】
ステップＳ７０７，Ｓ７０８では、ＣＰＵは、十の位と一の位を分けたプルダウンリスト（例えば、図１４の９０１，９０２）を生成し、ＲＡＭ内に格納されるカレンダ内のプルダウンリストと差し替える処理を行う。即ち、十の位のプルダウンリストと一の位のプルダウンリストをそれぞれ生成し、差し替える。そして、ステップＳ７１０に処理を進める。
【０１３５】
一方、ステップＳ７０６の比較結果、ステップＳ７０５で選択した個数の多い方がステップＳ７０３で計算した１つの時の数より多くない（等しい又は少ない）と判定した場合には、ＣＰＵは、ステップＳ７０９に処理を進める。
【０１３６】
この場合、十の位と一の位に分けてしまうと操作性が落ちるので、ステップＳ７０９では、ＣＰＵは、十の位と一の位が結合された単一のプルダウンリスト（例えば、図１５の１００１，１００２）を生成し、ＲＡＭ内に格納されるカレンダ内のプルダウンリストと差し替える処理を行う。そして、ステップＳ７１０に処理を進める。
【０１３７】
そして、ステップＳ７１０では、ＣＰＵは、ＲＡＭ内に格納されるカレンダ９００を表示画面上に再表示させる処理を行い、処理を終了する。
【０１３８】
以下、図１７を参照して、本発明のプログラム生成装置により生成されたプログラムが実行されて図１４，図１５に示したカレンダ９００画面サイズ変更時に表示形態を変更する処理について説明する。
【０１３９】
図１７は、本発明における第７の制御処理手順の一例を示すフローチャートである。なお、この処理は、本発明のプログラム生成装置が実行する処理そのものではなく、本発明のプログラム生成装置により生成されたプログラムが実行された際に実行される処理（画面サイズ変更時に表示形態を変更する処理）に対応する。即ち、この処理は、本発明のプログラム生成装置により図１３のステップＳ６１０で生成されるカレンダに埋め込まれたプログラムコードに対応する。よって、この処理は、本発明のプログラム生成装置により生成されたプログラムを実行するコンピュータのＣＰＵが記憶装置に記憶されているプログラムをＲＡＭ上で実行することにより実現される。なお、図１７中のＳ８０１〜Ｓ８０６は各ステップを示す。
【０１４０】
なお、本フローチャート中に表記する「第一のしきい値」とは、図１４及び図１５に示した１ヶ月分の日付表示のカレンダ部分９０５と時間選択プルダウンリスト９０１及び９０２（又は１００１及び１００２）の組を合わせた表示が可能な最小限の領域の値である。
【０１４１】
また、「第二のしきい値」は、後述する図１９の１２０１に示す領域において、１ヶ月分のカレンダを表示できる面積から始まり、２ヶ月分、３ヶ月分、・・・、１２ヶ月分と月カレンダ表示領域の倍数となる複数の値から構成される。即ち、カレンダが中途切れの表示にならないように月カレンダ表示の倍数となっている。
【０１４２】
以下、図１７のフローチャートの説明に入る。
【０１４３】
まず、ステップＳ８０１において、ＣＰＵは、ユーザの画面操作によりカレンダの表示領域（カレンダ９００のサイズ）が変更されたか否かを判定する。
【０１４４】
そして、ステップＳ８０１で、カレンダ表示の領域が変更されるまで待機し、カレンダの表示領域が変更されたと判定した場合には、ＣＰＵは、ステップＳ８０２に処理を進める。
【０１４５】
ステップＳ８０２では、ＣＰＵは、画面変更後の表示領域と「第一のしきい値」とを比較し、画面変更後の表示領域が「第一のしきい値」より小さいか否かを判定する。
【０１４６】
そして、ステップＳ８０２で、画面変更後の表示領域が「第一のしきい値」より小さいと判定した場合には、ＣＰＵは、ステップＳ８０３において、カレンダ９００の表示形態を図１８に示すような表示形態に変更し、ステップＳ８０１に処理を戻す。
【０１４７】
図１８は、カレンダの第一の表示形態の一例を示す模式図であり、カレンダの表示領域を小さくした場合のインターフェースの一例に対応する。
【０１４８】
図１８に示す第一の表示形態では、月カレンダが無くなり、１１０１に示すように、日付自体もプルダウンメニューから選択するユーザインターフェースとなっている。
【０１４９】
このような表示形態に変更させるのは、画面を小さくした状態でカレンダから日付を選ぶ場合に月カレンダを表示させてしまうと、月カレンダのスクロールが必要となり、却って操作性は落ちてしまうからである。
【０１５０】
そして、ステップＳ８０２で、画面変更後の表示領域が「第一のしきい値」より小さくないと判定した場合には、ＣＰＵは、ステップＳ８０４において、画面変更後の表示領域と「第二のしきい値」とを比較し、画面変更後の表示領域が「第二のしきい値」より大きいか否かを判定する。
【０１５１】
そして、ステップＳ８０４で、画面変更後の表示領域が「第二のしきい値」より大きくないと判定した場合には、ＣＰＵは、ステップＳ８０６において、カレンダを図１４，図１５に示したような１ヶ月分のカレンダ（どの月になるかはプログラムの指定による）の表示形態で表示し、ステップＳ８０１に処理を戻す。
【０１５２】
一方、ステップＳ８０４で、画面変更後の表示領域が「第二のしきい値」より大きいと判定した場合には、ＣＰＵは、ステップＳ８０５において、「第二のしきい値」の２ヶ月分〜１２ヶ月分の倍数分しきい値のうち、画面変更後の表示領域を超えない最大の倍数分のしきい値を特定し、該特定した倍数分のカレンダ数を図１９に示すように表示し、ステップＳ８０１に処理を戻す。なお、図１９は１２ヶ月分の倍数分しきい値が特定された場合に対応する。
【０１５３】
図１９は、カレンダの第二の表示形態の一例を示す模式図であり、カレンダの表示領域を大きくした場合のインターフェースの一例に対応する。
【０１５４】
図１９に示す第二の表示形態では、１２０１に示すように、表示領域に表示可能な複数の月カレンダを表示する表示形態である。特にここでは、１２ヶ月分の月カレンダが表示された場合を示している。
【０１５５】
このような表示形態に変更させるのは、カレンダ表示においては、よりたくさんの情報を一度に表示した方がユーザの選択性、操作性に有利だからである。
【０１５６】
なお、本発明は、上述したプログラム生成装置だけでなく、該プログラム生成装置で生成されたプログラムをコンピュータで実行することにより実現される入力装置も含まれるものである。即ち、図１６，図１７に示した処理に対応する機能を有する装置も本発明に含まれるものである。
【０１５７】
以上説明したように、本発明によれば、アプリケーションプログラムの開発者は、プルダウンリストを桁毎に分割する、分割しないを自動判別し、長い選択リストを作らずに短い選択リストから数値を選択入力できる機能を提供してプルダウンリストから目的の数値を容易に選択入力可能なプログラムを、プルダウンリスト長や画面状況を考慮せず、簡便な定義情報のみで生成することができる。
【０１５８】
また、実行時の操作状況に応じて、プルダウンリストの選択値の間隔を動的に変更でき、選択操作性を向上可能なプルダウンリストを再設定可能なプログラムを容易に生成することができる。
【０１５９】
さらに、画面表示幅により表示形態を動的に変化させる機能を提供して選択に必要な情報をできるだけ多く画面に表示させる変更でき、日付の選択入力の操作性を向上可能なプログラムを容易に生成することができる等の効果を奏する。
【０１６０】
また、アプリケーションプログラムの使用者は、プルダウンリストを桁毎に分割する、分割しないが自動判別され、短い選択リストから目的の数値を容易に選択することができる。
【０１６１】
さらに、実行時の操作状況に応じて、プルダウンリストの選択値の間隔を動的に変更でき、操作し易いプルダウンリストに再設定できる。
【０１６２】
また、画面表示幅により表示形態を動的に変化させて、選択に必要な情報をできるだけ多く画面に表示させて、選択の操作性を向上させることができる等の効果を奏する。
【０１６３】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１６４】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１６５】
以下、図２０に示すメモリマップを参照して本発明に係るプログラム生成装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１６６】
図２０は、本発明に係るプログラム生成装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１６７】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１６８】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１６９】
本実施形態における図４，図９，図１０，図１１，図１３，図１６，図１７に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１７０】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１７１】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１７２】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１７３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７４】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７５】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１７６】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１７７】
なお、上述した各実施形態の変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【０１７８】
【図１】本発明のプログラム生成装置の一例を示すブロック図である。
【図２】図１に示したプログラム生成装置のハードウェア構成の一例を示すブロック図である。
【図３】図１に示したコード生成部によって生成されたサーブレットコード、ＪＳＰコード、およびＢｅａｎコードを利用したウェブアプリケーションシステムの全体構成であり、本プログラム生成装置から自動生成されたものの一例を示す模式図である。
【図４】本発明のプログラム生成装置におけるにおける第１の制御処理手順の一例を示すフローチャートである。
【図５】カレンダを含むアプリケーション生成を行う部分の構成を示すブロック図である。
【図６】図５に示した画面情報テーブルの一例を示す模式図である。
【図７】図５に示した画面項目情報テーブルの一例を示す模式図である。
【図８】図５に示した項目プロパティ情報テーブルの一例を示す模式図である。
【図９】本発明のプログラム生成装置におけるにおける第２の制御処理手順の一例を示すフローチャートである。
【図１０】本発明のプログラム生成装置におけるにおける第３の制御処理手順の一例を示すフローチャートである。
【図１１】本発明のプログラム生成装置におけるにおける第４の制御処理手順の一例を示すフローチャートである。
【図１２】図１０，図１１に示した処理により生成されるプログラムコードを実行することにより表示される画面の一例を示す模式図である。
【図１３】本発明のプログラム生成装置におけるにおける第５の制御処理手順の一例を示すフローチャートである。
【図１４】プルダウンリストが十の位と一の位に分割された場合のカレンダの一例を示す模式図である。
【図１５】プルダウンリストが単一の場合のカレンダの一例を示す模式図である。
【図１６】本発明のプログラム生成装置におけるにおける第６の制御処理手順の一例を示すフローチャートである。
【図１７】本発明における第７の制御処理手順の一例を示すフローチャートである。
【図１８】カレンダの第一の表示形態の一例を示す模式図である。
【図１９】カレンダの第二の表示形態の一例を示す模式図である。
【図２０】本発明に係るプログラム生成装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０１７９】
Ａ１０７  コード生成部
Ａ１０９  入出力テーブル
Ａ１１２  ＪＳＰコード
Ａ１１３  サーブレットコード
Ａ１１４  Ｂｅａｎコード
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
２０２  画面情報テーブル
２０３  画面項目情報テーブル
２０４  項目プロパティ情報テーブル
２０５  プログラムテンプレート
【図１】
2008052386.tif 000003
【図２】
2008052386.tif 000004
【図３】
2008052386.tif 000005
【図４】
2008052386.tif 000006
【図５】
2008052386.tif 000007
【図６】
2008052386.tif 000008
【図７】
2008052386.tif 000009
【図８】
2008052386.tif 000010
【図９】
2008052386.tif 000011
【図１０】
2008052386.tif 000012
【図１１】
2008052386.tif 000013
【図１２】
2008052386.tif 000014
【図１３】
2008052386.tif 000015
【図１４】
2008052386.tif 000016
【図１５】
2008052386.tif 000017
【図１６】
2008052386.tif 000018
【図１７】
2008052386.tif 000019
【図１８】
2008052386.tif 000020
【図１９】
2008052386.tif 000021
【図２０】
2008052386.tif 000022