(57)【要約】【課題】プログラミングの知識のないユーザであっても、業務仕様の枠組みの中から、誤入力／誤登録を未然に防止可能な入力支援機能を有する複雑なウェブアプリケーションを容易に生成可能にし、ウェブアプリケーションの開発作業，業務仕様の変更に起因する変更保守作業を格段に軽減でき、開発期間を格段に短縮すること。【解決手段】入出力テーブル１０９内の複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、コード生成部が、「前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する項目表示プログラム」，「前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行うデータチェックプログラム」，「前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する入力データ整形表示プログラム」を生成する構成を特徴とする。【選択図】      図９
2005055951.tif 000002
【特許請求の範囲】
【請求項１】
ウェブアプリケーションプログラムを生成させるためのプログラム生成装置において、
複数のデータ項目の定義情報と前記各データ項目の属性情報を記憶する記憶手段と、
前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する第１のプログラムコード、を生成する第１の生成手段と、
を有することを特徴とするプログラム生成装置。
【請求項２】
ウェブアプリケーションプログラムを生成させるためのプログラム生成装置において、
複数のデータ項目の定義情報と前記各データ項目の属性情報を記憶する記憶手段と、
前記各データ項目の属性情報に基づいて、前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行う第２のプログラムコード、を生成する第２の生成手段と、
を有することを特徴とするプログラム生成装置。
【請求項３】
ウェブアプリケーションプログラムを生成させるためのプログラム生成装置において、
複数のデータ項目の定義情報と前記各データ項目の属性情報を記憶する記憶手段と、
前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する第３のプログラムコード、を生成する第３の生成手段と、
を有することを特徴とするプログラム生成装置。
【請求項４】
ウェブアプリケーションプログラムを生成させるためのプログラム生成装置において、
複数のデータ項目の定義情報と前記各データ項目の属性情報を記憶する記憶手段と、
前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する第１のプログラムコード、を生成する第１の生成手段と、
前記各データ項目の属性情報に基づいて、前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行う第２のプログラムコード、を生成する第２の生成手段と、
前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する第３のプログラムコード、を生成する第３の生成手段と、
を有することを特徴とするプログラム生成装置。
【請求項５】
前記データ項目の属性情報は、桁数に関する属性情報を含み、
前記第１の生成手段により生成される第１のプログラムコードは、前記各データ項目に対応するデータを前記データ項目の属性に応じた入力形式により前記桁数分入力処理するプログラムコードであることを特徴とする請求項１又は４記載のプログラム生成装置。
【請求項６】
前記データ項目の属性情報は、データ形式，桁数に関する属性情報を含み、
前記第２の生成手段により生成される第２のプログラムコードは、前記各データ項目に対応する入力データに対して前記データ形式に関するチェック処理，前記桁数に関するチェック処理を含むプログラムコードであることを特徴とする請求項２又は４記載のプログラム生成装置。
【請求項７】
前記データ項目の属性情報は、データ形式，桁数に関する属性情報を含み、
前記第１の生成手段により生成される第１のプログラムコードは、前記各データ項目に対応するデータを前記データ項目の属性に応じた入力形式により前記桁数分入力処理するプログラムコードであり、
前記第２の生成手段により生成される第２のプログラムコードは、前記各データ項目に対応する入力データに対して前記データ形式に関するチェック処理，前記桁数に関するチェック処理を含むプログラムコードであることを特徴とする請求項４記載のプログラム生成装置。
【請求項８】
前記第２の生成手段により生成される第２のプログラムコードは、前記チェック処理の後に前記各データ項目に対応するデータをデータベースに登録処理するプログラムコードを含むことを特徴とする請求項１，４，７のいずれかに記載のプログラム生成装置。
【請求項９】
ウェブアプリケーションプログラムを生成させるためのプログラム生成装置におけるプログラム生成方法において、
予め作成され記憶手段に記憶されている複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する第１のプログラムコード、を生成する第１の生成工程を有することを特徴とするプログラム生成方法。
【請求項１０】
ウェブアプリケーションプログラムを生成させるためのプログラム生成装置におけるプログラム生成方法において、
予め作成され記憶手段に記憶されている複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行う第２のプログラムコード、を生成する第２の生成工程を有することを特徴とするプログラム生成方法。
【請求項１１】
ウェブアプリケーションプログラムを生成させるためのプログラム生成装置におけるプログラム生成方法において、
予め作成され記憶手段に記憶されている複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する第３のプログラムコード、を生成する第３の生成工程を有することを特徴とするプログラム生成方法。
【請求項１２】
ウェブアプリケーションプログラムを生成させるためのプログラム生成装置におけるプログラム生成方法において、
予め作成され記憶手段に記憶されている複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する第１のプログラムコード、を生成する第１の生成工程と、
前記各データ項目の属性情報に基づいて、前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行う第２のプログラムコード、を生成する第２の生成工程と、
前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する第３のプログラムコード、を生成する第３の生成工程と、
を有することを特徴とするプログラム生成方法。
【請求項１３】
請求項９〜１２のいずれかに記載されたプログラム生成方法方法を実行するためのプログラム。
【請求項１４】
請求項９〜１２のいずれかに記載されたプログラム生成方法方法を実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
このアイデアは、Ｗｅｂアプリケーション開発支援システムにおいて、クライアント側からの入力情報からデータを取り出し、チェック、格納して、表示するという処理を実行するプログラムコードを業務仕様という枠組みの中から自動生成可能なプログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体に関するものである。
【０００２】
【従来の技術】
特開２００３−３６２６３号公報（特許文献１）に開示された「入力データの取扱方法」では、入力される可能性のある各項目についてチェックする内容をパターン化しておき、サーバ側のチェックパターンファイルに保存しておくと共に、汎用的に作られたサーバサイドプログラムが、実行時に、入力項目に該当するチェックパターン情報をクライアント側から送られてくるデータに埋め込み、この情報をもとにチェックパターンファイルから必要なチェックパターンを取り出してデータ値のチェックを行い、正常であると判断されたデータについて格納領域に格納するウェブアプリケーションが提案されている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述のような入力データチェック方法では、クライアント側から送る入力情報に対して、入力項目に相当するチェックパターンを付加するプログラムが必要であり、また、送られてきた入力情報については、各項目ごとに格納キーワードとデータ値とチェックパターン情報とを取り出して所定の作業領域に確保するプログラムが必要となり、これらのプログラムで構成される汎用的なサーバサイドプログラムの開発作業が非常に煩雑なものとなってしまう。
【０００４】
また、上記特許文献１で示される汎用的なサーバサイドプログラムは、汎用的であるがゆえに最適化されておらず、チェックパターンも実行時に読み出されるため、実行速度が遅くなってしまうという問題点があった。この問題点は、多数のクライアントが同時にアクセスする可能性のあるサーバサイドプログラムでは深刻な問題点である。
【０００５】
さらに、上記特許文献１で示される入力データ取扱方法では、データ項目とチェックパターンとを対応付ける情報をクライアントから送られてくるデータに埋め込むため、前記対応情報がクライアント上で改竄されてしまい、チェック機能が働かなくなってしまい、不正なデータがチェックをすり抜けて格納されてしまう恐れがあるという致命的な問題点があった。
【０００６】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、予め作成された複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、「前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する第１のプログラムコード」，「前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行う第２のプログラムコード」，「前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する第３のプログラムコード」を生成することにより、入力すべき項目データの属性に応じた入力形式で入力処理するという複雑なプログラムコード，入力された項目データ毎に該項目データの属性に応じてチェック処理するという複雑なプログラムコード，出力すべき項目データの属性に応じた出力形式で出力処理するという複雑なプログラムコードを、プログラミングの知識のないユーザであっても、業務仕様の枠組みの中から容易に生成することができ、誤入力／誤登録を未然に防止可能な入力支援機能を有するウェブアプリケーションの開発作業，業務仕様の変更に起因する変更保守作業を格段に軽減でき、開発期間を格段に短縮するプログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体を提供することである。
【０００７】
【課題を解決するための手段】
本発明の第１の発明は、ウェブアプリケーションプログラムを生成させるためのプログラム生成装置において、複数のデータ項目の定義情報と前記各データ項目の属性情報を記憶する記憶手段（図１に示す外部記憶装置に記憶される入出力テーブル１０９，図４）と、前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する第１のプログラムコード、を生成する第１の生成手段（図１に示すコード生成部１０７，図９のＳｔｅｐ５０１，図２２，図２３）とを有することを特徴とする。
【０００８】
本発明の第２の発明は、ウェブアプリケーションプログラムを生成させるためのプログラム生成装置において、複数のデータ項目の定義情報と前記各データ項目の属性情報を記憶する記憶手段（図１に示す外部記憶装置に記憶される入出力テーブル１０９，図４）と、前記各データ項目の属性情報に基づいて、前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行う第２のプログラムコード、を生成する第２の生成手段（図１に示すコード生成部１０７，図９のＳｔｅｐ５０２，図１６，図１９）とを有することを特徴とする。
【０００９】
本発明の第３の発明は、ウェブアプリケーションプログラムを生成させるためのプログラム生成装置において、複数のデータ項目の定義情報と前記各データ項目の属性情報を記憶する記憶手段（図１に示す外部記憶装置に記憶される入出力テーブル１０９，図４）と、前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する第３のプログラムコード、を生成する第３の生成手段（図１に示すコード生成部１０７，図９のＳｔｅｐ５０４，図２０，図２１）とを有することを特徴とする。
【００１０】
本発明の第４の発明は、ウェブアプリケーションプログラムを生成させるためのプログラム生成装置において、複数のデータ項目の定義情報と前記各データ項目の属性情報を記憶する記憶手段（図１に示す外部記憶装置に記憶される入出力テーブル１０９，図４）と、前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する第１のプログラムコード、を生成する第１の生成手段（図１に示すコード生成部１０７，図９のＳｔｅｐ５０１，図２２，図２３）と、前記各データ項目の属性情報に基づいて、前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行う第２のプログラムコード、前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する第３のプログラムコード、を生成する第３の生成手段（図１に示すコード生成部１０７，図９のＳｔｅｐ５０４，図２０，図２１）とを有することを特徴とする。
【００１１】
本発明の第５の発明は、前記データ項目の属性情報は、桁数に関する属性情報（図４の列８）を含み、前記第１の生成手段（図２２，図２３）により生成される第１のプログラムコードは、前記各データ項目に対応するデータを前記データ項目の属性に応じた入力形式により前記桁数分入力処理するプログラムコードであることを特徴とする。
【００１２】
本発明の第６の発明は、前記データ項目の属性情報は、データ形式，桁数（図４の列５，列８）に関する属性情報を含み、前記第２の生成手段（図１９）により生成される第２のプログラムコードは、前記各データ項目に対応する入力データに対して前記データ形式に関するチェック処理，前記桁数に関するチェック処理を含むプログラムコードであることを特徴とする。
【００１３】
本発明の第７の発明は、前記データ項目の属性情報は、データ形式，桁数に関する属性情報（図４の列５，列８）を含み、前記第１の生成手段（図２２，図２３）により生成される第１のプログラムコードは、前記各データ項目に対応するデータを前記データ項目の属性に応じた入力形式により前記桁数分入力処理するプログラムコードであり、前記第２の生成手段（図１９）により生成される第２のプログラムコードは、前記各データ項目に対応する入力データに対して前記データ形式に関するチェック処理，前記桁数に関するチェック処理を含むプログラムコードであることを特徴とする。
【００１４】
本発明の第８の発明は、前記第２の生成手段（図９のＳｔｅｐ５０３，図１５のステップＳ４０２，図１７）により生成される第２のプログラムコードは、前記チェック処理の後に前記各データ項目に対応するデータをデータベースに登録処理するプログラムコードを含むことを特徴とする。
【００１５】
本発明の第９の発明は、ウェブアプリケーションプログラムを生成させるためのプログラム生成装置におけるプログラム生成方法において、予め作成され記憶手段に記憶されている複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する第１のプログラムコード、を生成する第１の生成工程（図９のＳｔｅｐ５０１，図２２，図２３）を有することを特徴とする。
【００１６】
本発明の第１０の発明は、ウェブアプリケーションプログラムを生成させるためのプログラム生成装置におけるプログラム生成方法において、予め作成され記憶手段に記憶されている複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行う第２のプログラムコード、を生成する第２の生成工程（図９のＳｔｅｐ５０２，図１６，図１９）を有することを特徴とする。
【００１７】
本発明の第１１の発明は、ウェブアプリケーションプログラムを生成させるためのプログラム生成装置におけるプログラム生成方法において、予め作成され記憶手段に記憶されている複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する第３のプログラムコード、を生成する第３の生成工程（図９のＳｔｅｐ５０４，図２０，図２１）を有することを特徴とする。
【００１８】
本発明の第１２の発明は、ウェブアプリケーションプログラムを生成させるためのプログラム生成装置におけるプログラム生成方法において、予め作成され記憶手段に記憶されている複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する第１のプログラムコード、を生成する第１の生成工程（図９のＳｔｅｐ５０１，図２２，図２３）と、前記各データ項目の属性情報に基づいて、前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行う第２のプログラムコード、を生成する第２の生成工程（図９のＳｔｅｐ５０２，図１６，図１９）と、前記各データ項目の属性情報に基づいて、前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する第３のプログラムコード、を生成する第３の生成工程（図９のＳｔｅｐ５０４，図２０，図２１）とを有することを特徴とする。
【００１９】
本発明の第１３の発明は、第９〜１２の発明のいずれかに記載されたプログラム生成方法方法を実行するためのプログラムであることを特徴とする。
【００２０】
本発明の第１４の発明は、第９〜１２の発明のいずれかに記載されたプログラム生成方法方法を実行するためのプログラムを記録媒体にコンピュータが読み取り可能に記憶させたことを特徴とする。
【００２１】
【発明の実施の形態】
以下、図を参照して本発明のアプリケーション開発システムについて説明する。
【００２２】
図１は、本発明の一実施形態を示すプログラム生成装置の構成を示すブロック図である。
【００２３】
図において、１０１は入力装置で、キーボードやマウス等のポインティングデバイス等に相当し、業務仕様情報（テーブル，データ項目のデータベースへの配置とデータ項目間の関係、即ちあるデータがどのような条件のもとにどのようなデータから求められるかを示す情報等）の入力等を行うことが可能である。
【００２４】
１０２は表示装置で、ＣＲＴ，ＬＣＤ等で構成され、業務仕様情報の入力画面や、該入力画面から入力された業務仕様情報、生成されたプログラムコード等を表示可能である。１０４はハードディスク等の外部記憶装置で、入力された業務仕様情報を記憶するための入出力テーブル１０９や生成されたプログラムコード（ＪＳＰコード１１２，サーブレット（Ｓｅｒｖｌｅｔ）コード１１３，Ｂｅａｎコード１１４）等を記憶するものである。
【００２５】
１０３は処理装置で、ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成され、ＣＰＵがＲＯＭ，外部記憶装置１０４又はその他の記録媒体に格納されるプログラムをＲＡＭ上にロードして実行することにより実現されるものであり、画面制御部１０５，仕様解析部１０６，コード生成部１０７を備える。
【００２６】
画面制御部１０５は、入力装置１０１から業務仕様情報を入力するために表示装置１０２の画面（後述する図４，図５）を制御する業務仕様記述部１１６を備える。
【００２７】
仕様解析部１０６は、入力装置１０１から入力された又は外部記憶装置１０４から読み出された業務仕様情報に対して字句解析や文法解析を行う。コード生成部１０７は、仕様解析部１０６により仕様解析された業務仕様情報に基づいてプログラムコード（ＪＳＰコード１１２，サーブレット（Ｓｅｒｖｌｅｔ）コード１１３，Ｂｅａｎコード１１４）を生成し、外部記憶装置１０４に記憶させる。また、コード生成部１０７は、外部記憶装置１０４から読み出された業務仕様情報（入出力テーブル１０９）に基づいて図示しないデータベース（ＤＢ）システムに対してデータベースの作成（ＣＲＥＡＴＥ）及びテーブルの作成（ＣＲＥＡＴＥ  ＴＡＢＬＥ）等を行うものとする。
【００２８】
１０８は全体制御部で、画面制御部１０５，仕様解析部１０６，コード生成部１０７等の各部の制御を行う。
【００２９】
図２は、図１に示したコード生成部１０７によって生成したサーブレット、ＪＳＰ、およびＢｅａｎを利用したウェブアプリケーションシステムの全体構成の一例を示す図である。
【００３０】
コード生成部１０７によって生成されたサーブレット、ＪＳＰ、およびＢｅａｎは、それぞれ実行可能な状態で、サーバ３０４側のアプリケーションサーバ３０６上に配置される。
【００３１】
このＷｅｂアプリケーションシステムは、クライアント３０１からウェブブラウザ３０２によって利用される。ウェブブラウザ３０２からＪＳＰ３０９にアクセスすることにより、ＨＴＭＬページを生成し、クライアント３０１側に返送する。そして、ウェブブラウザ３０２上には、ＪＳＰ３０９から送信されるＨＴＭＬページ３０３が表示される。
【００３２】
また、Ｗｅｂブラウザ３０２からのリクエストは、ＨＴＴＰ経由でサーバ３０４側に送信される。サーバ３０４にはＨＴＴＰサーバ３０５とアプリケーションサーバ３０６があり、アプリケーションサーバ３０６にはサーブレットやＪＳＰの実行環境が含まれている。
【００３３】
サーバ３０４側にリクエストが送信されると、リクエストに応じて該当するサーブレット３０７が起動される。サーブレット３０７は、対応するＢｅａｎ３０８に処理を要求する。さらに、Ｂｅａｎ３０８はＤＢアクセスオブジェクト３１０を利用してデータベース３１１にアクセスし、業務に関する処理やデータ加工などを行い、その処理結果を保持する。ＤＢアクセスオブジェクト３１０は、業務を分析、設計した結果、作成されるクラスや、再利用可能な既存のクラスである。
【００３４】
次に、サーブレット３０７からＪＳＰ３０９にＢｅａｎ３０８を渡し、ＪＳＰ３０９を呼び出す。ＪＳＰ３０９は、Ｂｅａｎ３０８で保持する処理結果を参照して、ＨＴＭＬページを生成し、クライアント３０１側に返送する。クライアント３０１側に返送されたＨＴＭＬページ３０３は、Ｗｅｂブラウザ３０２上に表示される。
【００３５】
サーブレット３０７は、Ｗｅｂブラウザ３０２からのリクエストの受け付け、Ｂｅａｎ３０８への処理要求、およびＪＳＰ３０９の呼び出しという、それぞれの間をつなぎ、制御する役割を持つ。ＪＳＰ３０９はＨＴＭＬページを出力するための表示に関することを受け持ち、Ｂｅａｎ３０８はデータベース３１１へのアクセス等の業務に関する処理を受け持つ。Ｂｅａｎ３０８やＪＳＰ３０９を利用せず、サーブレット３０７のみでＷｅｂブラウザ３０２からのリクエストを処理することは可能であるが、Ｂｅａｎ３０８やＪＳＰ３０９を利用することでそれぞれの役割を明確に分離することで、機能分担を簡潔に把握することができる。
【００３６】
図３は、本発明のプログラム生成装置における第１の制御処理手順の一例を示すフローチャートであり、図１に示した処理装置１０３の全体制御部１０８の動作に対応する。なお、Ｓ１０１〜Ｓ１０６は各ステップを示す。
【００３７】
図１に示した処理装置１０３は、コード生成する業務仕様（入出力テーブル）の入力を行う入力モードと、入力された業務仕様（入出力テーブル）からプログラムコードを生成する生成モードとを有する。
【００３８】
まず、全体制御部１０８が起動されると、ステップＳ１０１において、入力装置１０１からオペレータの指示により選択されたモードが生成モードか入力モードかを判定し、入力モードが選択されたと判定した場合には、ステップＳ１０２に進み、全体制御部１０８は、画面制御部１０５を起動する。
【００３９】
起動された画面制御部１０５は、ステップＳ１０３において、業務仕様記述部１１６により業務仕様入力部を起動して、後述する図６，図７に示す入力画面を表示させ、生成するウェブアプリケーションのアプリケーション名，オペレータからの業務仕様の一形態である入出力テーブル（詳細は後述する図４に示す）への項目入力を受け付け、該入出力テーブル（図４）を外部記憶装置１０４に格納し、処理を終了する。
【００４０】
一方、ステップＳ１０１において、入力装置１０１からオペレータの指示により選択されたモードが生成モードであると判定した場合には、ステップＳ１０４に進み、全体制御部１０８は、オペレータから指示されたアプリケーション名に基づいて、外部記憶装置１０４に格納された入出力テーブル（業務仕様情報；詳細は後述する図４に示す）を読み出すとともに、仕様解析部１０６を起動させて、読み出した入出力テーブルの字句解析，文法解析を行い、その情報をＲＡＭ又は外部記憶装置１０４内のワーク領域に格納しておく。これらワーク領域に格納された情報は、以下のステップＳ１０５のコード生成処理時に使用される。なお、このワーク領域には、アプリケーション名も格納されるもとする。
【００４１】
次に、ステップＳ１０５において、全体制御部１０８は、コード生成部１０７を起動させて、仕様解析部１０６で字句解析，文法解析が行われた入出力テーブルに基づいて図示しないデータベースシステムに対するテーブルの登録及びコード生成を行う。
【００４２】
そして、ステップＳ１０６において、全体制御部１０８は、生成されたコードを、オペレータの指示により表示装置１０２に表示したり、ユーザの指示した場所（例えば、外部記憶装置１０４やネットワークに接続された他の装置の記憶装置）に書き込む出力処理を行う。
【００４３】
以下、各処理を具体的に説明する。
【００４４】
まず、オペレータによって入力モードが選択された場合について説明する。
【００４５】
入力モードの選択により、全体制御部１０８は業務仕様記述部１１６を起動する。これにより、表示装置１０２に後述する図６に示す業務仕様入力画面が表示され、オペレータはこの業務仕様入力画面より業務仕様を入力装置１０１を用いて入力する。
【００４６】
以下、図４〜図７を参照して、本発明のプログラム生成装置における業務仕様（入出力テーブル）について説明する。
【００４７】
図４は、本発明のプログラム生成装置における業務仕様（入出力テーブル）について説明する模式図である。
【００４８】
図において、列１，列２は、データ項目のデータベースの配置とデータ項目間の関係を記述した情報（業務仕様）を表したもので、列１は、入出力データファイル番号を示したものであり、入出力データ番号を構成するフィールドとして列２のデータファイル項目枝番がある。列３はデータファイルの名称であり、列４は枝番に対応する各フィールドの名称である。
【００４９】
列５〜列８は、入力項目（入力すべきデータ項目）の属性情報を表したもので、列５は入力項目の入力表示形式（入力形式に関する属性，表示出力形式に関する属性，データ形式に関する属性を含む）を表している。列６は、表示フォントを、列７はフォントサイズを表しており、列８は入力桁数を表している。
【００５０】
また、列５の入力表示形式の種別と内容については、以下の図５に記載する。
【００５１】
図５は、図４に示した入出力テーブルの列５の入力表示形式の種別を説明する模式図である。
【００５２】
図５に示すように、本実施形態において、形式は１３種類提供しており、大別すると下記の３種類（（１）〜（３））に分類できる。
【００５３】
（１）入力表示項目の入力フィールド生成に関与する形式
（２）入力データの整形に関与する形式
（３）いずれにも関与しない形式
まず、（１）の入力フィールド生成に関与する形式としては、‘ＣＯＤＥ’，‘ＹＭＤ１’，‘ＹＭＤ３’，‘ＺＩＰ’の４種類がある。
【００５４】
これらの形式は、列７のフォントサイズと列８の桁数から、適切な大きさのマスを桁数分、生成するためのものである。また、１マスは、１文字の大きさのテキストボックスで構成されており、‘ＹＭＤ１’，‘ＹＭＤ３’，‘ＺＩＰ’については、さらにラベルとの組み合わせによる入力フィールドが生成される。例えば、‘ＹＭＤ１’であれば、４個のマスに続き‘年’のラベルを、さらに２個のマスが生成される。
【００５５】
次に、（２）の入力データの整形に関与する形式としては、‘ＹＭＤ２’，‘ＹＭＤ４’，‘ＭＯＮＥＹ１’，‘ＭＯＮＥＹ２’，‘ＭＯＮＥＹ３’，‘ＭＯＮＥＹ４’，‘ＮＵＭ１’の７種類がある。
【００５６】
これらの形式は、列８で指定された桁数と挿入記号数の大きさをもつテキストボックスと、「入力データを指定形式に基づいた形に整形し、表示する」といった表示と処理のためのプログラムを生成するためのものである。
【００５７】
たとえば、‘ＹＭＤ２’であれば、１１文字（‘ＹＹＹＹ年ＭＭ月ＤＤ日’を表示するための文字数）分の大きさを持つテキストボックスが生成される。
【００５８】
ここで、入力データとして‘２００３０６１１’が入力された場合、整形後の入力ボックスには‘２００３年６月１１日’と表示されることになる。なお、入力された値が‘２００３９９４０’のように正しい日付ではない場合や８桁未満の場合はエラーとする。
【００５９】
最後に、（３）のいずれにも関与しない形式としては、‘ＮＡＭＥ’，‘ＮＵＭ２’の２種類がある。
【００６０】
これらは、列８で指定された桁数の大きさをもつテキストボックスを入力フィールドとする表示プログラムを生成するためのものであり、データ入力に対して表示用に整形加工する処理は指示されない。
【００６１】
即ち、‘ＣＯＤＥ’，は入力形式に関する属性（マス入力），出力形式に関する属性（無整形出力），データ形式に関する属性（桁数固定コードデータ）を有する。
【００６２】
また、‘ＹＭＤ１’は入力形式に関する属性（ラベル（西暦年月日）・マス入力），出力形式に関する属性（無整形出力），データ形式に関する属性（西暦年月日データ）を有する。
【００６３】
さらに、‘ＹＭＤ２’は入力形式に関する属性（フリー入力），出力形式に関する属性（西暦ゼロ除去出力），データ形式に関する属性（西暦年月日データ）の属性を有する。
【００６４】
また、‘ＹＭＤ３’は入力形式に関する属性（ラベル（和暦年月日）・マス入力），出力形式に関する属性（無整形出力），データ形式に関する属性（和暦年月日データ）を有する。
【００６５】
さらに、‘ＹＭＤ４’は入力形式に関する属性（フリー入力），出力形式に関する属性（和暦付加，ゼロ除去出力），データ形式に関する属性（和暦年月日データ）を有する。
【００６６】
また、‘ＮＡＭＥ’，は入力形式に関する属性（フリー入力），出力形式に関する属性（無整形出力），データ形式に関する属性（指定無）を有する。
【００６７】
さらに、‘ＺＩＰ’，は入力形式に関する属性（ラベル（郵便番号）・マス入力），出力形式に関する属性（無整形出力），データ形式に関する属性（郵便番号）を有する。
【００６８】
また、‘ＭＯＮＥＹ１’は入力形式に関する属性（フリー入力），出力形式に関する属性（￥付加，−後付加，金額３桁区切り出力），データ形式に関する属性（金額（円）データ）を有する。
【００６９】
さらに、‘ＭＯＮＥＹ２’は入力形式に関する属性（フリー入力），出力形式に関する属性（￥付加，−前付加，金額３桁区切り出力），データ形式に関する属性（金額（円）データ）を有する。
【００７０】
また、‘ＭＯＮＥＹ３’は入力形式に関する属性（フリー入力），出力形式に関する属性（−後付加，金額３桁区切り出力），データ形式に関する属性（金額（円）データ）を有する。
【００７１】
さらに、‘ＭＯＮＥＹ４’は入力形式に関する属性（フリー入力），出力形式に関する属性（−前付加，金額３桁区切り出力），データ形式に関する属性（金額（円）データ）を有する。
【００７２】
また、‘ＮＵＭ１’は入力形式に関する属性（フリー入力），出力形式に関する属性（金額３桁区切り出力），データ形式に関する属性（数値データ）を有する。
【００７３】
また、‘ＮＵＭ２’は入力形式に関する属性（フリー入力），出力形式に関する属性（無整形出力），データ形式に関する属性（数値データ）を有する。
【００７４】
図６は、図４に示した入出力テーブルの列５の入力表示形式に従った整形表示を説明するための画面遷移図であり、入力表示形式が「ＭＯＮＥＹ１」の場合に対応する。
【００７５】
図に示すように、表示されるデータ項目画面（ａ）に対して、データ（例えば、「５０００００００」）を入力する（ｂ）と、データ「５０００００００」が図５に示したＭＯＮＥＹ１の整形形式「￥ｘｘｘ，ｘｘｘ−」に従って、「￥５０，０００，０００」と整形されて画面表示される（ｃ）。
【００７６】
このように、本実施形態のプログラム生成装置は、データ項目のデータベースの配置とデータ項目間の関係を記述した業務仕様（入出力テーブルの列１，列２の情報）と、属性情報（データ項目の形式と桁数で構成された定義域フィールドの内容（入出力テーブルの列５〜列８の情報））から、誤入力を未然に防ぐことを目的に、必要桁数分の大きさを持つ入力項目（テキストボックス）を生成し、データ項目名（入出力テーブルの列４の情報）入力項目のための補足表示ラベルを生成するためのプログラムコードを自動生成する。
【００７７】
また、上記属性情報から入力されたデータの書式チェックを行うプログラムコードを自動生成する。
【００７８】
さらに、上記属性情報に従って、入力データを整形して再表示する機能を有するプログラムコードを自動生成する。
【００７９】
図７，図８は、本発明のプログラム生成装置における業務仕様入力画面の一例を示す模式図であり、業務仕様記述部１１６により起動される。
【００８０】
図７，図８の業務仕様入力画面から入力される業務仕様は、内部的には図４の入出力テーブルの形式で保存される。
【００８１】
まず、図７において、４００はアプリケーション名入力エリアで、生成するウェブアプリケーションのアプリケーション名（この例では「ＺｙｕｔｙｕＫａｎｒｉ」）を入力する。なお、このアプリケーション名は、図４に示した入出力テーブル名やデータベースを作成するときのデータベース名にも用いられる。
【００８２】
４０１はデータファイル番号入力エリアで、生成するウェブアプリケーションの識別情報であるデータファイル番号（この例では「ＺｙｕｔｙｕＫａｎｒｉ」（アプリケーション名と同一でもよい））を入力するためのものであり、図４に示す入出力テーブルの列１に格納される。なお、このデータファイル番号は、テーブルを作成するテーブル名として用いられる。４０２はファイル名入力エリアで、生成するウェブアプリケーションのデータファイル名（この例では「受注管理」）を入力するためのものであり、図４に示す入出力テーブルの列３に格納される。４０３は説明入力エリア、４０４は備考入力エリアで、生成するウェブアプリケーションの説明等を入力する。４０５は削除ボタンで、このボタンをマウス等で指示することにより、対応するデータファイルが削除される。４０６は詳細ボタンで、このボタンをマウス等で指示することにより、対応するデータファイルの各項目情報（データ項目）を入力する項目入力画面（図８）が表示される。
【００８３】
図８において、５０１は並び順入力エリアで、対応するデータ項目の並び順（１，２，３，・・・）を入力するためのものであり、各項目はこの順序で図４に示す入出力テーブルに格納される。５０２はデータ項目枝番入力エリアで、対応するデータ項目の識別情報であるデータ項目枝番（図４に示した例では「ＺｙｕｔｙｕＮｏ」を含む７項目）を入力するためのものであり、図４に示した入出力テーブルの列２に格納される。なお、このデータ項目枝番は、テーブルを作成するテーブル内の項目名として用いられる。
【００８４】
５０３はデータ項目名入力エリアで、対応するデータ項目の名称（図４に示した例では「受注番号」を含む７項目）を入力するためのものであり、図４に示した入出力テーブルの列４に格納される。
【００８５】
５０４は形式指定エリアで、対応するデータ項目の形式を指定するためのものであり、図４に示す入出力テーブルの列５に格納される。この形式は、図５に示した１３種類の形式に対応する。
【００８６】
５０５はフォント指定エリアで、対応するデータ項目のフォント（例えば「ＭＳゴシック」，「ＭＳ明朝」，「ＭＳＰ明朝」等）を指定するためのものであり、図４に示した入出力テーブルの列６に格納される。
【００８７】
５０６はフォントサイズ指定エリアで、対応するデータ項目のフォントサイズ（例えば「１０．５」，「１２」等）を指定するためのものであり、図４に示した入出力テーブルの列７に格納される。
【００８８】
５０７は桁数指定エリアで、対応するデータ項目の桁数（例えば「１０」，「８」等）を指定するためのものであり、図４に示した入出力テーブルの列８に格納される。
【００８９】
５１０は削除ボタンで、このボタンをマウス等で指示することにより、対応するデータ項目が削除される。５１１は閉じるボタンで、このボタンをマウス等で指示することにより、データ項目入力画面が終了される。５１２は適用ボタンで、このボタンをマウス等で指示することにより、業務仕様入力画面（図７）及び本データ項目入力画面（図７）で入力された業務仕様より図４に示したような入出力テーブルが生成され、外部記憶装置１０４に記憶される。
【００９０】
なお、本実施形態では、図４に示した入出力テーブルを、図７，図８に示した入力画面が入力する構成について説明したが、入出力テーブルをテキストファイルやＣＳＶファイル等で構成し、ユーザがテキストエディタやその他のアプリケーションで作成し、外部記憶装置１０４に格納するように構成してもよい。
【００９１】
図９は、本発明のプログラム生成装置におけるプログラム生成処理の概念（処理の構成）を示す模式図である。
【００９２】
図４に示した入出力テーブル１０９の情報（列１〜列８）のうち、格納情報（列１のデータファイル番号と列２のデータ項目枝番）から、データベース（ＤＢ）の作成とテーブルの作成を行う（Ｓｔｅｐ５００（後述する図１４に相当））。
【００９３】
さらに、列３のデータファイル項目名，列５の形式情報，列６のフォント情報，列７のフォントサイズ，列８の桁数情報から、ＪＳＰとＪａｖａ（登録商標）Ｓｃｒｉｐｔによる項目表示プログラム（必要桁数分の大きさを持つ入力項目（テキストボックス）と入力項目のための補足表示ラベルを生成して各データ項目の属性に応じた入力形式で入力処理するプログラムコード）の生成を行う（Ｓｔｅｐ５０１（後述する図２２，２３に相当））。
【００９４】
また、列５の形式情報と列８の桁数情報からは、入力データの書式（桁数，範囲，その他の属性（数字であるか否か等））をチェックするデータチェックプログラム（各データ項目に対応する入力データに対して各データ項目の属性に応じたチェック処理を行うプログラムコードであるＪａｖａ（登録商標）Ｓｃｒｉｐｔによるクライアント側でのデータチェックプログラムとＢｅａｎｓによるサーバ側でのデータチェックプログラム）を生成する（Ｓｔｅｐ５０２（後述する図１９，図１６に相当））。
【００９５】
さらに、格納情報（列１のデータファイル番号と列２のデータ項目枝番）からは、Ｂｅａｎによるデータベースにデータを格納するプログラムを生成する（Ｓｔｅｐ５０３（後述する図１５のＳ４０３に相当））。
【００９６】
また、列５の形式情報から、ＪＳＰとＪａｖａ（登録商標）Ｓｃｒｉｐｔによる、入力情報を整形して再表示するプログラム（各データ項目に対応するデータを各データ項目の属性に応じた出力形式で出力処理するプログラムコード）を生成する（Ｓｔｅｐ５０４（後述する図２０，２１に相当））。
【００９７】
なお、上記図９は概念図であり、詳細は後述する図１３〜図２３のフローチャートに示す。
【００９８】
以下、図１０〜図１２を参照して、本発明のプログラム生成装置において生成されるウェブアプリケーションにより実行される処理について説明する。
【００９９】
図１０は、本発明のプログラム生成装置において生成されるウェブアプリケーションにより実行されるデータ登録処理について説明するフローチャートである。
【０１００】
本実施形態のプログラム生成装置により生成されたウェブアプリケーションを実行すると、データ項目画面がクライアントのウェブブラウザ上に表示される（Ｓｔｅｐ６０１）。図４に示した入出力テーブルから生成されたデータ項目入力画面の一例を図１１に示す。
【０１０１】
図４に示した入出力テーブルでは、受注番号は、形式が‘ＣＯＤＥ’、桁数が１０桁であるので、フォントサイズ１０．５ポイント相当のテキストボックス（マス）が１０個生成される。
【０１０２】
受注日は、形式が‘ＹＭＤ１’、桁数が８桁であるので、フォントサイズ１０．５ポイント相当のテキストボックスが４つ続き、ラベル‘年’、テキストボックス２つ、ラベル‘月’、テキストボックス２つ、ラベル‘日’が生成される。
【０１０３】
郵便番号は、形式が‘ＺＩＰ’、フォントサイズが１２であるので、フォントサイズ１２ポイント相当のテキストボックスが３個生成され、これに続き、ラベル‘−’、テキストボックスが４個生成される。住所と顧客名は、ともに形式が‘Ｎａｍｅ’、フォントサイズが１０．５なので、フォントサイズ１０．５ポイント相当のテキストフィールドが１２８桁分生成される。
【０１０４】
単価は、形式が‘ＭＯＮＥＹ１’、フォントサイズが１０．５なので、フォントサイズ１０．５ポイント相当のテキストフィールドが８桁分生成される。受注数は、形式が‘ＮＵＭ１’、フォントサイズが１０．５なので、フォントサイズ１０．５ポイント相当のテキストフィールドが８桁分生成される。
【０１０５】
さらに、入力したデータをデータベースに登録するための登録ボタンが生成される。
【０１０６】
次に、表示されたデータ項目画面に対し、データ入力が行われ、登録ボタンが指示されると（Ｓｔｅｐ６０２）、サーバへデータが転送される前後で、データチェックを行う（Ｓｔｅｐ６０３）。データ転送前にクライアント側は、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔによるチェックを行い、データ転送後にサーバ側は、Ｂｅａｎによるチェックを行う。なお、このようにデータが転送前後でデータチェックを行うのは、セキュリティ対策（例えば、転送前後のデータ改竄対策、即ち、データ項目画面（ｈｔｍｌ）内に記載されているＪａｖａ（登録商標）Ｓｃｒｉｐｔのデータチェックコードを変更して、本来のデータチェックでは不正となるはずのデータを登録しようとするような不正行為への対策）のための処置である。
【０１０７】
チェック後、入力データはデータベースに格納され（Ｓｔｅｐ６０４）、形式に従ってデータが整形され、図１２に示すようにクライアントにて表示される（Ｓｔｅｐ６０５）。
【０１０８】
以下、図１３〜図２３を参照して、図１に示したコード生成部１０７によるコード生成処理について説明する。
【０１０９】
図１３は、本発明の第２の制御処理手順の一例を示すフローチャートであり、図１に示したコード生成部１０７によるコード生成処理に対応する。なお、Ｓ２０１〜Ｓ２０４は各ステップを示す。
【０１１０】
まず、ステップＳ２０１において、入出力テーブル１０９に格納された業務仕様情報に基づいて、図示しないＤＢシステムにアクセスし、データベース（ＤＢ）を作成する（詳細は図１４に示す）。
【０１１１】
次に、ステップＳ２０２において、入力データチェック処理及びステップＳ２０１で作成したデータベースへのアクセス処理等を含む業務処理を行うＢｅａｎコード１１４を、入出力テーブル１０９に基づいて生成する（詳細は図１５，図１６に示す）。
【０１１２】
次に、ステップＳ２０３において、入出力テーブル１０９に基づいて、ウェブブラウザからの入力データを取得してウェブアプリケーション全体を制御するサーブレットコード１１３を生成する（詳細は図１７に示す）。
【０１１３】
次に、ステップＳ２０４において、ウェブブラウザへの表示を制御する（図１１，図１２に示した画面のウェブブラウザへの出力を制御する）ＪＳＰコード１１２を生成し（詳細は図１８〜図２３に示す）、処理を終了して図３のフローチャートにリターンする。
【０１１４】
図１４は、本発明の第３の制御処理手順の一例を示すフローチャートであり、図１３のステップＳ２０１に示したＤＢ作成処理に対応する。なお、Ｓ３０１〜Ｓ３０５は各ステップを示す。
【０１１５】
まず、ステップＳ３０１において、図示しないＤＢシステムに対して、ワーク領域からアプリケーション名を取得し、該アプリケーション名をデータベース名とするＤＢを作成するコマンドを発行する。次に、ステップＳ３０２において、ステップＳ３０１で作成したＤＢに接続する。
【０１１６】
そして、ステップＳ３０３において、ワーク領域から入出力テーブル１０９で定義されたデータファイル番号を１つ取得し、該データファイル番号をテーブル名、該データファイル番号内のデータ項目枝番をテーブル内の項目名としたテーブルを作成するＳＱＬ文を生成し、該ＳＱＬ文のクエリを実行する。
【０１１７】
次に、ステップＳ３０４において、全データファイルについてステップＳ３０３の処理が終了したか否かを判定し、まだ終了していない場合には、ステップＳ３０３に戻り、一方、既に終了したと判定した場合には、ステップＳ３０５に進む。
【０１１８】
ステップＳ３０５において、データベースから切断する処理を行い、処理を終了して図１３のフローチャートにリターンする。
【０１１９】
図１５は、本発明の第４の制御処理手順の一例を示すフローチャートであり、図１３のステップＳ２０２に示した業務処理用Ｂｅａｎ生成処理に対応する。なお、Ｓ４０１〜Ｓ４０３は各ステップを示す。
【０１２０】
まず、ステップＳ４０１において、業務処理用のＢｅａｎファイルを生成する。なお、Ｂｅａｎファイル名は、例えば、アプリケーション名に文字列“Ｂｅａｎ”を付加し拡張子を“ｊａｖａ（登録商標）”としたＢｅａｎファイルとする。また、このとき、Ｂｅａｎファイル内の先頭に、「パッケージ名（アプリケーション名に文字列“Ｂｅａｎ”を付加したもの）の宣言、「ｊａｖａ（登録商標）．ｓｑｌ」パッケージのインポート、Ｊａｖａ（登録商標）Ｂｅａｎｓを利用するために必要なインタフェースの実装等を行うコード」を格納しておく。
【０１２１】
次に、ステップＳ４０２において、入力情報チェックコードを生成する（詳細は、図１６に示す）。
【０１２２】
さらに続いて、ステップＳ４０３において、「入力情報チェックコードによるチェック処理でエラーでなかった場合に、ＤＢに接続し、新規登録クエリを実行し、登録結果がエラーの場合にメッセージ（業務処理用クラス内のプロパティ）をセットし、ＤＢから切断するコード」を生成して処理を終了し、図１３にリターンする。なお、このコードには、「ドライバクラスをロードする処理、データベースに接続する処理、ＳＱＬステートメントオブジェクトを生成する処理、サーブレットから渡されたデータを新規登録するＳＱＬ文のクエリを実行して結果を取得する処理、登録結果をセットする処理、ＳＱＬステートメントオブジェクトとデータベース接続オブジェクトをクローズする処理を行うためのコード」が記載されているものとする。
【０１２３】
なお、ステップＳ４０２，Ｓ４０３に示したコードは、Ｂｅａｎファイル内で定義される業務処理用のクラス（例えば、クラス名：“ＧｙｏｕｍｕＳｙｏｒｉ”の業務処理（データチェック＋データ格納）を実行するメソッド内に生成するものとする。
【０１２４】
図１６は、本発明の第５の制御処理手順の一例を示すフローチャートであり、図１５のステップＳ４０２に示した入力情報チェックコード生成処理に対応する。なお、Ｓ５０１〜Ｓ５０８は各ステップを示す。また、入力データのチェック項目としては、入力オーバ（桁数）チェック，範囲チェックとする。さらに、範囲チェックについては、例えば、ＹＭＤ形式の入力項目では、月と日の範囲チェックを行うものとする。さらに、以下のフローチャートでは特に示していないが、図４に示した入出力テーブルにレンジ情報（最大値と最小値）を設定するフィールド（列）を設け、上記フローチャートでレンジ範囲のチェックを行うように構成してもよい。また、ＹＭＤ３，ＹＭＤ４の場合には和暦の範囲もチェックするように構成してもよい。
【０１２５】
まず、ステップＳ５０１において、作業領域に格納された入出力テーブルよりデータ項目を１レコード取得し、また入力情報内から１項目のデータを取得し、「データが整形されている場合に、整形前の状態に戻すコード」をメソッド内に生成する。なお、この処理は後述する図２０，図２１に示すデータ整形表示用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード生成処理と逆の処理であるため、ここでは詳細な説明は省略する。
【０１２６】
次に、ステップＳ５０２において、「データ項目内の桁数に基づいて、データの桁数をチェックし、エラーがあった場合にエラー内容を作業領域に保存するコード」を生成する。
【０１２７】
次に、ステップＳ５０３において、データ項目内の形式（列５）がＹＭＤ１〜４のいずれかであるか否かを判定し、ＹＭＤ１〜４のいずれかであった場合には、ステップＳ５０４において、「データの範囲（月，日等）をチェックし、エラーがあった場合にエラー内容を作業領域に保存するコード」を生成する。
【０１２８】
一方、ステップＳ５０３で、データ項目内の形式（列５）がＹＭＤ１〜４のいずれでもない場合には、ステップＳ５０５において、データ項目内の形式（列５）がＭＯＮＥＹ１〜４，ＮＵＭ１，２のいずれかであるか否かを判定し、ＭＯＮＥＹ１〜４，ＮＵＭ１，２のいずれかであった場合には、ステップＳ５０６において、「データが数値であるかをチェックし、エラーがあった場合にエラー内容を作業領域に保存するコード」を生成する。
【０１２９】
次に、ステップＳ５０７において、「チェックでエラーがあった場合にのみ、送信情報とエラー情報をメッセージ（業務処理用クラス内のプロパティ）にセットするコード」を生成し、処理を終了して図１５のフローチャートに戻る。
【０１３０】
次に、ステップＳ５０８において、ステップＳ５０１〜Ｓ５０７の処理を既に全データ項目に対して実行したか否かを判定し、まだ全データ項目に対して実行していないと判定した場合には、ステップＳ５０１の処理に戻る。
【０１３１】
一方、ステップＳ５０８で、ステップＳ５０１〜Ｓ５０７の処理を既に全データ項目に対して実行したと判定した場合には、処理を終了し、図１５のフローチャートにリターンする。
【０１３２】
以上の処理により生成されるプログラムコードにより、各データ項目に対応する入力データに対して各データ項目の属性に応じたチェック処理をクライアント側で行うことが可能となる。
【０１３３】
図１７は、本発明の第６の制御処理手順の一例を示すフローチャートであり、図１３のステップＳ２０３に示したサーブレット生成処理に対応する。なお、Ｓ６０１〜Ｓ６０５は各ステップを示す。
【０１３４】
まず、ステップＳ６０１において、サーブレットファイルを生成する。このサーブレットファイルのファイル名は、例えば、アプリケーション名に文字列“Ｓｅｒｖｌｅｔ”を付加して拡張子を“ｊａｖａ（登録商標）”とする。なお、このとき、サーブレットファイル内の先頭に、「使用するＢｅａｎパッケージ及びその他必要なパッケージをインポートするコード、アクセス修飾子，クラスの定義，クラス（例えば、ＨｔｔｐＳｅｒｖｌｅｔクラス）の継承、ウェブブラウザ（ＨＴＭＬフォーム）から送信されたパラメータ（送信情報）を受け取るためのメソッドを示すコード」を格納しておく。
【０１３５】
次に、ステップＳ６０２において、「ウェブブラウザからの送信情報（入力情報）を受け取るコード」をサーブレットファイル内に生成する。
【０１３６】
次に、ステップＳ６０３において、「業務処理用のＢｅａｎをインスタンスし、業務用Ｂｅａｎに入力情報（ウェブブラウザからの送信情報）をセットし、業務処理用クラスの業務処理メソッドを実行するコード」をサーブレットファイル内に生成する。
【０１３７】
次に、ステップＳ６０４において、「業務処理用のＢｅａｎをＪＳＰから利用可能な所定の記憶領域（例えばセッションオブジェクト）にセットするコード」をサーブレットファイル内に生成する。
【０１３８】
次に、ステップＳ６０５において、「ＪＳＰを呼び出すコード」をサーブレットファイル内に生成し、処理を終了して図１３のフローチャートにリターンする。
【０１３９】
図１８は、本発明の第７の制御処理手順の一例を示すフローチャートであり、図１３のステップＳ２０４に示したＪＳＰ生成処理に対応する。なお、Ｓ７０１〜Ｓ７０８は各ステップを示す。
【０１４０】
まず、ステップＳ７０１において、ＪＳＰファイルを生成する。このＪＳＰファイルのファイル名は、例えば、アプリケーション名とし拡張子を“ｊｓｐ”とする。なお、このＪＳＰファイル内には、「ＪＳＰページのＭＩＭＥタイプとエンコードするキャラクタセットを設定するコード、所定の記憶領域（例えばセッションオブジェクト）からＤＢアクセスＢｅａｎのインスタンスを取り出すコード、ｈｔｍｌのタグである“＜ｈｔｍｌ＞＜ｈｅａｄ＞＜ｔｉｔｌｅ＞アプリケーション名＜／ｔｉｔｌｅ＞”等」を生成し格納しておくものとする。
【０１４１】
次に、ステップＳ７０２において、データチェック送信用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード生成処理（詳細は図１９）を行い、ステップＳ７０３において、データ整形表示用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード生成処理（詳細は図２０，図２１）を行う。
【０１４２】
次に、ステップＳ７０４において、「メッセージウィンドウ表示用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成する。
【０１４３】
次に、ステップＳ７０５において、「表示用データとメッセージを取得するコード」をＪＳＰファイル内に生成する。なお、このコード内には、「業務処理用のＢｅａｎから前の画面での入力情報（サーブレットに送信したパラメータ）とメッセージを取得するコード」を含む。
【０１４４】
次に、ｈｔｍｌのタグである“＜／ｈｅａｄ＞＜ｂｏｄｙ＞”等を格納した後、ステップＳ７０６において、データ項目画面表示コード生成処理を行い（詳細は図２２，図２３に示す）、次に、ｈｔｍｌのタグである“＜／ｂｏｄｙ＞＜／ｈｔｍｌ＞”等を格納する。
【０１４５】
次に、ステップＳ７０７において、「業務処理用のＢｅａｎから取得した入力情報がある場合に、データ整形用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔを実行するコード」をＪＳＰファイル内に生成する。
【０１４６】
次に、ステップＳ７０８において、「業務処理用のＢｅａｎから取得したメッセージがある場合に、メッセージウィンドウ表示用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔを実行するコード」をＪＳＰファイル内に生成し、処理を終了して図１３にリターンする。
【０１４７】
なお、上記フローチャートでは、ステップＳ７０６において「データ項目画面表示処理を行うコード」を生成し、さらにステップＳ７０７において「データ項目画面表示処理を行った後、入力情報がある場合にデータ整形用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔを実行して整形したデータをデータ項目画面上に表示するようなプログラムコード」を生成する構成について説明したが、ステップＳ７０６において、「入力情報がある場合、データ項目画面表示処理時に、該入力情報を整形し、該整形データをデフォルトの表示データとしたデータ項目画面を作成（表示）するようなプログラムコード」を生成するように構成してもよい。
【０１４８】
図１９は、本発明の第８の制御処理手順の一例を示すフローチャートであり、図１８のステップＳ７０２に示したデータチェック送信用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔに対応する。なお、Ｓ８０１〜Ｓ８０８は各ステップを示す。また、入力データのチェック項目としては、入力オーバ（桁数）チェック，範囲チェックとする。さらに、入力画面において１文字（サイズ１）のテキストボックスを桁数分生成させる形式の入力項目（例えば、ＣＯＤＥ，ＹＭＤ１，ＹＭＤ３，ＺＩＰ）については、指定桁数を超えるデータ入力は行えないため、クライアント側では桁数チェックは行わない。また、範囲チェックについては、例えば、ＹＭＤ形式の入力項目では、月と日の範囲チェックを行うものとする。さらに、以下のフローチャートでは特に示していないが、図４に示した入出力テーブルにレンジ情報（最大値と最小値）を設定するフィールド（列）を設け、上記フローチャートでレンジ範囲のチェックを行うように構成してもよい。また、ＹＭＤ３，ＹＭＤ４の場合には和暦の範囲もチェックするように構成してもよい。
【０１４９】
まず、ステップＳ８０１において、「入力データが整形されている場合に、整形前の状態にもどすＪａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成する。なお、この処理は後述する図２０，図２１に示すデータ整形表示用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード生成処理と逆の処理であるため、ここでは詳細な説明は省略する。
【０１５０】
次に、ステップＳ８０２において、作業領域に格納された入出力テーブルよりデータ項目を１レコード取得し、データ項目内の形式（列５）がＹＭＤ１〜４のいずれかであるか否かを判定し、ＹＭＤ１〜４のいずれかであった場合には、ステップＳ８０３において、「入力データから該当項目のデータを取得し、データの範囲（月，日等）をチェックし、該エラーがあった場合にエラー内容を作業領域に保存するＪａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成する。
【０１５１】
一方、ステップＳ８０２で、データ項目内の形式（列５）がＹＭＤ１〜４のいずれでもない場合には、ステップＳ８０４において、データ項目内の形式（列５）がＭＯＮＥＹ１〜４，ＮＵＭ１，２のいずれかであるか否かを判定し、ＭＯＮＥＹ１〜４，ＮＵＭ１，２のいずれかであった場合には、ステップＳ８０５において、「入力データから該当項目のデータを取得し、該データが数値であるかをチェックし、エラーがあった場合にエラー内容を作業領域に保存するＪａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成する。
【０１５２】
次に、ステップＳ８０６において、ステップＳ８０１〜Ｓ８０５の処理を既に全データ項目に対して実行したか否かを判定し、まだ全データ項目に対して実行していないと判定した場合には、ステップＳ８０１の処理に戻る。
【０１５３】
一方、ステップＳ８０６で、ステップＳ８０１〜Ｓ８０５の処理を既に全データ項目に対して実行したと判定した場合には、ステップＳ８０７に進む。
【０１５４】
そして、ステップＳ８０７において、「チェックでエラーが無かった場合にのみ、データ項目画面の入力情報をサーブレットに送信するＪａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、処理を終了して図１８のフローチャートに戻る。
【０１５５】
次に、ステップＳ８０８において、「チェックでエラーが有った場合にのみ、エラーメッセージを表示するウィンドウを開くＪａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、処理を終了して図１８のフローチャートに戻る。
【０１５６】
以上の処理により生成されるプログラムコードにより、各データ項目に対応する入力データに対して各データ項目の属性に応じたチェック処理をサーバ側で行うことが可能となる。
【０１５７】
図２０，図２１は、本発明の第９の制御処理手順の一例を示すフローチャートであり、図１８のステップＳ７０３に示したデータ整形表示用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ生成処理に対応する。なお、Ｓ９０１〜Ｓ９２７は各ステップを示す。
【０１５８】
まず、ステップＳ９０１において、作業領域に格納された入出力テーブルよりデータ項目を１レコード取得し、データ項目内の形式（列５）がＣＯＤＥであるか否かを判定し、ＣＯＤＥである場合には、ステップＳ９０２において「ＣＯＤＥの整形表示をする（表示すべきデータ群から該当項目のデータを取得し、１文字毎に分割し、それぞれ該当テキストボックスに表示する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１５９】
次に、ステップＳ９０１で、データ項目内の形式（列５）がＣＯＤＥでない場合には、ステップＳ９０３において、データ項目内の形式（列５）がＹＭＤ１であるか否かを判定し、ＹＭＤ１である場合には、ステップＳ９０４において「ＹＭＤ１の整形表示をする（表示すべきデータ群から該当項目のデータを取得し、１文字毎に分割し、それぞれ該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１６０】
一方、ステップＳ９０３で、データ項目内の形式（列５）がＹＭＤ１でない場合には、ステップＳ９０５において、データ項目内の形式（列５）がＹＭＤ２であるか否かを判定し、ＹＭＤ２である場合には、ステップＳ９０６において「ＹＭＤ２の整形表示をする（表示すべきデータ群から該当項目のデータを取得し、西暦データ、月データ、日データに分割し、それぞれの前０を削除し、西暦データ，‘年’，月データ，‘月’，日データ，‘日’を結合して該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１６１】
一方、ステップＳ９０５で、データ項目内の形式（列５）がＹＭＤ２でない場合には、ステップＳ９０７において、データ項目内の形式（列５）がＹＭＤ３であるか否かを判定し、ＹＭＤ３である場合には、ステップＳ９０８において「ＹＭＤ３の整形表示をする（表示すべきデータ群から該当項目のデータを取得し、１文字毎に分割し、それぞれ該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１６２】
一方、ステップＳ９０７で、データ項目内の形式（列５）がＹＭＤ３でない場合には、ステップＳ９０９において、データ項目内の形式（列５）がＹＭＤ４であるか否かを判定し、ＹＭＤ４である場合には、ステップＳ９１０において「ＹＭＤ４の整形表示をする（表示すべきデータ群から該当項目のデータを取得し、和暦データ、月データ、日データに分割し、前０を削除し、‘平成’，和暦データ，‘年’，月データ，‘月’，日データ，‘日’を結合して該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１６３】
一方、ステップＳ９０９で、データ項目内の形式（列５）がＹＭＤ４でない場合には、ステップＳ９１１において、データ項目内の形式（列５）がＮＡＭＥであるか否かを判定し、ＮＡＭＥである場合には、ステップＳ９１２において「ＮＡＭＥの整形表示をする（表示すべきデータ群から該当項目のデータを取得し、該データを該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１６４】
一方、ステップＳ９１１で、データ項目内の形式（列５）がＮＡＭＥでない場合には、ステップＳ９１３において、データ項目内の形式（列５）がＺＩＰであるか否かを判定し、ＺＩＰである場合には、ステップＳ９１４において「ＺＩＰの整形表示をする（表示すべきデータ群から該当項目のデータを取得し、１文字毎に分割し、それぞれ該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１６５】
一方、ステップＳ９１３で、データ項目内の形式（列５）がＺＩＰでない場合には、ステップＳ９１５において、データ項目内の形式（列５）がＭＯＮＥＹ１であるか否かを判定し、ＭＯＮＥＹ１である場合には、ステップＳ９１６において「ＭＯＮＥＹ１の整形表示をする（表示すべきデータ群から該当項目のデータを取得し、３桁ごとにカンマ（，）を挿入し、データが負の場合にのみデータの最後尾にハイフン（−）、先頭に‘￥’を付加して該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１６６】
一方、ステップＳ９１５で、データ項目内の形式（列５）がＭＯＮＥＹ１でない場合には、ステップＳ９１７において、データ項目内の形式（列５）がＭＯＮＥＹ２であるか否かを判定し、ＭＯＮＥＹ２である場合には、ステップＳ９１８において「ＭＯＮＥＹ２の整形表示をする（表示すべきデータ群から該当項目のデータを取得し、３桁ごとにカンマ（，）を挿入し、データが負の場合にのみデータの先頭にハイフン（−）、先頭に‘￥’を付加して該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１６７】
一方、ステップＳ９１７で、データ項目内の形式（列５）がＭＯＮＥＹ２でない場合には、ステップＳ９１９において、データ項目内の形式（列５）がＭＯＮＥＹ３であるか否かを判定し、ＭＯＮＥＹ３である場合には、ステップＳ９２０において「ＭＯＮＥＹ３の整形表示をする（表示すべきデータ群から該当項目のデータを取得し、３桁ごとにカンマ（，）を挿入し、データが負の場合にのみデータの最後尾にハイフン（−）を付加して該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１６８】
一方、ステップＳ９１９で、データ項目内の形式（列５）がＭＯＮＥＹ３でない場合には、ステップＳ９２１において、データ項目内の形式（列５）がＭＯＮＥＹ４であるか否かを判定し、ＭＯＮＥＹ４である場合には、ステップＳ９２２において「ＭＯＮＥＹ４の整形表示をする（表示すべきデータ群から該当項目のデータを取得し、３桁ごとにカンマ（，）を挿入し、データが負の場合にのみデータの先頭にハイフン（−）を付加して該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１６９】
一方、ステップＳ９２１で、データ項目内の形式（列５）がＭＯＮＥＹ４でない場合には、ステップＳ９２３において、データ項目内の形式（列５）がＮＵＭ１であるか否かを判定し、ＮＵＭ１である場合には、ステップＳ９２４において「ＮＵＭ１の整形表示をする（表示すべきデータ群から該当項目のデータを取得し、３桁ごとにカンマ（，）を挿入して該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１７０】
一方、ステップＳ９２３で、データ項目内の形式（列５）がＮＵＭ１でない場合には、ステップＳ９２５において、データ項目内の形式（列５）がＮＵＭ２であるか否かを判定し、ＮＵＭ２である場合には、ステップＳ９２６において「ＮＵＭ２の整形表示をする（表示すべきデータ群から該当項目のデータを取得して該当テキストボックスに出力する）Ｊａｖａ（登録商標）Ｓｃｒｉｐｔコード」をＪＳＰファイル内に生成し、ステップＳ９２７に進む。
【０１７１】
一方、ステップＳ９２５で、データ項目内の形式（列５）がＮＵＭ２でない場合には、ステップＳ９２７において、全データ項目についてステップＳ９０１〜Ｓ９２６の処理を終了したか否かを判定し、まだ全データ項目について終了していないと判定した場合には、ステップＳ９０１に戻り、一方、既に全データ項目について終了したと判定した場合には、処理を終了して図１８のフローチャートに戻る。
【０１７２】
以上の処理により生成されるプログラムコードにより、各データ項目に対応するデータを各データ項目の属性に応じた出力形式で出力処理することが可能となる。
【０１７３】
図２２，図２３は、本発明の第１０の制御処理手順の一例を示すフローチャートであり、図１８のステップＳ７０６に示したデータ項目画面表示コード生成処理に対応する。なお、Ｓ１００１〜Ｓ１０２８は各ステップを示す。
【０１７４】
まず、ステップＳ１００１において、作業領域に格納された入出力テーブルよりデータ項目を１レコード取得し、データ項目内の形式（列５）がＣＯＤＥであるか否かを判定し、ＣＯＤＥである場合には、ステップＳ１００２において「補足表示ラベルとしてのデータ項目名と、ＣＯＤＥのテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、１文字分のサイズのテキストボックスを桁数（列８）分生成するコード」を含む。
【０１７５】
次に、ステップＳ１００１で、データ項目内の形式（列５）がＣＯＤＥでない場合には、ステップＳ１００３において、データ項目内の形式（列５）がＹＭＤ１であるか否かを判定し、ＹＭＤ１である場合には、ステップＳ１００４において「補足表示ラベルとしてのデータ項目名と、ＹＭＤ１のテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、１文字分のサイズのテキストボックスを４つ生成し、‘年’を表示し、サイズ１のテキストボックスを２つ生成し、‘月’を表示し、サイズ１のテキストボックスを２つ生成し、‘日’を表示し、改行するコード」を含む。
【０１７６】
一方、ステップＳ１００３で、データ項目内の形式（列５）がＹＭＤ１でない場合には、ステップＳ１００５において、データ項目内の形式（列５）がＹＭＤ２であるか否かを判定し、ＹＭＤ２である場合には、ステップＳ１００６において「補足表示ラベルとしてのデータ項目名と、ＹＭＤ２のテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、「桁数＋３（＝１１）」文字分のサイズのテキストボックスを１つ生成するコード」を含む。
【０１７７】
一方、ステップＳ１００５で、データ項目内の形式（列５）がＹＭＤ２でない場合には、ステップＳ１００７において、データ項目内の形式（列５）がＹＭＤ３であるか否かを判定し、ＹＭＤ３である場合には、ステップＳ１００８において「補足表示ラベルとしてのデータ項目名と、ＹＭＤ３のテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、和暦を表示し、１文字分のサイズのテキストボックスを２つ生成し、‘年’を表示し、サイズ１のテキストボックスを２つ生成し、‘月’を表示し、サイズ１のテキストボックスを２つ生成し、‘日’を表示し、改行するコード」を含む。
【０１７８】
一方、ステップＳ１００７で、データ項目内の形式（列５）がＹＭＤ３でない場合には、ステップＳ１００９において、データ項目内の形式（列５）がＹＭＤ４であるか否かを判定し、ＹＭＤ４である場合には、ステップＳ１０１０において「補足表示ラベルとしてのデータ項目名と、ＹＭＤ４のテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、和暦を表示し、「桁数＋５（＝１３）」文字分のサイズのテキストボックスを１つ生成するコード」を含む。
【０１７９】
一方、ステップＳ１００９で、データ項目内の形式（列５）がＹＭＤ４でない場合には、ステップＳ１０１１において、データ項目内の形式（列５）がＮＡＭＥであるか否かを判定し、ＮＡＭＥである場合には、ステップＳ１０１２において「補足表示ラベルとしてのデータ項目名と、ＮＡＭＥのテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、桁数文字分のサイズのテキストボックスを１つ生成するコード」を含む。
【０１８０】
一方、ステップＳ１０１１で、データ項目内の形式（列５）がＮＡＭＥでない場合には、ステップＳ１０１３において、データ項目内の形式（列５）がＺＩＰであるか否かを判定し、ＺＩＰである場合には、ステップＳ１０１４において「補足表示ラベルとしてのデータ項目名と、ＺＩＰのテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、サイズ１のテキストボックスを３つ生成し、‘−’を表示し、１文字分のサイズのテキストボックスを４つ生成するコード」を含む。
【０１８１】
一方、ステップＳ１０１３で、データ項目内の形式（列５）がＺＩＰでない場合には、ステップＳ１０１５において、データ項目内の形式（列５）がＭＯＮＥＹ１であるか否かを判定し、ＭＯＮＥＹ１である場合には、ステップＳ１０１６において「補足表示ラベルとしてのデータ項目名と、ＭＯＮＥＹ１のテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、「桁数＋（桁数／３の整数部分）＋１」文字分のサイズのテキストボックスを１つ生成するコード」を含む。
【０１８２】
一方、ステップＳ１０１５で、データ項目内の形式（列５）がＭＯＮＥＹ１でない場合には、ステップＳ１０１７において、データ項目内の形式（列５）がＭＯＮＥＹ２であるか否かを判定し、ＭＯＮＥＹ２である場合には、ステップＳ１０１８において「補足表示ラベルとしてのデータ項目名と、ＭＯＮＥＹ２のテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてのデータ項目名を表示し、「桁数＋（桁数／３の整数部分）＋１」文字分のサイズのテキストボックスを１つ生成するコード」を含む。
【０１８３】
一方、ステップＳ１０１７で、データ項目内の形式（列５）がＭＯＮＥＹ２でない場合には、ステップＳ１０１９において、データ項目内の形式（列５）がＭＯＮＥＹ３であるか否かを判定し、ＭＯＮＥＹ３である場合には、ステップＳ１０２０において「補足表示ラベルとしてのデータ項目名と、ＭＯＮＥＹ３のテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてのデータ項目名を表示し、「桁数＋（桁数／３の整数部分）」文字分のサイズのテキストボックスを１つ生成するコード」を含む。
【０１８４】
一方、ステップＳ１０１９で、データ項目内の形式（列５）がＭＯＮＥＹ３でない場合には、ステップＳ１０２１において、データ項目内の形式（列５）がＭＯＮＥＹ４であるか否かを判定し、ＭＯＮＥＹ４である場合には、ステップＳ１０２２において「補足表示ラベルとしてのデータ項目名と、ＭＯＮＥＹ４のテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、「桁数＋（桁数／３の整数部分）」文字分のサイズのテキストボックスを１つ生成するコード」を含む。
【０１８５】
一方、ステップＳ１０２１で、データ項目内の形式（列５）がＭＯＮＥＹ４でない場合には、ステップＳ１０２３において、データ項目内の形式（列５）がＮＵＭ１であるか否かを判定し、ＮＵＭ１である場合には、ステップＳ１０２４において「補足表示ラベルとしてのデータ項目名と、ＮＵＭ１のテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、「桁数＋（桁数／３の整数部分）−１」文字分のサイズのテキストボックスを１つ生成するコード」を含む。
【０１８６】
一方、ステップＳ１０２３で、データ項目内の形式（列５）がＮＵＭ１でない場合には、ステップＳ１０２５において、データ項目内の形式（列５）がＮＵＭ２であるか否かを判定し、ＮＵＭ２である場合には、ステップＳ１０２６において「補足表示ラベルとしてのデータ項目名と、ＮＵＭ２のテキストボックス（入力項目）を生成するコード」をＪＳＰファイル内に生成し、ステップＳ１０２７に進む。なお、このコードは、「テキストプロパティをデータ項目内のフォント（列６），フォントサイズ（列７）に設定し、該設定に基づき、補足表示ラベルとしてデータ項目名を表示し、桁数文字分のサイズのテキストボックスを１つ生成するコード」を含む。
【０１８７】
一方、ステップＳ１０２５で、データ項目内の形式（列５）がＮＵＭ２でない場合には、ステップＳ１０２７において、全データ項目についてステップＳ１００１〜Ｓ１０２６の処理を終了したか否かを判定し、まだ全データ項目について終了していないと判定した場合には、ステップＳ１００１に戻り、一方、既に全データ項目について終了したと判定した場合には、ステップＳ１０２８に進む。
【０１８８】
ステップＳ１０２８において、「「登録ボタン」を生成し、この「登録ボタン」がクリックされた場合にデータチェック送信用Ｊａｖａ（登録商標）Ｓｃｒｉｐｔが起動されるように設定するコード」をＪＳＰファイル内に生成し、処理を終了して図１８のフローチャートに戻る。
【０１８９】
なお、上記フローチャートでは示していないが、常に又は所定の設定があった場合のみ、各データ項目に対応するテキストボックスに該テキストボックスのサイズに相当する文字数の入力があると次のテキストボックスへカーソルを自動移動するためのＪａｖａ（登録商標）Ｓｃｒｉｐｔコードを含ませるように、上記データ項目画面表示コードを生成するように構成してもよい。
【０１９０】
これにより、さらに、項目の入力抜け等の入力ミスを防止したデータ項目画面を有するウェブアプリケーションを容易に生成することができる。
【０１９１】
以上の処理により生成されるプログラムコードにより、各データ項目に対応するデータを各データ項目の属性に応じた入力形式で入力処理することが可能となる。
【０１９２】
なお、本発明のプログラム生成装置と該プログラム生成装置により生成されたウェブアプリケーションを実行するアプリケーションサーバを実装したサーバ装置とが同一の装置であってもよいし、異なる装置であってもよい。
【０１９３】
また、本発明のプログラム生成装置により生成されたウェブアプリケーションを実行するアプリケーションサーバを実装したサーバ装置とデータベースシステムを実装したサーバ装置とが同一の装置であってもよいし、異なる装置であってもよい。
【０１９４】
この場合、ユーザは、プログラム生成装置に、データベースシステムを実装したサーバ装置を指定する（生成モードでの実行時にユーザにより入力、又は予めユーザにより入力しておき外部記憶装置１０４上に記憶しておく）。そして、プログラム生成装置は、該指定情報を読み出して、該指定されたサーバ装置のデータベースシステムに対してデータベースを作成（クリエイト）するコマンドを発行し、該データベースへのアクセスを制御するＢｅａｎコード１１４（この場合はＥＪＢ（Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ（登録商標）  Ｂｅａｎｓ））を生成する。また、プログラム生成装置は、アプリケーションサーバが実装されるサーバ装置の記憶装置（生成先）が指定されている場合、該指定された生成先にＪＳＰコード１１２，サーブレット（Ｓｅｒｖｌｅｔ）コード１１３，Ｂｅａｎコード１１４を生成するものとする。
【０１９５】
さらに、上記各実施形態では、ウェブアプリケーションサーバ上で動作するウェブアプリケーションプログラムを生成するプログラム生成装置について説明したが、ミドルウェアとしてウェブアプリケーションサーバの代わりに、ノーツ（商品名）・アプリケーションサーバやドミノ（商品名）・アプリケーションサーバ等のグループウェアを利用したアプリケーションを生成するように構成してもよい。
【０１９６】
この場合、サーブレットの代わりに、エージェントと呼ばれるＪａｖａ（登録商標）で作成されたプログラムをプログラム生成装置で生成し、グループウェアのアプリケーションサーバに配置するものとする。また、ＪＳＰにより表示していた入出力画面は、フォームと呼ばれるコンテンツとして、プログラム生成装置で生成して、グループウェアのデータベースに登録しておく。また、Ｂｅａｎは上記実施形態と同一のものを使用可能である。
【０１９７】
また、本発明のプログラム生成装置が生成するアプリケーションは、ＰＤＡ（携帯情報端末）や携帯電話といった携帯端末をクライアントとするアプリケーションとしてもよい。
【０１９８】
そして、クライアントとの間のプロトコルもＨＴＴＰのみではなく、ＷＡＰ（Ｗｉｒｅｌｅｓｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）等とし、ＪＳＰにより生成されるコードも、ＨＴＭＬに限られるものではなく、ＸＭＬ，ＷＭＬ等のその他の構造化言語とするような、プログラムを、本発明のプログラム生成装置が生成するように構成してもよい。
【０１９９】
また、上記各実施形態では、プログラム生成装置が、データベースへのアクセスを行うためのＢｅａｎ，各データ項目の入出力画面を選択された画面パターンで表示するためのＪＳＰ、入出力画面からの入力情報を取得して該入力情報に基づいてＢｅａｎ，ＪＳＰの実行を制御してアプリケーション全体を統括制御するサーブレットから構成されるウェブアプリケーションを生成する場合について説明したが、上記Ｂｅａｎ，ＪＳＰの機能をも含んだサーブレットのみ、上記Ｂｅａｎの機能を含んだサーブレットとＪＳＰのみ、又は、上記ＪＳＰの機能を含んだサーブレットとＢｅａｎのみ、から構成されるウェブアプリケーションを生成するように構成してもよいことはいうまでもない。
【０２００】
さらに、上記実施形態では、生成するプログラムをＪａｖａ（登録商標）を用いたものとして説明したが、Ｊａｖａ（登録商標）に限られるものではなく、どのようなプログラム言語を用いたプログラムコードを生成してもよいし、サーブレットプログラムでなくＣＧＩプログラム等の他のサーバサイドプログラムを生成するように構成してもよい。さらに、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ以外のスクリプト言語を用いるように生成してもよい。
【０２０１】
また、本実施形態では、各データ項目の定義に基づいて、各データ項目に対応するデータを格納可能なデータベースを作成し、各データ項目の属性情報に基づいて、各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理するプログラムコード，各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行うプログラムコード，チェック処理の後に前記各データ項目に対応するデータをデータベースに登録処理するプログラムコード，各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理するプログラムコードを作成する構成について示したが、上記いずれかのプログラムコードのみを生成するように構成してもよいし、データベースの作成処理は行わない構成としてもよい。
【０２０２】
また、上記チェック処理を行うプログラムコードは、サーバ側で行うプログラムコードであっても良いし、クライアント側で行うプログラムコードであっても良いし、サーバ側及びクライアント側の双方で行うプログラムコードであっても良い。
【０２０３】
なお、上記実施形態で示した各変形例の全て又はいずれか複数を組み合わせた構成や上記実施形態の一部の構成のみを用いた構成も全て本発明に含まれるものである。
【０２０４】
なお、図４に示した入出力テーブル１０９のデータの構成及びその内容は図４に示した例に限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０２０５】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０２０６】
以上示したように、本実施形態によれば、入出力テーブル中の当該データ項目における、形式と桁数で構成された属性情報に基づいて、入出力テーブル中の当該データ項目における、入力項目（テキストボックス）を整形表示するプログラムコード、入力されたデータのチェック処置、チェックしたデータの格納処理プログラムコード、入力データを変換表示するためのプログラムコードをそれぞれ自動生成することにより、データ項目のデータベースの配置とデータ項目間の関係を記述した業務仕様と、属性情報（データ項目の形式と桁数で構成された定義域フィールドの内容）から、入力すべき項目データの属性に応じた入力形式で入力処理するという複雑なプログラムコード，入力された項目データ毎に該項目データの属性に応じてチェック処理するという複雑なプログラムコード，出力すべき項目データの属性に応じた出力形式で出力処理するという複雑なプログラムコードを、プログラミングの知識のないユーザであっても、業務仕様の枠組みの中から容易に生成することができ、誤入力／誤登録を未然に防止可能な入力支援機能を有するウェブアプリケーションの開発作業，業務仕様の変更に起因する変更保守作業を格段に軽減でき、開発期間を格段に短縮することができる。
【０２０７】
なお、本実施形態で示したプログラム生成装置は、図４に示した入出力テーブルに応じたＷｅｂアプリケーションそのものを生成するものであり、従来の技術の欄に示した特許文献１に示されるような、汎用的に作られたサーバサイドプログラムが、実行時に、予めサーバに保存されているチェックパターンファイルを、読み出し、該チェックパターンに基づいてデータをチェックし、該チェック済みのデータを格納するものとは大きく異なるものである。
【０２０８】
それゆえに、本実施形態のプログラム生成装置では、上記特許文献１で示される汎用的なサーバサイドプログラムの抱える問題点（汎用的であるがゆえに最適化されておらず、チェックパターンも実行時に読み出されるため、実行速度が遅くなってしまう等の問題点（多数のクライアントが同時にアクセスする可能性のあるサーバサイドプログラムでは深刻な問題点である））を解決した業務仕様に応じて最適化されたウェブアプリケーションを生成することができる。
【０２０９】
また、特許文献１で示される入力データ取扱方法では、入力項目とチェックパターンとを対応させるチェック情報をクライアントから送られてくるデータに埋め込むため、該チェク情報がクライアント上で改竄されてしまうとチェック機能が働かなくなってしまい、不正なデータがチェックをすり抜けて格納されてしまうという致命的な問題点も抱えているが、本実施形態で示したプログラム生成装置は、サーバサイドで独立して入力チェックが可能なプログラムを生成するため、上記特許文献１の抱える致命的な欠点も解決するものである。
【０２１０】
以上示した点は、本実施形態で示したプログラム生成装置と、上記特許文献１に記載されるような汎用的なサーバサイドプログラムとの相違を考察する上で、特に留意すべき事項と考える。
【０２１１】
以下、図２４に示すメモリマップを参照して本発明に係るプログラム生成装置で読み出し可能なデータ処理プログラムの構成について説明する。
【０２１２】
図２４は、本発明に係るプログラム生成装置で読み出し可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０２１３】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０２１４】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０２１５】
本実施形態における図３，図１３，図１４，図１５，図１６，図１７，図１８，図１９，図２０，図２１，図２２，図２３に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０２１６】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０２１７】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０２１８】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０２１９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２２０】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２２１】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２２２】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２２３】
【発明の効果】
以上説明したように、本発明によれば、予め作成された複数のデータ項目の定義情報と前記各データ項目の属性情報に基づいて、「前記各データ項目に対応するデータを前記各データ項目の属性に応じた入力形式で入力処理する第１のプログラムコード」を生成するので、入力すべき項目データの属性に応じた入力形式で入力処理するという複雑なプログラムコードを、プログラミングの知識のないユーザであっても、業務仕様の枠組みの中から容易に生成することができる。
【０２２４】
また、「前記各データ項目に対応する入力データに対して前記各データ項目の属性に応じたチェック処理を行う第２のプログラムコード」を生成するので、入力された項目データ毎に該項目データの属性に応じてチェック処理するという複雑なプログラムコードを、プログラミングの知識のないユーザであっても、業務仕様の枠組みの中から容易に生成することができる。
【０２２５】
さらに、「前記各データ項目に対応するデータを前記各データ項目の属性に応じた出力形式で出力処理する第３のプログラムコード」を生成するので、出力すべき項目データの属性に応じた出力形式で出力処理するという複雑なプログラムコードを、プログラミングの知識のないユーザであっても、業務仕様の枠組みの中から容易に生成することができる。
【０２２６】
従って、誤入力／誤登録を未然に防止可能な入力支援機能を有するウェブアプリケーションの開発作業，業務仕様の変更に起因する変更保守作業を格段に軽減でき、開発期間を格段に短縮することができる等の効果を奏する。
【図面の簡単な説明】
【図１】本発明の一実施形態を示すプログラム生成装置の構成を示すブロック図である。
【図２】図１に示したコード生成部によって生成したサーブレット、ＪＳＰ、およびＢｅａｎを利用したウェブアプリケーションシステムの全体構成の一例を示す図である。
【図３】本発明のプログラム生成装置における第１の制御処理手順の一例を示すフローチャートである。
【図４】本発明のプログラム生成装置における業務仕様（入出力テーブル）について説明する模式図である。
【図５】図４に示した入出力テーブルの列５の入力表示形式の種別を説明する模式図である。
【図６】図４に示した入出力テーブルの列５の入力表示形式に従った整形表示を説明するための画面遷移図である。
【図７】本発明のプログラム生成装置における業務仕様入力画面の一例を示す模式図である。
【図８】本発明のプログラム生成装置における業務仕様入力画面の一例を示す模式図である。
【図９】本発明のプログラム生成装置におけるプログラム生成処理の概念（処理の構成）を示す模式図である。
【図１０】本発明のプログラム生成装置において作成されるアプリケーションにより実行されるデータ登録処理について説明するフローチャートである。
【図１１】本実施形態のプログラム生成装置により生成されたウェブアプリケーションにおける項目入力画面の一例を示す模式図である。
【図１２】本実施形態のプログラム生成装置により生成されたウェブアプリケーションにおける項目入力画面の一例を示す模式図である。
【図１３】本発明の第２の制御処理手順の一例を示すフローチャートである。
【図１４】本発明の第３の制御処理手順の一例を示すフローチャートである。
【図１５】本発明の第４の制御処理手順の一例を示すフローチャートである。
【図１６】本発明の第５の制御処理手順の一例を示すフローチャートである。
【図１７】本発明の第６の制御処理手順の一例を示すフローチャートである。
【図１８】本発明の第７の制御処理手順の一例を示すフローチャートである。
【図１９】本発明の第８の制御処理手順の一例を示すフローチャートである。
【図２０】本発明の第９の制御処理手順の一例を示すフローチャートである。
【図２１】本発明の第９の制御処理手順の一例を示すフローチャートである。
【図２２】本発明の第１０の制御処理手順の一例を示すフローチャートである。
【図２３】本発明の第１０の制御処理手順の一例を示すフローチャートである。
【図２４】本発明に係るプログラム生成装置で読み出し可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
１０１  入力装置
１０２  表示装置
１０３  処理装置（ＣＰＵ，ＲＡＭ，ＲＯＭ）
１０４  外部記憶装置（ハードディスク）
１０５  画面制御部
１１６  業務仕様記述部
１０６  仕様解析部
１０７  コード生成部
１０８  全体制御部
１０９  入出力テーブル
１１２  ＪＳＰコード
１１３  Ｓｅｒｖｌｅｔコード
１１４  Ｂｅａｎコード
【図１】
2005055951.tif 000003
【図２】
2005055951.tif 000004
【図３】
2005055951.tif 000005
【図４】
2005055951.tif 000006
【図５】
2005055951.tif 000007
【図６】
2005055951.tif 000008
【図７】
2005055951.tif 000009
【図８】
2005055951.tif 000010
【図９】
2005055951.tif 000011
【図１０】
2005055951.tif 000012
【図１１】
2005055951.tif 000013
【図１２】
2005055951.tif 000014
【図１３】
2005055951.tif 000015
【図１４】
2005055951.tif 000016
【図１５】
2005055951.tif 000017
【図１６】
2005055951.tif 000018
【図１７】
2005055951.tif 000019
【図１８】
2005055951.tif 000020
【図１９】
2005055951.tif 000021
【図２０】
2005055951.tif 000022
【図２１】
2005055951.tif 000023
【図２２】
2005055951.tif 000024
【図２３】
2005055951.tif 000025
【図２４】
2005055951.tif 000026