(57)【特許請求の範囲】
【請求項１】
ウェブアプリケーションプログラムを生成するプログラム生成装置であって、
複数のデータ項目のデータベースへの配置と、前記複数のデータ項目のうちいずれのデータ項目をどのように集計表に配置するかを指定する集計表配置情報と前記集計表の表形式の種別を示す集計表種別と前記複数のデータ項目のうちの１又は複数のいずれのデータ項目の単位でいずれのデータ項目のデータを集計するかを指定する集計単位情報とを指定する集計項目指定情報と、を含む業務仕様情報を記憶するための記憶手段と、
前記記憶手段に記憶される前記業務仕様情報に基づいて、「データベースから各データ項目のデータを取得する第１のプログラムコード」を生成する第１の生成手段と、
前記集計項目指定情報に基づいて決定される順序で前記データ項目の階層レベルを決定し、「前記第１のプログラムコードにより取得したデータのうち前記集計単位情報で集計指定されたデータ項目のデータを前記指定された１又は複数のデータ項目の単位でそれぞれ集計し、前記取得したデータと前記各集計結果とを前記階層レベルに従って前記集計表種別に対応する表形式に配置した集計表を生成しウェブブラウザに表示するプログラムコードを含む第２のプログラムコード」を生成する第２の生成手段と、
「ウェブブラウザから送信されたパラメータを受け取り前記第２のプログラムコードを呼び出すための第３のプログラムコード」を生成する第３の生成手段と、
前記第１の生成手段による処理、前記第２の生成手段による処理、および前記第３の生成手段による処理を実行すべく制御する制御手段と、
を有することを特徴とするプログラム生成装置。
【請求項２】
前記第２の生成手段は、「前記第２のプログラムコードが実行された際に生成される集計表上で前記データ項目のタイトルが指示された場合に該データ項目をキーとして前記集計表上に配置されているデータの並び替えを行うプログラムコード」を含む前記第２のプログラムコードを生成することを特徴とする請求項１に記載のプログラム生成装置。
【請求項３】
前記業務仕様情報は、前記生成される集計表上でそのデータ項目のタイトルが指示された場合に該データ項目をキーとして前記集計表上に配置されているデータの並び替えを行うデータ項目を示すソートデータ項目を決定するための情報を含むものであり、
前記第２の生成手段は、前記業務仕様情報に基づいて、前記ソートデータ項目を決定し、「前記第２のプログラムコードが実行された際に生成される集計表上で前記ソートデータ項目のタイトルが指示された場合に該ソートデータ項目をキーとして前記集計表上に配置されているデータの並び替えを行うプログラムコード」を含む前記第２のプログラムコードを生成することを特徴とする請求項１に記載のプログラム生成装置。
【請求項４】
ウェブアプリケーションプログラムを生成するコンピュータにおけるプログラム生成方法であって、
前記コンピュータの記憶手段に、複数のデータ項目のデータベースへの配置と、前記複数のデータ項目のうちいずれのデータ項目をどのように集計表に配置するかを指定する集計表配置情報と前記集計表の表形式の種別を示す集計表種別と前記複数のデータ項目のうちの１又は複数のいずれのデータ項目の単位でいずれのデータ項目のデータを集計するかを指定する集計単位情報とを指定する集計項目指定情報と、を含む業務仕様情報を記憶させておき、
前記コンピュータが、前記業務仕様情報に基づいて、前記業務仕様情報に基づいて、「データベースから各データ項目のデータを取得する第１のプログラムコード」を生成する第１の生成ステップと、
前記コンピュータが、前記集計項目指定情報に基づいて決定される順序で前記データ項目の階層レベルを決定し、「前記第１のプログラムコードにより取得したデータのうち前記集計単位情報で集計指定されたデータ項目のデータを前記指定された１又は複数のデータ項目の単位でそれぞれ集計し、前記取得したデータと前記各集計結果とを前記階層レベルに従って前記集計表種別に対応する表形式に配置した集計表を生成しウェブブラウザに表示するプログラムコードを含む第２のプログラムコード」を生成する第２の生成ステップと、
前記コンピュータが、「ウェブブラウザから送信されたパラメータを受け取り前記第２のプログラムコードを呼び出すための第３のプログラムコード」を生成する第３の生成ステップと、
前記コンピュータが、前記第１の生成ステップ、前記第２の生成ステップ、および前記第３の生成ステップを実行すべく制御する制御ステップと、
を有することを特徴とするプログラム生成方法。
【請求項５】
ウェブアプリケーションプログラムを生成するコンピュータを、
複数のデータ項目のデータベースへの配置と、前記複数のデータ項目のうちいずれのデータ項目をどのように集計表に配置するかを指定する集計表配置情報と前記集計表の表形式の種別を示す集計表種別と前記複数のデータ項目のうちの１又は複数のいずれのデータ項目の単位でいずれのデータ項目のデータを集計するかを指定する集計単位情報とを指定する集計項目指定情報と、を含む業務仕様情報を記憶するための記憶手段、
前記記憶手段に記憶される前記業務仕様情報に基づいて、「データベースから各データ項目のデータを取得する第１のプログラムコード」を生成する第１の生成手段、
前記集計項目指定情報に基づいて決定される順序で前記データ項目の階層レベルを決定し、「前記第１のプログラムコードにより取得したデータのうち前記集計単位情報で集計指定されたデータ項目のデータを前記指定された１又は複数のデータ項目の単位でそれぞれ集計し、前記取得したデータと前記各集計結果とを前記階層レベルに従って前記集計表種別に対応する表形式に配置した集計表を生成しウェブブラウザに表示するプログラムコードを含む第２のプログラムコード」を生成する第２の生成手段、
「ウェブブラウザから送信されたパラメータを受け取り前記第２のプログラムコードを呼び出すための第３のプログラムコード」を生成する第３の生成手段、
前記第１の生成手段による処理、前記第２の生成手段による処理、および前記第３の生成手段による処理を実行すべく制御する制御手段として機能させるためのプログラム。
【請求項６】
請求項５に記載されたプログラムをコンピュータ読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集計表とそれを制御するウェブアプリケーションの一連のプログラムコードを生成するプログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体に関するものである。
【背景技術】
【０００２】
従来、アプリケーションにおける集計表作成ではデータテーブルに蓄えられた情報のうち、特定の情報を抽出することをねらった、特定観点のデータ集計を行い、集計表を作成する専用プログラムが提供されていた。
【０００３】
しかし、その様な手段ではデータテーブルの仕様変更や必要とされる情報の観点の変化の度に、新しく集計を行い集計表を作成するプログラムを作成しなければならなくなり、時間とコストの負担が大きいという問題があった。
【０００４】
この問題に対し特開２０００−３１５２４２号公報に示される「集計表作成装置および集計表作成プログラム記憶媒体」では、複数のＤＢの項目を読みとり、その項目を画面上に集計表示し、ユーザーが集計表の項目として必要とする項目を選択し、どのような処理を行わせるか指示することで、データテーブルのデータから値を集計し、集計表として画面に表示するという技術が提示されている。
【０００５】
このように集計表の作成を単純化することで生産性が向上し、データテーブルの仕様変更や情報の観点の変化に柔軟に対応することが出来るようになった。
【特許文献１】特開２０００−３１５２４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に示される従来の集計表作成装置は、集計表を作る専用アプリケーションを本来の業務アプリケーションとは別に用意するものであり、集計表の定義は業務アプリケーションとは別に定義しなくてはならず、非常に煩雑であった。
【０００７】
また、上記特許文献１に示される従来の集計表作成装置では、業務アプリケーションとの連携には変換・インポートプログラム等が必要となり、開発に時間がかかってしまい非効率的であるという問題点があった。
【０００８】
さらに、上記特許文献１に示される従来の集計表作成装置は、集計表のソート順変更などの単純な仕様変更があった場合には、再度、集計表の定義を行わなければならないという問題点があり、生産性、保守性、汎用性に問題がある。
【０００９】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、業務仕様の枠組みの中で集計表の生成と表示について定義し、ウェブアプリケーションプログラムのプログラムコードを自動生成できる。また、業務アプリケーションの定義と集計表の定義は同一のものを使用できるので生産性、保守性を格段に向上することができるプログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体を提供することである。
【課題を解決するための手段】
【００１０】
本発明は、ウェブアプリケーションプログラムを生成するプログラム生成装置であって、複数のデータ項目のデータベースへの配置と、前記複数のデータ項目のうちいずれのデータ項目をどのように集計表に配置するかを指定する集計表配置情報と前記集計表の表形式の種別を示す集計表種別と前記複数のデータ項目のうちの１又は複数のいずれのデータ項目の単位でいずれのデータ項目のデータを集計するかを指定する集計単位情報とを指定する集計項目指定情報と、を含む業務仕様情報を記憶するための記憶手段と、前記記憶手段に記憶される前記業務仕様情報に基づいて、「データベースから各データ項目のデータを取得する第１のプログラムコード」を生成する第１の生成手段と、前記集計項目指定情報に基づいて決定される順序で前記データ項目の階層レベルを決定し、「前記第１のプログラムコードにより取得したデータのうち前記集計単位情報で集計指定されたデータ項目のデータを前記指定された１又は複数のデータ項目の単位でそれぞれ集計し、前記取得したデータと前記各集計結果とを前記階層レベルに従って前記集計表種別に対応する表形式に配置した集計表を生成しウェブブラウザに表示するプログラムコードを含む第２のプログラムコード」を生成する第２の生成手段と、「ウェブブラウザから送信されたパラメータを受け取り前記第２のプログラムコードを呼び出すための第３のプログラムコード」を生成する第３の生成手段と、前記第１の生成手段による処理、前記第２の生成手段による処理、および前記第３の生成手段による処理を実行すべく制御する制御手段と、を有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、業務仕様の枠組みの中で集計表の生成と表示について定義し、ウェブアプリケーションプログラムのプログラムコードを自動生成できる。
【００１８】
また、ウェブアプリケーションによる集計表の生成において、その定義を業務仕様の枠組みの中で定義でき、業務アプリケーションの定義と集計表の定義は同一のものを使用できるので生産性、保守性、汎用性を格段に向上することができる。
【００１９】
さらに、生成された集計表において、項目のソートについては再度定義を変更する必要なく集計表示された画面からリアルタイムに変更できるコードが自動的に生成されるため、生産性、保守性の向上につながる。
【００２０】
また、集計表の定義に変更を加えることなく、一覧表示と集計表の切り替えが相互にでき、それらの仕組みが自動生成されるので生産性、汎用性を格段に向上することができる等の効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下、図を参照して本発明のアプリケーション開発システムについて説明する。
【００２２】
図１は、本発明の一実施形態を示すプログラム生成装置の構成を示すブロック図である。
【００２３】
図において、１０１は入力装置で、キーボードやマウス等のポインティングデバイス等に相当し、業務仕様情報（データ項目のデータベースへの配置とデータ項目間の関係、即ちあるデータがどのような条件のもとにどのようなデータから求められるかを示す情報等）の入力を行うことが可能である。
【００２４】
１０２は表示装置で、ＣＲＴ，ＬＣＤ等で構成され、業務仕様情報の入力画面や、該入力画面から入力された業務仕様情報、生成されたプログラムコード等を表示可能である。１０４はハードディスク等の外部記憶装置で、入力された業務仕様を記憶するための入出力テーブル１０９、生成されたプログラムコード（ＪＳＰコード１１２，サーブレット（Ｓｅｒｖｌｅｔ）コード１１３，Ｂｅａｎコード１１４）等を記憶するものである。
【００２５】
１０３は処理装置で、ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成され、ＣＰＵがＲＯＭ，外部記憶装置１０４又はその他の記録媒体に格納されるプログラムをＲＡＭ上にロードして実行することにより実現されるものであり、画面制御部１０５，コード生成部１０７を備える。
【００２６】
画面制御部１０５は、入力装置１０１から業務仕様情報の入力を行うために表示装置１０２の画面（不図示）を制御する業務仕様記述部１１６を有する。
【００２７】
コード生成部１０７は、入力装置１０１から入力された又は外部記憶装置１０４から読み出された業務仕様情報に基づいてプログラムコード（ＪＳＰコード１１２，サーブレット（Ｓｅｒｖｌｅｔ）コード１１３，Ｂｅａｎコード１１４）を生成し、外部記憶装置１０４に記憶させる。
【００２８】
１０８は全体制御部で、画面制御部１０５，コード生成部１０７等の各部の制御を行う。
【００２９】
図２は、図１に示したコード生成部１０７によって生成したサーブレット、ＪＳＰ、およびＢｅａｎを利用したウェブアプリケーションシステムの全体構成の一例を示す図である。
【００３０】
コード生成部１０７によって生成されたサーブレット、ＪＳＰ、およびＢｅａｎは、それぞれ実行可能な状態で、サーバ３０４側のアプリケーションサーバ３０６上に配置される。
【００３１】
このＷｅｂアプリケーションシステムは、クライアント３０１からウェブブラウザ３０２によって利用される。ウェブブラウザ３０２からＪＳＰ３０９にアクセスすることにより、ＨＴＭＬページ３０３を生成し、クライアント３０１側に返送する。そして、ウェブブラウザ３０２上には、ＪＳＰ３０９から送信されるＨＴＭＬページ３０３が表示される。
【００３２】
また、Ｗｅｂブラウザ３０２からのリクエストは、ＨＴＴＰ経由でサーバ３０４側に送信される。サーバ３０４にはＨＴＴＰサーバ３０５とアプリケーションサーバ３０６があり、アプリケーションサーバ３０６にはサーブレットやＪＳＰの実行環境が含まれている。
【００３３】
サーバ３０４側にリクエストが送信されると、リクエストに応じて該当するサーブレット３０７が起動される。サーブレット３０７は、対応するＢｅａｎ３０８に処理を要求する。さらに、Ｂｅａｎ３０８はＤＢアクセスオブジェクト３１０を利用してデータベース３１１にアクセスし、業務に関する処理やデータ加工などを行い、その処理結果を保持する。ＤＢアクセスオブジェクト３１０は、業務を分析、設計した結果、作成されるクラスや、再利用可能な既存のクラスである。
【００３４】
次に、サーブレット３０７からＪＳＰ３０９にＢｅａｎ３０８を渡し、ＪＳＰ３０９を呼び出す。ＪＳＰ３０９は、Ｂｅａｎ３０８で保持する処理結果を参照して、ＨＴＭＬページを生成し、クライアント３０１側に返送する。クライアント３０１側に返送されたＨＴＭＬページは、Ｗｅｂブラウザ３０２上に表示される。
【００３５】
サーブレット３０７は、Ｗｅｂブラウザ３０２からのリクエストの受け付け、Ｂｅａｎ３０８への処理要求、およびＪＳＰ３０９の呼び出しという、それぞれの間をつなぎ、制御する役割を持つ。ＪＳＰ３０９はＨＴＭＬページを出力するための表示に関することを受け持ち、Ｂｅａｎ３０８はデータベース３１１へのアクセス等の業務に関する処理を受け持つ。Ｂｅａｎ３０８やＪＳＰ３０９を利用せず、サーブレット３０７のみでＷｅｂブラウザ３０２からのリクエストを処理することは可能であるが、Ｂｅａｎ３０８やＪＳＰ３０９を利用してそれぞれの役割を明確に分離することで、機能分担を簡潔に把握することができる。
【００３６】
図３は、本発明のプログラム生成装置における第１の制御処理手順の一例を示すフローチャートであり、図１に示した処理装置１０３の全体制御部１０８の動作に対応する。なお、Ｓ１０１〜Ｓ１０５は各ステップを示す。
【００３７】
図１に示した処理装置１０３は、コード生成する業務仕様（入出力テーブル）の入力を行う入力モードと、入力された業務仕様（入出力テーブル）からプログラムコードを生成する生成モードとを有する。
【００３８】
まず、全体制御部１０８が起動されると、ステップＳ１０１において、入力装置１０１からオペレータの指示により選択されたモードが生成モードか入力モードかを判定し、入力モードが選択されたと判定した場合には、ステップＳ１０２に進み、全体制御部１０８は、画面制御部１０５を起動する。
【００３９】
起動された画面制御部１０５は、ステップＳ１０３において、業務仕様記述部１１６により業務仕様入力画面（不図示）を表示させ、生成するウェブアプリケーションのアプリケーション名，オペレータからの業務仕様の一形態である入出力テーブルへの項目入力を受け付け、該入出力テーブルを外部記憶装置１０４に格納し、処理を終了する。
【００４０】
一方、ステップＳ１０１において、入力装置１０１からオペレータの指示により選択されたモードが生成モードであると判定した場合には、ステップＳ１０４に進み、全体制御部１０８は、外部記憶装置１０４に格納された入出力テーブルを読み出し、該読み出した入出力テーブル内の業務仕様情報に基づいてコード生成を行う。
【００４１】
そして、ステップＳ１０５において、全体制御部１０８は、生成されたコードを、オペレータの指示により表示装置１０２に表示したり、外部記憶装置１０４に書き込む出力処理を行う。
【００４２】
以下、図４を参照して、本発明のプログラム生成装置における業務仕様情報（入出力テーブル）について説明する。図示しない入力画面から入力される業務仕様情報は、内部的には図４に示すような入出力テーブルの形式で保存される。
【００４３】
図４は、本発明のプログラム生成装置における業務仕様情報（図１に示した入出力テーブル１０９）について説明する模式図である。
【００４４】
図４において、列１は、データファイル番号を示したものであり、データファイルを構成するデータ項目として列２のデータファイル項目枝番がある。
【００４５】
列３はデータファイルの名称であり、列４はデータファイル項目枝番に対応する各データ項目の名称である。
【００４６】
列５は、集計表の形式を指定するための表示分類を示すものであり、一次元表（後述する図８，図９に示す）であることを示す「Ｈ１」、又は二次元表（後述する図１０，図１１に示す）であること示す「Ｈ２」、又は一覧表（後述する図１２に示す）であることを示す「Ｈ０」が指定される。なお、列５に「Ｈ１」，「Ｈ２」，「Ｈ０」のいずれかが指定される項目は、表には表示されないルート項目を示す。
【００４７】
列６は、実際に数を集計する項目とその集計方法を指定するための演算分類を示すものであり、「Ｔ１」が指定された場合には一次元表または二次元表において縦の合計演算を行うことを示しており、「Ｔ２」が指定された場合には２次元表において横の合計演算を行うことを示している。
【００４８】
列７は加工式を示すものであり、図５に示すように、この加工式に「＜」が指定された場合には、指定された項目をキーに表の内容を昇順で表示することを示し、「＞」が指定された場合には、指定された項目をキーに表の内容を降順で表示すること示す。また、この加工式に、「＊」又は「＊＊」が指定された場合には、指定された親項目の単位に列６の演算分類で「Ｔ１」又は「Ｔ２」が指定された項目の値を集計し表示する（但し、「＊」の場合は対象データが２件以上の場合のみ表示する）ことを示す。
【００４９】
列８は、項目を処理する順位を示すものであり、この順位に数字が記載された項目に関しては、該記載された数字の順に処理されることを示す。
【００５０】
列９は、キー機能を示すものであり、このキー機能に、他の項目の並び順（列１１に示す）が指定された場合には、当該項目が、キー機能に示された並び順の項目をキーとする項目であることを示す。
【００５１】
列１０はソート機能の指定を示すものであり、このソート機能に「ＯＮ」が指定されている場合は、その項目名をクリックすることにより、その項目をキーにして値の並び替えが行われる処理が追加されることを示す。
【００５２】
列１１は、並び順で、対応する項目の並び順（１，２，３，・・・）示すものである。
【００５３】
本実施形態のプログラム生成装置は、図４に示した業務仕様情報（入出力テーブル）から後述する図７に示すようなツリーを生成し、生成されたツリーデータに基づいて、集計表（図８〜図１２に示す）の表示プログラムを生成する。
【００５４】
このツリー作成時に、入出力テーブルの各項目を処理する処理順位を図６に示す。
【００５５】
図６に示すように、列５の表示分類が「Ｈ１」又は「Ｈ２」又は「Ｈ０」となる項目が処理順位「１」となり、ツリーのルート要素に設定される。このツリーのルート要素は単一であり、集計表自体を表すものとなる。また、集計表の各構成要素は、ルートにレベル付けされた形で関連をもつものとなる。
【００５６】
例えば、図４に示した入出力テーブルから生成されたツリーを図７に示す。
【００５７】
以下、図６を用いて、図７に示すツリーのレベル配置方法について説明する。
【００５８】
上述した図６に示したように、処理順位「１」となる項目は、列５の表示分類が「Ｈ１」又は「Ｈ２」又は「Ｈ０」となる項目で、ルート（レベル０）に配置される。図４に示した例では、並び順「１」の「売上リストコード」がルート（レベル０）に配置されることになる。
【００５９】
次に、処理順位「２」となる項目は、列７の加工式が「＜」又は「＞」となる項目で、レベル１に配置される。複数項目に「＜」又は「＞」が指定されていた場合、親子関係が成立するときは親が優先され、成立しないときは並び順（列１１）の若い方を優先する（但し、全てレベル１に配置する）。図４に示した例では、並び順「２」の「売上店舗コード」がレベル１に配置されることになる。
【００６０】
次に、処理順位「３」となる項目は、列８の順位が記載された項目で、順位の小さい項目から順次配置される（なお、親子関係（データベースにおいて１対多の関係）が成立する場合はレベルを下げる）。
【００６１】
図４に示した例では、並び順「５」の「商品分類コード」の順位が「１」となっているため、まず当該「商品分類コード」が上記「売上店舗コード」より後に配置される。但し、「売上店舗コード」と「商品分類コード」とは、図示しないデータファイル番号「ＳａｌｅｓＬｉｓｔ」を定義した入出力テーブル内で１対多の関係にあるため、当該「商品分類コード」は「売上店舗コード」より１つ低いレベル２に配置される。
【００６２】
さらに、並び順「４」の「商品コード」の順位が「２」となっており、上記「商品分類コード」より後に配置される。但し、「商品分類コード」と「商品コード」とは、図示しないデータファイル番号「ＳａｌｅｓＬｉｓｔ」を定義した入出力テーブル内で１対多の関係にあるため、当該「商品コード」は上記「商品分類コード」より１つ低いレベル３に配置される。
【００６３】
ここで、図６には示されていないが、列５〜列９のいずれにも指定がない項目が親子関係に応じてカレントより１つ低いレベル又は同レベルに配置される。なお、同様の項目が複数ある場合は並び順（列１１）の若い方を優先する。なお、図４には該当する項目はない。
【００６４】
最後に、処理順位「４」となる項目は、列６の演算分類が「Ｔ１」又は「Ｔ２」となる項目で、親子関係に応じてカレントのレベルより１つ低いレベル又は同レベルに配置される。図４に示した例では、並び順「８」の「売上個数」の演算分類が「Ｔ１」となっている。なお、「売上個数」と「商品コード」とは、図示しないデータファイル番号「ＳａｌｅｓＬｉｓｔ」を定義した入出力テーブル内で１対１の関係にあるため、当該「売上個数」は「商品コード」と同レベル（レベル３）に配置される。
【００６５】
なお、図６には示していないが、列９のキー機能に他の項目の並び順（列１１）が指定されている場合には、当該項目が、キー機能に示された並び順の項目の次（同じレベル）に配置される。図４に示した例では、並び順「３」の「売上店舗」のキー機能が「２」となっているため、当該「売上店舗」が並び順「２」の「売上店舗コード」と同じレベル１に配置される。また、並び順「６」の「商品分類名」のキー機能が「５」となっているため、当該「商品分類名」が並び順「５」の「商品分類コード」と同じレベル２に配置される。さらに、並び順「７」の「商品名」のキー機能が「４」となっているため、当該「商品名」が並び順「４」の「商品コード」と同じレベル３に配置される。
【００６６】
また、図６には示していないが、列７の加工式に「＊」又は「＊＊」が指定されている項目と同レベルに、当該項目の親項目の単位に列６の演算分類で「Ｔ１」又は「Ｔ２」が指定された項目「売上個数」の値を集計し表示するためのラベル「計」とその集計値である「売上個数」が生成されて配置される。図４に示した例では、並び順「４」の「商品コード」の加工式が「＊＊」となっているため、当該「商品コード」と同じレベル３に親項目である「商品分類コード」，「商品分類名」単位に「売上個数」の集計を行う「計」が配置される。
【００６７】
さらに、並び順「５」の「商品分類コード」の加工式も「＊＊」となっているため、当該「商品分類コード」と同じレベル２に親項目である「売上店舗コード」，「売上店舗」単位に「売上個数」の集計し表示するためのラベル「計」とその集計値である「売上個数」が配置される。
【００６８】
また、図６に示す処理順位が同一の項目は、並び順の順に処理順序が決定されるものとする。即ち、レベルが同一の項目は、並び順の順に表示される。
【００６９】
以上のように、図６に示した処理順位で処理を行うことにより、図７に示すツリー構造のデータが作成される。このツリー構造のデータに基づいて、後述する図８〜図１２の表示を作成するプログラムコードが作成される。
【００７０】
図８を例にして説明すると、図８の第１列には、図７のレベル１に配置される「売上店舗コード」が表示され、次に、図８の第２列には、同じくレベル１に配置される「売上店舗」が表示される。なお、図８の第２列に表示される「売上店舗」は、第１列に表示される「売上店舗コード」と同レベルであり、１対１の関係になっている。
【００７１】
また、図８の第３列には、レベル２に配置される「商品分類コード」が表示され、次に、図８の第４列には、同じくレベル２に配置される「商品分類名」が表示される。なお、図８の第３列に表示される「商品分類コード」は、第２列に表示される「売上店舗」よりレベルが１つ低くなっており、「売上店舗」と「商品分類コード」との関係は１対多となり、「売上店舗」１に対して「商品分類コード」多（複数）の表示が可能である（即ち、親子の関係となっている）。
【００７２】
次に、図８の第４列には、同じくレベル２に配置される「商品分類名」が表示される。なお、図８の第４列に表示される「商品分類名」は、第３列に表示される「商品分類名」と同レベルであり、１対１の関係になっている。
【００７３】
また、図８の第５列には、レベル３に配置される「商品コード」が表示され、次に、図８の第６列には、同じくレベル３に配置される「商品名」が表示される。なお、図８の第５列に表示される「商品コード」は、第４列に表示される「商品分類名」よりレベルが１つ低くなっており、「商品分類名」と「商品コード」との関係は１対多となり、「商品分類名」１に対して「商品コード」多の表示が可能である（即ち親子の関係となっている）。
【００７４】
次に、図８の第７列には、同じくレベル３に配置される「売上個数」が表示される。なお、図８の第７列に表示される「売上個数」は、第６列に表示される「商品名」と同レベルであり、１対１の関係である。
【００７５】
図８の行４，７，１４，１８，２４，２７，３０，３３には、レベル３に配置されるラベル「計」と商品分類コードごとの小計表示に対応する「売上個数」が表示される。
【００７６】
図８の行８，１０，２０，３４には、レベル２に配置されるラベル「計」と売上店舗コードごとの小計表示に対応する「売上個数」が表示される。
【００７７】
図８の行３５には、レベル２に配置されるラベル「計」とルートの総計表示に対応する「売上個数」が表示される。
【００７８】
なお、図８に示す表には、図７のレベル０に配置された売上リストコードは表示されないが、これは図４に示した入出力テーブルで定義された集計表自体を表すルート要素であるためである。
【００７９】
図８は、図４に示す入出力テーブル及び図７に示すツリーから生成された一次元表の一例を示す模式図である。
【００８０】
図８の状態の画面において「商品分類コード」のタイトル項目をクリックすると、図４の列１０の定義より自動生成されたソート機能により、図９のように表の内容の並び順が変更される。
【００８１】
図９は、図８に示した一次元表を第３列の「商品分類コード」でソートした場合の表示例を示す模式図である。
【００８２】
図１０は、図７に示すツリーから生成された二次元表の一例を示す模式図であり、図４に示した入出力テーブルの並び順「１」の表示分類を「Ｈ２」とし、並び順「８」の演算分類を「Ｔ２」として生成した場合に対応する。
【００８３】
図１０に示した集計表では、左にキーとして指定された商品分類コードが表示されており、そこから右に子要素が並ぶ。また、一次元表の定義においてキーとして指定されていた、並び順「２」の「売上店舗コード」が縦項目のキーとして集計表に表示される。
【００８４】
この図１０の状態の画面において「商品分類名」のタイトルをクリックすると、一次元表と同じようにソート処理が行われ、図１１のように表示される。
【００８５】
図１１は、図１０に示した二次元表を第２列の「商品分類名」でソートした場合の表示例を示す模式図である。
【００８６】
図１２は、図７に示すツリーから生成された一覧表の一例を示す模式図であり、図４に示した入出力テーブルの並び順「１」の表示分類を「Ｈ０」とし、並び順「８」の演算分類を空欄として生成した場合に対応する。
【００８７】
以下、図１３〜図１７のフローチャートを参照して、図１に示したコード生成部１０７によるコード生成処理について説明する。
【００８８】
図１３は、本発明の第２の制御処理手順の一例を示すフローチャートであり、図１に示したコード生成部１０７によるコード生成処理に対応する。なお、Ｓ２０１〜Ｓ２０３は各ステップを示す。
【００８９】
まず、ステップＳ２０１において、データベースより各データファイル項目の値を取得する処理を行うＢｅａｎコード１１４を、入出力テーブル１０９に基づいて生成する（詳細は図１４に示す）。
【００９０】
次に、ステップＳ２０２において、入出力テーブル１０９に基づいて、ウェブブラウザからの入力データを取得してＪＳＰを起動するサーブレットコード１１３を生成する（詳細は図１５に示す）。
【００９１】
次に、ステップＳ２０３において、ウェブブラウザへの表示を制御するＪＳＰコード１１２を生成し（詳細は図１６に示す）、処理を終了して図３のフローチャートにリターンする。
【００９２】
図１４は、本発明の第３の制御処理手順の一例を示すフローチャートであり、図１に示したコード生成部１０７によるＢｅａｎ作成処理（図１３のステップＳ２０１）に対応する。なお、Ｓ３０１〜Ｓ３０３は各ステップを示す。
【００９３】
まず、ステップＳ３０１において、データベース操作用のＢｅａｎファイルを生成する。なお、Ｂｅａｎファイル名は、例えば、図示しない入力画面より入力されたアプリケーション名に文字列「Ｂｅａｎ」を付加し拡張子を「ｊａｖａ（登録商標）」としたＢｅａｎファイルとする。また、このとき、作成したＢｅａｎファイル内の先頭に、「パッケージ名（例えば、アプリケーション名に文字列「Ｂｅａｎ」を付加したもの）の宣言、「ｊａｖａ（登録商標）．ｓｑｌ」パッケージのインポート、Ｊａｖａ（登録商標）Ｂｅａｎｓを利用するために必要なインタフェースの実装等を行うコード」を格納しておく。
【００９４】
次に、ステップＳ３０２において、入出力テーブル１０９を読み取り、ステップＳ３０３において、入出力テーブル１０９内の各データファイルの検索処理コードをＢｅａｎファイル内に生成する。詳細には、「データベースに接続し、各データファイル毎に当該データファイル番号に対応するテーブルからデータを取得する処理を行うためのＳＱＬ文のクエリを実行し、取得結果を返し、データベースから切断するコード（データ取得メソッド）」を当該Ｂｅａｎファイル内に生成する。
【００９５】
そして、処理を終了して図１３のフローチャートにリターンする。
【００９６】
なお、上記ステップＳ３０３により当該Ｂｅａｎファイル内に生成されるコードには、「ドライバクラスをロードする処理、データベースに接続する処理、ＳＱＬステートメントオブジェクトを生成する処理、サーブレットから渡されたデータに基づくＳＱＬ文のクエリを実行して結果を取得する処理、結果をセットする処理、ＳＱＬステートメントオブジェクトとデータベース接続オブジェクトをクローズする処理を行うためのコード」等が記載されているものとする。
【００９７】
また、ステップＳ３０３で生成するデータ取得処理コードは、Ｂｅａｎファイル内で定義される業務処理用のクラス（例えば、クラス名：アプリケーション名に文字列「ＤＢＡｃｃｅｓｓ」を付加）内のデータ取得メソッドとして生成するものとする。
【００９８】
図１５は、本発明の第４の制御処理手順の一例を示すフローチャートであり、図１に示したコード生成部１０７によるサーブレット作成処理（図１３のステップＳ２０２）に対応する。なお、Ｓ４０１〜Ｓ４０３は各ステップを示す。
【００９９】
まず、ステップＳ４０１において、サーブレットファイルを生成する。このサーブレットファイルのファイル名は、例えば、アプリケーション名に文字列「Ｓｅｒｖｌｅｔ」を付加し拡張子を「ｊａｖａ（登録商標）」とする。なお、このとき、サーブレットファイル内の先頭に、「使用するＢｅａｎパッケージ及びその他必要なパッケージをインポートするコード、アクセス修飾子，クラスの定義，クラス（例えば、ＨｔｔｐＳｅｒｖｌｅｔクラス）の継承、ウェブブラウザ（ＨＴＭＬフォーム）から送信されたパラメータ（送信情報）を受け取るためのメソッドを示すコード」を格納しておく。
【０１００】
次に、ステップＳ４０２において、「ウェブブラウザからの送信情報を受け取るコード」をサーブレットファイル内に生成する。
【０１０１】
次に、ステップＳ４０３において、「対応するＪＳＰを呼び出すコード」をサーブレットファイル内に生成し、処理を終了して図１３のフローチャートにリターンする。
【０１０２】
図１６は、本発明の第５の制御処理手順の一例を示すフローチャートであり、図１に示したコード生成部１０７によるＪＳＰ作成処理（図１３のステップＳ２０３）に対応する。なお、Ｓ５０１〜Ｓ５０４は各ステップを示す。
【０１０３】
まず、ステップＳ５０１において、ＪＳＰファイルを生成する。このＪＳＰファイルのファイル名は、例えば、アプリケーション名に拡張子を「ｊｓｐ」とする。なお、このＪＳＰファイル内には、「ＪＳＰページのＭＩＭＥタイプとエンコードするキャラクタセットを設定するコード、当該データファイルに対応するＢｅａｎをインスタンスするコード、ｈｔｍｌのタグである「＜ｈｔｍｌ＞＜ｈｅａｄ＞＜ｔｉｔｌｅ＞アプリケーション名＜／ｔｉｔｌｅ＞」等のコード」を生成し格納しておくものとする。
【０１０４】
次に、ステップＳ５０２において、「Ｂｅａｎのデータ取得用メソッドを呼び出して実行させ、検索用メソッドの処理結果をＢｅａｎから取得するコード」を生成する。
【０１０５】
次に、ステップＳ５０３において、図７に示すようなツリー構造のデータ（以下、単にツリー）を生成し、ステップＳ５０４において、生成したツリーに基づいて、集計表生成処理（詳細は、図１７に示す）を行い、処理を終了して図１３のフローチャートにリターンする。
【０１０６】
図１７は、本発明の第６の制御処理手順の一例を示すフローチャートであり、図１に示したコード生成部１０７による集計表生成処理（図１６のステップＳ５０２）に対応する。なお、Ｓ６０１〜Ｓ６１２は各ステップを示す。
【０１０７】
まずステップＳ６０１において、ツリーの上レベルから項目を１つ読み取り、ステップＳ６０２において、読み取った項目がレベル０であるか否かを判定し、レベル０であると判定した場合には、ステップＳ６０３において、当該項目の表示分類（列５）＝「Ｈ１」であるか否かを判定し、表示分類（列５）＝「Ｈ１」の項目であると判定した場合には、ステップＳ６０４において、図８に示したような１次元表を作成する処理を開始し、ステップＳ６０１に戻る。
【０１０８】
一方、ステップＳ６０３で、当該項目の表示分類（列５）＝「Ｈ１」でないと判定した場合には、ステップS６０５において、当該項目の表示分類（列５）＝「Ｈ２」であるか否かを判定し、表示分類（列５）＝「Ｈ２」の項目であると判定した場合には、ステップＳ６０６において、図１０に示したような２次元表を作成する処理を開始し、ステップＳ６０１に戻る。
【０１０９】
一方、ステップＳ６０５で、当該項目の表示分類（列５）＝「Ｈ２」でないと判定した場合には、ステップS６０７において、図１２に示したような一覧表を作成する処理を開始し、ステップＳ６０１に戻る。
【０１１０】
一方、ステップＳ６０２において、読み取った項目がレベル０でないと判定した場合には、ステップＳ６０８において、「タイトル項目を表示するコード」をＪＳＰファイル内に生成する。
【０１１１】
次に、ステップＳ６０９において、当該項目がソート機能（列１０）＝「ＯＮ」の項目であるか否かを判定し、当該項目がソート機能（列１０）＝「ＯＮ」の項目でないと判定した場合には、そのままステップＳ６１１の処理に進む。
【０１１２】
一方、ステップＳ６０９で、当該項目がソート機能（列１０）＝「ＯＮ」の項目であると判定した場合には、ステップＳ６１０において、「対応する項目のタイトルが指示された場合に、対応する項目でソートする機能をタイトルに追加するコード」をＪＳＰファイル内に生成し、ステップＳ６１１に進む。
【０１１３】
次に、ステップＳ６１１において、図１６のステップＳ５０２でデータベースより取得したデータを表示するコードを作成するデータ表示作成処理を行い、ステップＳ６１２に進む。
【０１１４】
次に、ステップＳ６１２において、ツリー内の全項目について、Ｓ６０１〜Ｓ６１１の処理を終了したか否かを判定し、終了していないと判定した場合には、ステップＳ６０１の処理に戻る。
【０１１５】
一方、ステップＳ６１２で、ツリー内の全項目について、Ｓ６０１〜Ｓ６１１の処理を終了したと判定した場合には、そのまま処理を終了して図１６のフローチャートに戻る。
【０１１６】
図１８は、本発明の第７の制御処理手順の一例を示すフローチャートであり、図１に示したコード生成部１０７によるデータ表示作成処理（図１７のステップＳ６１１）に対応する。なお、Ｓ７０１〜Ｓ７１５は各ステップを示す。
【０１１７】
まず、ステップＳ７０１において、当該項目が加工式（列７）＝「＜」の項目であるか否かを判定し、加工式（列７）＝「＜」の項目であると判定した場合には、ステップＳ７０２において、「当該項目をデフォルトのソートキー、「昇順」をデフォルトのソート方向に設定するコード」をＪＳＰファイル内に生成し、ステップＳ７０３において、「リクエストオブジェクト内にソートキー，ソート方向を指定する情報が格納されている場合には、該ソートキー，ソート方向を用い、一方、リクエストオブジェクト内にソートキー，ソート方向を指定する情報が格納されていない場合には、デフォルトのソートキー，ソート方向を用い、当該項目のデータをソート表示するコード」をＪＳＰファイル内に生成し、処理を終了して図１７のフローチャートに戻る。
【０１１８】
一方、ステップＳ７０１で、当該項目が加工式（列７）＝「＜」の項目でないと判定した場合には、ステップＳ７０４において、当該項目が加工式（列７）＝「＞」の項目であるか否かを判定し、加工式（列７）＝「＞」の項目であると判定した場合には、ステップＳ７０５において、「当該項目をデフォルトのソートキー、「降順」をデフォルトのソート方向に設定するコード」をＪＳＰファイル内に生成し、ステップＳ７０６において、「リクエストオブジェクト内にソートキー，ソート方向を指定する情報が格納されている場合には、該ソートキー，ソート方向を用い、一方、リクエストオブジェクト内にソートキー，ソート方向を指定する情報が格納されていない場合には、デフォルトのソートキー，ソート方向を用い、当該項目のデータをソート表示するコード」をＪＳＰファイル内に生成し、処理を終了して図１７のフローチャートに戻る。
【０１１９】
一方、ステップＳ７０４で、当該項目が加工式（列７）＝「＞」の項目でないと判定した場合には、ステップＳ７０７において、当該項目が加工式（列７）＝「＊＊」の項目であるか否かを判定し、加工式（列７）＝「＊＊」の項目であると判定した場合には、ステップＳ７０８において、「リクエストオブジェクト内にソートキー，ソート方向を指定する情報が格納されている場合には、該ソートキー，ソート方向を用い、一方、リクエストオブジェクト内にソートキー，ソート方向を指定する情報が格納されていない場合には、デフォルトのソートキー，ソート方向を用い、当該項目のデータをソート表示するコード」をＪＳＰファイル内に生成し、ステップＳ７０９において、「当該項目の親項目単位に「Ｔ１」又は「Ｔ２」に対応する項目の演算処理を行い、ラベル「計」と共に演算結果を表示するコード」をＪＳＰファイル内に生成し、処理を終了して図１７のフローチャートに戻る。
【０１２０】
一方、ステップＳ７０７で、当該項目が加工式（列７）＝「＊＊」の項目でないと判定した場合には、ステップＳ７１０において、当該項目が加工式（列７）＝「＊」の項目であるか否かを判定し、加工式（列７）＝「＊」の項目であると判定した場合には、ステップＳ７１１において、「リクエストオブジェクト内にソートキー，ソート方向を指定する情報が格納されている場合には、該ソートキー，ソート方向を用い、一方、リクエストオブジェクト内にソートキー，ソート方向を指定する情報が格納されていない場合には、デフォルトのソートキー，ソート方向を用い、当該項目のデータをソート表示するコード」をＪＳＰファイル内に生成し、ステップＳ７１２において、「項目が２件以上の場合に、当該項目の親項目単位に「Ｔ１」又は「Ｔ２」に対応する項目の演算処理を行い、ラベル「計」と共に演算結果を表示するコード」をＪＳＰファイル内に生成し、処理を終了して図１７のフローチャートに戻る。
【０１２１】
一方、ステップＳ７１０で、当該項目が加工式（列７）＝「＊」の項目でないと判定した場合には、ステップＳ７１３において、「リクエストオブジェクト内にソートキー，ソート方向を指定する情報が格納されている場合には、該ソートキー，ソート方向を用い、一方、リクエストオブジェクト内にソートキー，ソート方向を指定する情報が格納されていない場合には、デフォルトのソートキー，ソート方向を用い、当該項目のデータをソート表示するコード」をＪＳＰファイル内に生成し、ステップＳ７１４において、当該項目が演算分類（列６）＝「Ｔ１」又は「Ｔ２」の項目であるか否かを判定し、演算分類（列６）＝「Ｔ１」又は「Ｔ２」の項目であると判定した場合には、ステップＳ７１５において、「当該項目の演算処理を行い表示するコード」をＪＳＰファイル内に生成し、処理を終了して図１７のフローチャートに戻る。詳細には、演算分類（列６）＝「Ｔ１」の場合は縦のみの集計演算を行い、「Ｔ２」場合には縦横の２次元の集計演算を行い、ラベル「計」と共に演算結果を表するコードを生成する。
【０１２２】
一方、ステップＳ７１４で、当該項目が演算分類（列６）＝「Ｔ１」又は「Ｔ２」の項目でないと判定した場合には、そのまま処理を終了して図１７のフローチャートに戻る。
【０１２３】
なお、図１７のステップＳ６１０で示したソート機能を追加するコードは、いずれの項目をキーとするソートが指示されたかを示す情報を、サーブレットに送信して画面を再表示させるＪａｖａ（登録商標）Ｓｃｒｉｐｔコードに相当するものである。
【０１２４】
また、図１８のステップＳ７０３，Ｓ７０６，Ｓ７０８，Ｓ７１１，Ｓ７１３で生成されるコードは、「項目データを表示する際に、リクエストオブジェクト内に格納されているソートキーに基づいて、該ソートキーに対応する項目をキーとしてデータをソート表示するコード」とする。
【０１２５】
以下、図４に示した入出力テーブルを例にして、集計表生成過程についてより具体的に説明する。
【０１２６】
最初に図７に示したツリーからレベル０である項目「売上リストコード」（並び順１）の項目をについて処理を行う。
【０１２７】
「売上リストコード」（並び順１）の項目では列５に「Ｈ１」が指定されていることからそれ以降の項目が集計表の対象となることを示しており、同時にルート要素として扱われる。
【０１２８】
次にレベル１である項目「売上店舗コード」（並び順２）の項目をについて処理を行う。
【０１２９】
「売上店舗コード」（並び順２）の項目では、列７の加工式に「＜」が指定されていることから、この値を基準に集計表の内容が昇順で表示されることを示している。また、列４のデータファイル項目名「売上店舗コード」がタイトル項目として左上端に表示するコードを生成する。また、その表示の下にその値を表示するコードを生成する。
【０１３０】
さらに列１０のソート機能の値に「ＯＮ」が指定されていることから、タイトル項目「売上店舗コード」をクリックするとその項目の値をキーに表を昇順もしくは降順に並び替える機能が付加するコードを生成する。
【０１３１】
次に同じくレベル１である項目「売上店舗」（並び順３）の項目について処理を行う。「売上店舗」（並び順３）の項目では列４の「売上店舗」がタイトル項目として、上記の「売上店舗コード」の右に表示され、その下にその値が表示されるコードを生成する。さらに列１０に「ＯＮ」が指定されているのでタイトル項目にソート機能を付加するコードを生成する。
【０１３２】
次にレベル２である項目「商品分類コード」（並び順５）の項目をについて処理を行う。「商品分類コード」（並び順５）では「商品分類コード」がタイトルとして、上記の「売上店舗」の右に表示され、その下に値が表示されるコードを生成する。
【０１３３】
また、「商品分類コード」（並び順５）の列７の加工式に「＊＊」が指定されていることから、親要素の売上店舗を基準に列６に「Ｔ１」が指定されている「売上個数」の数値を計算し、商品分類コードの値の下に「計」の項目名を挿入する。計算された値は列６に「Ｔ１」が指定されている項目の欄（即ち、表の右端の項目となり、本件では「売上個数」の欄）の、「計」と同じ行に表示されるコードを生成する（レベル２の「計」に対応する）。さらに列１０に「ＯＮ」が指定されているのでタイトル項目にソート機能を付加するコードを生成する。
【０１３４】
次に同じくレベル２である項目「商品分類名」（並び順６）の処理を行う。
【０１３５】
「商品分類名」（並び順６）では列４の「商品分類名」がタイトル項目として、上記の「商品分類コード」の右に表示され、その下にその値が表示されるコードを生成する。さらに列１０に「ＯＮ」が指定されているのでタイトル項目にソート機能を付加するコードを生成する。
【０１３６】
次にレベル３である項目「商品コード」（並び順４）の処理を行う。
【０１３７】
「商品コード」（並び順４）では「商品コード」がタイトルとして、上記の「商品分類名」の右に表示され、その下に値が表示されるコードを生成する。
【０１３８】
また、「商品コード」（並び順４）の列７の加工式に「＊＊」が指定されていることから、「商品コード」の上位の「商品分類名」を基準に列６に「Ｔ１」が指定されている「売上個数」の数値を計算し、商品コードの値の下に「計」の項目名を挿入するコードを生成する。計算された値が列６に「Ｔ１」が指定されている項目の欄（即ち、表の右端の項目「売上個数」の欄）の「計」と同じ行に表示されるコードを生成する（レベル３の「計」に対応する）。さらに列１０に「ＯＮ」が指定されているのでタイトル項目にソート機能を付加するコードを生成する。
【０１３９】
次に同じくレベル３である項目「商品名」（並び順７）の処理を行う。
【０１４０】
「商品名」（並び順７）では列４の「商品名」がタイトル項目として、上記の「商品コード」の右に表示され、その下に値が表示されるコードを生成する。さら、に列１０に「ＯＮ」が指定されているのでタイトル項目にソート機能を付加するコードを生成する。
【０１４１】
最後に、レベル４である項目「売上個数」（並び順８）の処理を行う。
【０１４２】
「売上個数」（並び順８）では、列４の「売上個数」がタイトル項目として、上記の「商品名」の右に表示され、その下に値が表示される。そして列６の演算分類に「Ｔ１」が指定されていることから売上個数の値を集計し、表の一番下に合計を表示する。なお、売上個数の合計表示の同じ行の左には「計」の項目名が表示される。
【０１４３】
以上説明したように、ウェブアプリケーションによる集計表の生成において、その定義を業務仕様の枠組みの中で定義でき、自動生成できるため生産性と保守性、汎用性を格段に向上することができる。
【０１４４】
また、生成された集計表において、項目のソートについては再度定義を変更する必要なく集計表示された画面からリアルタイムに変更できるコードが自動的に生成されるため、生産性、保守性を格段に向上することができる。
【０１４５】
さらに、集計表の定義に変更を加えることなく、一覧表示と集計表の切り替えが相互にでき、それらの仕組みが自動生成されるので生産性、汎用性を格段に向上することができる等の効果を奏する。
【０１４６】
なお、本実施形態では、サーバサイドのＪａｖａ（登録商標）プログラムを用いたウェブアプリケーションを生成する場合について説明したが、生成されるプログラムコードは、Ｊａｖａ（登録商標）に限られるものではなく、ＡＳＰ（Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ），ＰＨＰ（Ｈｙｐｅｒｔｅｘｔ  Ｐｒｅｐｒｏｓｅｓｓｏｒ）等のその他のプログラムによるウェブアプリケーションであってもよい。
【０１４７】
また、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔを用いる場合について説明したが、その他のスクリプト言語を用いてもよい。
【０１４８】
さらに、図４に示した入出力テーブルの内容は、これらに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１４９】
また、上記フローチャート内では示していないが、入出力項目の表示分類（列５）に「Ｆ」を指定して定義されたデータファイル項目を示すものとし、本実施形態のプログラム生成装置により、当該データファイル項目枝番を項目名とし、当該データファイル番号をテーブル名としたテーブルをデータベースへ作成するように構成してもよい。
【０１５０】
また、本実施形態のプログラム生成装置は、前記作成されたデータベースへの新規／更新／検索／削除等を行うウェブアプリケーション（業務アプリケーション）を作成するように構成してもよい。
【０１５１】
このように、業務アプリケーションの定義と集計表の定義は同一のものを使用できるので、生産性，保守性を格段に向上することができる。
【０１５２】
また、上記実施形態の各変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１５３】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１５４】
以上より、業務仕様を入力とし、集計表に関するプログラムコードを生成するので、ウェブアプリケーションによる集計表の生成において、その定義を業務仕様の枠組みの中で定義でき、自動生成することができる。
【０１５５】
また、業務仕様を入力とし、集計表又は一覧表示を行うプログラムコードを選択的に生成するので、集計表の定義に変更を加えることなく、一覧表示と集計表の切り替えが相互にでき、それらの仕組みを自動生成することができる。
【０１５６】
さらに、業務仕様中の属性情報を入力とし、項目のソート処理に関するプログラムコードを生成するので、生成された集計表において、項目のソートについては表示された画面からリアルタイムに変更できる仕組みを自動生成することができる。
【０１５７】
従って、生産性、保守性、汎用性を格段に向上した集計表を表示処理するウェブアプリケーションを生成することができる。
【０１５８】
以下、図１９に示すメモリマップを参照して本発明に係るプログラム生成装置で読み出し可能なデータ処理プログラムの構成について説明する。
【０１５９】
図１９は、本発明に係るプログラム生成装置で読み出し可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１６０】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１６１】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１６２】
本実施形態における図３，図１３，図１４，図１５，図１６，図１７，図１８に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１６３】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１６４】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１６５】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１６６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６７】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６８】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１６９】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【産業上の利用可能性】
【０１７０】
本発明のプログラム生成装置により生成されるプログラムコードを、ＡＳＰ（Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ），ＰＨＰ（Ｈｙｐｅｒｔｅｘｔ  Ｐｒｅｐｒｏｓｅｓｓｏｒ）等のＪａｖａ（登録商標）以外の他のプログラムによるウェブアプリケーションとすることで、本発明のプログラム生成装置を各種ウェブアプリケーションの生成にも適用可能である。
【図面の簡単な説明】
【０１７１】
【図１】本発明の一実施形態を示すプログラム生成装置の構成を示すブロック図である。
【図２】図１に示したコード生成部によって生成したサーブレット、ＪＳＰ、およびＢｅａｎを利用したウェブアプリケーションシステムの全体構成の一例を示す図である。
【図３】本発明のプログラム生成装置における第１の制御処理手順の一例を示すフローチャートである。
【図４】本発明のプログラム生成装置における業務仕様（図１に示した入出力テーブル）について説明する模式図である。
【図５】図４に示した入出力テーブルの７列の加工式分類一覧を示す図である。
【図６】図４に示した入出力テーブルの処理順位を示す図である。
【図７】図４に示した入出力テーブルより生成されるツリーの一例を示す模式図である。
【図８】図４に示した入出力テーブル及び図７に示したツリーから生成された一次元表の一例を示す模式図である。
【図９】図８に示した一次元表を第３列の「商品分類コード」でソートした場合の表示例を示す模式図である。
【図１０】図７に示したツリーから生成された二次元表の一例を示す模式図である。
【図１１】図１０に示した二次元表を第２列の「商品分類名」でソートした場合の表示例を示す模式図である。
【図１２】図７に示したツリーから生成された一覧表の一例を示す模式図である。
【図１３】本発明の第２の制御処理手順の一例を示すフローチャートである。
【図１４】本発明の第３の制御処理手順の一例を示すフローチャートである。
【図１５】本発明の第４の制御処理手順の一例を示すフローチャートである。
【図１６】本発明の第５の制御処理手順の一例を示すフローチャートである。
【図１７】本発明の第６の制御処理手順の一例を示すフローチャートである。
【図１８】本発明の第７の制御処理手順の一例を示すフローチャートである。
【図１９】本発明に係るプログラム生成装置で読み出し可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０１７２】
１０１  入力装置
１０２  表示装置
１０３  処理装置（ＣＰＵ，ＲＡＭ，ＲＯＭ）
１０４  外部記憶装置（ハードディスク）
１０５  画面制御部
１１６  業務仕様記述部
１０７  コード生成部
１０８  全体制御部
１０９  入出力テーブル
１１２  ＪＳＰコード
１１３  Ｓｅｒｖｌｅｔコード
１１４  Ｂｅａｎコード
【図１】
0004695331.tif 000002
【図２】
0004695331.tif 000003
【図３】
0004695331.tif 000004
【図４】
0004695331.tif 000005
【図５】
0004695331.tif 000006
【図６】
0004695331.tif 000007
【図７】
0004695331.tif 000008
【図８】
0004695331.tif 000009
【図９】
0004695331.tif 000010
【図１０】
0004695331.tif 000011
【図１１】
0004695331.tif 000012
【図１２】
0004695331.tif 000013
【図１３】
0004695331.tif 000014
【図１４】
0004695331.tif 000015
【図１５】
0004695331.tif 000016
【図１６】
0004695331.tif 000017
【図１７】
0004695331.tif 000018
【図１８】
0004695331.tif 000019
【図１９】
0004695331.tif 000020