(57)【要約】【課題】Ｗｅｂアプリケーションにおいて、画面上に入出力項目を表示するための複数の画面コントロールからなる組について、そのレイアウトを画面全体で当該組単位で統一的に調整することを可能とする。【解決手段】クライアント端末２００からの要求を受けて処理結果を応答することでサービスを提供するアプリケーションプログラムを稼働させ、処理結果をクライアント端末２００の画面上に表示する際に、複数の画面コントロールからなる画面を表示させる画面コントロール表示システム１００であって、１つ以上の入出力項目のそれぞれについて、入出力項目の名称を示すテキストを表示するラベルコントロールに係る情報と、入出力項目を入力もしくは出力するために表示する入出力コントロールに係る情報とを少なくとも有するパーツオブジェクト１０３によって、各入出力項目に対応する複数の画面コントロールのレイアウトを調整して表示する。【選択図】図１
2014059700.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末からの要求を受けて対応するビジネスロジックを呼び出し、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答することで前記クライアント端末に対してサービスを提供するアプリケーションプログラムを稼働させ、前記処理結果を前記クライアント端末の画面上に表示する際に、複数の画面コントロールからなる画面を表示させる画面コントロール表示システムであって、
前記クライアント端末の画面上に表示する、前記アプリケーションプログラムにおける１つ以上の入出力項目のそれぞれについて、前記入出力項目の名称を示すテキストを表示するラベルコントロールに係る情報と、前記入出力項目を入力もしくは出力するために表示する入出力コントロールに係る情報とを少なくとも有するパーツオブジェクトによって、前記各入出力項目に対応する複数の前記画面コントロールのレイアウトを調整して表示することを特徴とする画面コントロール表示システム。
【請求項２】
請求項１に記載の画面コントロール表示システムにおいて、
１つ以上の前記パーツオブジェクトに対して共通する、前記パーツオブジェクトが表示する複数の前記画面コントロールのレイアウトの調整内容に係るレイアウト情報を、前記パーツオブジェクトの表示とは独立して前記アプリケーションプログラムのソースコードによって指定可能であることを特徴とする画面コントロール表示システム。
【請求項３】
請求項２に記載の画面コントロール表示システムにおいて、
前記レイアウト情報は、前記パーツオブジェクトが表示する複数の前記画面コントロールの配置パターンおよび／または前記各画面コントロールのそれぞれの表示幅の情報を含むことを特徴とする画面コントロール表示システム。
【請求項４】
請求項１〜３のいずれか１項に記載の画面コントロール表示システムにおいて、
前記パーツオブジェクトは、さらに、対応する前記入出力項目の説明を示すコメントを表示するコメントコントロールに係る情報を有することを特徴とする画面コントロール表示システム。
【請求項５】
請求項４に記載の画面コントロール表示システムにおいて、
前記パーツオブジェクトは、前記コメントコントロールとして、前記コメントを表示するポップアップウィンドウを表示させるための指示を受け付けるアイコン画像を表示することを特徴とする画面コントロール表示システム。
【請求項６】
請求項１〜５のいずれか１項に記載の画面コントロール表示システムにおいて、
前記パーツオブジェクトが表示する複数の前記画面コントロールについての１つ以上の属性値を含む情報を、前記パーツオブジェクトが対応する前記入出力項目の識別情報をキーとして関連付けた辞書データとして登録した辞書テーブルを有し、
前記処理結果に含まれる前記パーツオブジェクトについて、対応する前記入出力項目の識別情報をキーとして、前記辞書テーブルから対応する前記パーツオブジェクトについての前記属性値の一部または全部を取得し、
前記パーツオブジェクトは、取得した前記属性値に基づいて、前記クライアント端末の画面上に対応する複数の前記画面コントロールを表示させることを特徴とする画面コントロール表示システム。
【請求項７】
クライアント端末からの要求を受けて対応するビジネスロジックを呼び出し、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答することで前記クライアント端末に対してサービスを提供するアプリケーションプログラムを稼働させ、前記処理結果を前記クライアント端末の画面上に表示する際に、複数の画面コントロールからなる画面を表示させるＷｅｂサーバシステムとしてコンピュータを動作させる画面コントロール表示プログラムであって、
前記クライアント端末の画面上に表示する、前記アプリケーションプログラムにおける１つ以上の入出力項目のそれぞれについて、前記入出力項目の名称を示すテキストを表示するラベルコントロールに係る情報と、前記入出力項目を入力もしくは出力するために表示する入出力コントロールに係る情報とを少なくとも有するパーツオブジェクトによって、前記各入出力項目に対応する複数の前記画面コントロールのレイアウトを調整して表示することを特徴とする画面コントロール表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサーバシステムにおけるアプリケーション実装技術に関し、特に、画面コントロールの表示を統一的に制御する画面コントロール表示システムおよび画面コントロール表示プログラムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
Ｗｅｂサーバシステム上で動作するアプリケーションプログラム、特に、例えば業務データベースにアクセスするＣＲＵＤ（Create,Read,Update,Delete）型のＷｅｂアプリケーションプログラムなどにおいては、画面上に多数の入出力項目（例えば、業務データベースからデータを取得するための検索条件の内容を指定する入力項目や、検索結果の内容を表示する出力項目）に係る内容を表示する画面コントロール（以下では単に“コントロール”と記載する場合がある）を、ユーザが視認し操作しやすいように整然と配置してユーザインタフェースを構築する必要がある。
【０００３】
特に、近年は、同じ業務ロジックを、ＰＣ（Personal Computer）以外の様々な携帯端末等のデバイスのユーザインタフェースに対応させることが求められており、入出力項目についての論理要素と、レイアウト情報との分離が重要になってきている。
【０００４】
Ｗｅｂアプリケーションプログラムの開発においては、このようなユーザインタフェース部分を含む開発負荷の低減や標準化等を目的として、ＧＵＩ（Graphical User Interface）作成機能などを含むいわゆる統合開発環境（ＩＤＥ：Integrated Development Environment）や、Ruby on Rails（ＲｏＲ、非特許文献１）などのアプリケーションフレームワークなどが用いられる場合がある。また、これらを組み合わせて用いることも行われている。このような開発支援ツール等を用いることで、例えばユーザインタフェースを有するＷｅｂアプリケーションプログラムについてソースコードを自動生成し、開発負荷の低減や標準化を図ることが可能である。
【０００５】
また、画面コントロールの表示制御という点に関しては、例えば、特開２０１２−８８０５号公報（特許文献１）には、タッチパネルを制御することができる制御手段と、表示されるリソースの解析を行うユーザインタフェース解析手段と、リソースの書き換えを変更する第１のユーザインタフェース変更手段とを備え、Ｗｅｂコンテンツ等のユーザインタフェースを、タッチパネルでも視認性よく操作することができるようにする情報処理装置が記載されている。ここでは、制御手段が、ユーザインタフェース解析手段により解析されたユーザインタフェースの中からタッチしにくい箇所を判別し、第１のユーザインタフェース変更手段を用いてタッチしやすいユーザインタフェースへの変更を行っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−８８０５号公報
【非特許文献】
【０００７】
【非特許文献１】インターネット＜URL：http://rubyonrails.org/＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来技術のようなユーザインタフェースに係るソースコードの自動生成や、画面コントロール（パーツ）の表示制御に係る技術では、画面コントロールの配置やレイアウトに係るユーザの開発負荷を低減するとともに、レイアウトについてある程度の最適化を図ることが可能である。
【０００９】
ここで、ＣＲＵＤ型のＷｅｂアプリケーションなどでは、例えば、データベースに対する入力項目を指定する入力フィールドのコントロールには通常当該項目の内容やタイトルを表すテキストを表示するテキストコントロールが組として配置され、この組を入出力項目毎に多数表示する、というような形式のレイアウトがとられる場合が多い。
【００１０】
この点、従来技術のような表示制御に係る技術では、入力フィールドやテキストコントロールの単体で個別に自動配置やレイアウトの調整等を行うことは可能であるが、入出力項目単位、すなわち入力フィールドとテキストコントロールとを一体とした状態で整合性を持ってレイアウトの調整等を行うことは考慮されていない。その結果、例えば、画面上の表示可能領域に対して、テキストコントロールが意図しない箇所で改行されたり、逆に意図した箇所で改行されなかったりなどの崩れを生じたり、自動的にレイアウトの調整を行った結果、入出力項目毎に表示幅等が異なったりなどの意図しない崩れが生じる場合がある。ラジオボタンなど、画面コントロールの外観が表示デバイスやプラットフォームによって異なるものがある場合にも、予期せぬレイアウトの崩れを生じる場合がある。
【００１１】
これに対し、各入出力項目に対応する入力フィールドとテキストコントロールの組などのレイアウトを画面全体で統一的に調整することを、ユーザが手作業での個別の開発により実装することは大変煩雑であり効率が悪い。
【００１２】
そこで本発明の目的は、Ｗｅｂアプリケーションにおいて、画面上に入出力項目を表示するための複数の画面コントロールからなる組について、そのレイアウトを画面全体で当該組単位で統一的に調整することを可能とする画面コントロール表示システムおよび画面コントロール表示プログラムを提供することにある。
【００１３】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１５】
本発明の代表的な実施の形態による画面コントロール表示システムは、クライアント端末からの要求を受けて対応するビジネスロジックを呼び出し、前記ビジネスロジックによる処理結果を前記クライアント端末に対して応答することで前記クライアント端末に対してサービスを提供するアプリケーションプログラムを稼働させ、前記処理結果を前記クライアント端末の画面上に表示する際に、複数の画面コントロールからなる画面を表示させるシステムであって、以下の特徴を有するものである。
【００１６】
すなわち、前記クライアント端末の画面上に表示する、前記アプリケーションプログラムにおける１つ以上の入出力項目のそれぞれについて、前記入出力項目の名称を示すテキストを表示するラベルコントロールに係る情報と、前記入出力項目を入力もしくは出力するために表示する入出力コントロールに係る情報とを少なくとも有するパーツオブジェクトによって、前記各入出力項目に対応する複数の前記画面コントロールのレイアウトを調整して表示する。
【００１７】
また、本発明は、コンピュータを上記のような画面コントロールの表示を行うＷｅｂサーバシステムとして動作させるプログラムにも適用することができる。
【発明の効果】
【００１８】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１９】
すなわち、本発明の代表的な実施の形態によれば、Ｗｅｂアプリケーションにおいて、画面上に入出力項目を表示するための複数の画面コントロールからなる組について、そのレイアウトを画面全体で当該組単位で統一的に調整することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施の形態である画面コントロール表示システムの構成例について概要を示した図である。
【図２】本発明の一実施の形態におけるパーツオブジェクトにより対応するカラムの入出力項目を画面上に表示する際の処理の例について概要を示した図である。
【図３】（ａ）〜（ｃ）は、本発明の一実施の形態におけるパーツオブジェクトのソースコード上でのレイアウト調整の実装例について概要を説明する図である。
【図４】本発明の一実施の形態におけるパーツオブジェクトの３要素の配置パターンと表示例について概要を示した図である。
【図５】（ａ）〜（ｄ）は、本発明の一実施の形態におけるパーツオブジェクトの３要素の配置パターンの他の例について概要を示した図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２２】
本発明の一実施の形態である画面コントロール表示システムは、例えば、業務データベースにアクセスするＣＲＵＤ型のＷｅｂアプリケーションプログラムにおいて、画面上に入出力項目等を表示するための複数の画面コントロールからなる組について、そのレイアウトや属性等を画面全体で当該組単位で統一的に調整することを可能とするＷｅｂサーバシステムである。
【００２３】
ここでは、画面自体および／または画面上に表示するコントロールを表示する機能において、後述するように、画面コントロール（パーツ）を、ＨＴＭＬ（HyperText Markup Language）要素単位の通常のコントロールとは異なり、入出力項目の論理要素単位により構成されるパーツオブジェクトを用いて構成する。
【００２４】
すなわち、上述した入出力フィールドとテキストコントロールのように、組として配置される複数のコントロールについて、これらを要素とするパーツオブジェクトとして構成する。このパーツオブジェクトは、画面上にどのようなコントロールを表示するか（例えば、テキストコントロールのみ、（テキストコントロールと）入力フィールド、（テキストコントロールと）ドロップダウンリスト、…等）をパラメータとして指定することが可能である。また、コントロールの属性値（例えば、テキストコントロールに表示されるテキストの内容や、入力フィールドの長さ等）や、制御情報（例えば、入力データの妥当性チェックをどのように行うか等）などについても指定することができるものとし、指定された内容に従ってコントロールを表示および制御するよう実装されている。
【００２５】
換言すると、パーツオブジェクトは、入力フィールドやドロップダウンリスト、テキストなどの、入出力項目のデータを取り扱う入出力コントロールに対応する論理要素と、入出力項目の名称等を表示するテキストコントロールであるラベルコントロールに対応する論理要素、さらに当該入出力項目についての説明テキストを表示するコメントコントロールに対応する論理要素とを組み合わせて構成されており、これらの要素に対応するコントロールの実際の表示・出力のパターンをこれら論理要素の組とは独立して指定可能であるという構成を有する。すなわち、入出力項目の論理要素単位に独立した画面コントロールの組を作成し、そこからレイアウト情報を独立させる構成を有する。
【００２６】
これにより、要素である複数の画面コントロールにつき、１つ以上のパーツオブジェクト内で一括して整合性をもって統一的にレイアウトの調整をすることが可能となる。また、パーツオブジェクトが入出力項目と１対１で対応することになるため、各コントロールに対するパラメータや属性値などをまとめて後述するように辞書データとして外出しにし、入出力項目と対応付けて管理することが容易となる。また、要素である複数の画面コントロール間のレイアウト調整に係る情報をパーツオブジェクトとは独立して定義することが可能となり、コントロール間のレイアウト調整に要する負荷を大きく低減させることが可能となる。
【００２７】
ここでのレイアウト調整には、例えば、表示可能領域に対して、ラベルコントロールが意図しない箇所で改行されたり、逆に意図した箇所で改行されなかったり等を防止するよう、ラベルコントロールと入出力コントロールの表示幅を一体的に調整することや、ラジオボタンなどデバイスやＯＳ（Operating System）等によって外観が異なる入出力コントロールについて、ラベルコントロールと一体的に表示位置や幅等を調整することなどが含まれる。すなわち、複数種類のデバイスやＯＳのユーザインタフェースに応じた動的なレイアウト変更が可能である。
【００２８】
本実施の形態では、Ｗｅｂアプリケーションプログラムは、画面上の各入出力項目に係る内容について当該パーツオブジェクトを使用して表示するものとしてソースコードが作成されているものとする。すなわち、パーツオブジェクトを使用して間接的にコントロールを表示する（パーツオブジェクトがＷｅｂサーバシステム上での実行時に対象のコントロールを表示するＨＴＭＬデータやスクリプト等を動的に生成する）。また、アクセスする対象のデータベースの各カラムと画面上の入出力項目とのマッピングに係る情報は、データベースの各カラムの識別情報（例えばカラム名称）と、対応するパーツオブジェクトの識別情報（例えばＨＴＭＬのＩＤ属性値）とのマッピング情報としてソースコード上に保持する。
【００２９】
さらに、本実施の形態では、各パーツオブジェクトにおいてラベルコントロールに表示するテキスト、および入出力コントロールの属性値や制御処理に係る情報などについて、後述するように、一部を除き、ソースコード上で直接指定するのではなく、パーツオブジェクトのＩＤもしくは対応するデータベースのカラム名称等の識別情報と関連付けられた辞書データとして外出しにして保持するよう構成する。これにより、いったん生成されたソースコードに対して変更を加えずに、画面の表示方式や、パーツオブジェクトにより画面上に表示されるコントロールの外観や属性等を動的に変更可能とする。なお、本実施の形態では、辞書を用いるものとしているが、特にこれに限定されるものではない。
【００３０】
＜システム構成＞
図１は、本発明の一実施の形態である画面コントロール表示システムの構成例について概要を示した図である。画面コントロール表示システム１００は、例えば、サーバ機器やクラウドコンピューティング環境での仮想サーバなどのコンピュータ機器により構成され、図示しないＯＳやＤＢＭＳ（DataBase Management System）、Ｗｅｂサーバプログラムなどのミドルウェアに加え、ユーザが作成したソースコード１０１もしくはそこから呼び出されるライブラリやオブジェクト等のソフトウェアプログラムにより実装される要求処理部１１０、辞書処理部１２０、ビジネスロジック１３０、および応答処理部１４０などの各部を有するＷｅｂサーバシステムである。
【００３１】
また、画面コントロール表示システム１００は、インターネット等のネットワーク３００を介して接続されるクライアント端末２００上の図示しないＷｅｂブラウザ等のプログラムからの要求に対して、ビジネスロジック１３０により業務データベース（ＤＢ）１３１にアクセスして処理を行い、クライアント端末２００に対してＨＴＭＬデータ１０２を出力して応答することによってサービスを提供する。
【００３２】
要求処理部１１０は、クライアント端末２００からの要求を受けて、対応するソースコード１０１に基づいてコンテンツ（ビジネスロジック１３０）を呼び出す機能を有し、ソフトウェアプログラムにより実装されるＩＤ変換部１１１、および入力チェック部１１２などの各部を有する。ＩＤ変換部１１１は、要求メッセージに含まれる画面上の入力項目に対応する、ソースコード１０１に記載されたパーツオブジェクト１０３の識別情報（ＩＤ）を、ソースコード１０１に保持されたマッピング情報に基づいて、入出力項目に対応する業務ＤＢ１３１のカラムの識別情報（カラム名称等）に変換する機能を有する。
【００３３】
このマッピング情報は、画面上に表示されるパーツオブジェクト１０３の識別情報（例えばＨＴＭＬのＩＤ属性値）と、アクセスする対象の業務ＤＢ１３１の各カラムの識別情報（カラム名等）との対応を保持する。これにより、後述するように、ソースコード１０１において画面上に配置された各パーツオブジェクト１０３は、まずＩＤ変換部１１１によって自身のＩＤに対応するカラム名称を取得した後、当該カラム名称をキーとして、業務ＤＢ１３１へのアクセスや、後述する辞書テーブル１２１からの辞書データの取得等の後続の処理を行うことができる。
【００３４】
従って、クライアント端末２００に応答するＨＴＭＬデータ１０２上では、各パーツオブジェクト１０３（によって表示されるコントロール）において、対応する業務ＤＢ１３１のカラム名称をキー等の情報として直接指定する必要がなく、自身のＩＤをキー等の情報とすることができるため、実際のカラム名称をＨＴＭＬデータ１０２上から隠蔽してセキュリティの強化を図ることが可能である。なお、このような変換を行わず、ＨＴＭＬデータ１０２上で各パーツオブジェクト１０３において対応する業務ＤＢ１３１のカラム名称をキー等の情報として直接指定するようにしてもよい。
【００３５】
入力チェック部１１２は、要求メッセージに含まれる、画面上のパーツオブジェクト１０３を介して指定された入力項目のデータの内容について一般的な妥当性チェックを行う機能を有する。妥当性チェックの種類としては、例えば、文字数や文字タイプ（数字やアルファベット、かな、全半角など）、使用可能文字の制限、日時や各種コード値などのフォーマットチェックなどが考えられる。
【００３６】
妥当性チェックの内容は、例えば、システム（特にクライアント端末２００）の言語環境によって異なるものとなり得る。従って、本実施の形態では、入力チェック部１１２において言語毎のバリエーションも考慮した複数パターンの妥当性チェックのタイプを実装しておき、対象の入力項目についていずれのタイプを用いるかを、言語環境に応じて選択・決定するものとする。ここでは、後述する辞書処理部１２０を介して、対象の言語の辞書テーブル１２１にアクセスし、対象の入力項目に対応する辞書データの内容から妥当性チェックのタイプの情報を取得して決定する。
【００３７】
辞書処理部１２０は、データベースやファイルテーブル等により実装される辞書テーブル１２１を有し、例えば、辞書テーブル１２１から、指定されたキー（本実施の形態では、例えば、対象の入出力項目（パーツオブジェクト１０３）に対応する業務ＤＢ１３１のカラム名称）に対する辞書データを取得して出力する機能を有する。辞書テーブル１２１は、例えば、対象となる言語環境やＷｅｂアプリケーションプログラムの業務種別等のカテゴリー毎に複数用意し、選択して使用するようにしてもよい。
【００３８】
辞書テーブル１２１における辞書データの内容やフォーマットは特に限定されない。本実施の形態では、簡易な手法として、例えば後述するように、画面を介して業務ＤＢ１３１の対象のカラムへのデータの入出力処理を行うのに必要な種々のデータ（入出力を行うためのパーツオブジェクト１０３の属性値や制御のために必要なパラメータ等）を所定の順序でカンマ区切り等により指定するものとする。
【００３９】
具体的には、例えば、対応するパーツオブジェクト１０３においてラベルコントロールを表示する際の内容である表示名称や、入出力コントロールとして入力フィールドを表示する際の長さ（文字数）、妥当性チェックの種別やＩＭＥのモードなどの制御処理の内容に係る指定、出力データをテーブルに一覧表示する際の短縮されたテキストである短縮表示名称および表示幅、ドロップダウンリスト等により表示する際の値リストなどが考えられる。
【００４０】
なお、図１の例では、辞書処理部１２０を画面コントロール表示システム１００上に実装する構成としているが、これに限らず、画面コントロール表示システム１００とは別のサーバ機器上に独立して構築してもよい。
【００４１】
ビジネスロジック１３０は、業務ＤＢ１３１を利用して業務アプリケーションとしての処理を行う機能を有する。本実施の形態では、上述したように、業務ＤＢ１３１に対するＣＲＵＤ型アプリケーションを対象とするが、特にこれに限定されるものではない。
【００４２】
応答処理部１４０は、ソースコード１０１の内容に基づくビジネスロジック１３０等の処理結果に基づいてＨＴＭＬデータ１０２を生成し、クライアント端末２００に対して応答する機能を有し、ソフトウェアプログラムにより実装される表示調整部１４１、および表示部１４２などの各部を有する。表示調整部１４１は、応答に含まれる各出力項目について、対応するパーツオブジェクト１０３を表示するためのラベルコントロールのテキストや入出力コントロールの属性値、制御情報などのパラメータ値を取得する。ここでは、辞書処理部１２０を介して対応する言語環境等の辞書テーブル１２１にアクセスして、対象の出力項目（パーツオブジェクト１０３）に対応する辞書データから表示名称や属性値等の各種パラメータ値を取得する。
【００４３】
表示部１４２は、表示調整部１４１が取得した、各パーツオブジェクトについてのラベルコントロールのテキストや入出力コントロールの属性値、制御情報などのパラメータ値に基づいて、各パーツオブジェクトにより表示されるコントロールが配置された応答画面のＨＴＭＬデータ１０２を生成する機能を有する。
【００４４】
＜画面表示処理＞
図２は、ＣＲＵＤ型アプリケーションにおいてパーツオブジェクト１０３により対応するカラムの入出力項目を画面上に表示する際の処理の例について概要を示した図である。図２の例では、業務ＤＢ１３１からデータを読み出す際の検索条件を入力する画面において、“顧客名”を指定する入力フィールドを表示する場合の例を抜粋して示している。
【００４５】
図の上段に示しているＷｅｂアプリケーションプログラムのソースコード１０１では、“顧客名”を指定する入力フィールドを表示するためにパーツオブジェクト１０３を呼び出している。具体的には、まず、ソースコード１０１上に保持されているマッピング情報（図２の例では、array()により対応関係を保持している）からＩＤ（“Ａ０１”）に対応するカラム名称（“customer_name”）の情報を取得する。
【００４６】
その後、例えば、パーツオブジェクト１０３の機能を実装したクラスから継承したサブクラスについてインスタンスを作成する形で呼び出す（“CF_itemDic();”）。図２の例では、パラメータの一部として、呼び出す辞書テーブル１２１のタイプ（“共通辞書”）、表示する入出力コントロールのタイプ（“入力フィールド”）、ＨＴＭＬのＩＤ属性値（“Ａ０１”）などを指定して呼び出した状態を簡略化して示している。なお、ＨＴＭＬのＩＤ属性値（“Ａ０１”）は、マッピング情報によりカラム名称（“customer_name”）に動的に変換される。
【００４７】
このようなコードにより呼び出されたパーツオブジェクト１０３は、データとして、少なくとも表示名であるラベル（ラベルコントロールのテキスト）の論理要素と、表示する入出力コントロールの内容に係る論理要素についての情報を保持する。さらに図２に示すように、内容を説明するテキスト等からなるコメントの論理要素について情報を保持していてもよい。図２の例では、パーツオブジェクト１０３の上記の３つの論理要素のうち、コントロールについては、ソースコード１０１において“入力フィールド”がパラメータとして指定されているため、これが設定される。
【００４８】
呼び出されたパーツオブジェクト１０３は、さらに、所定の関数やメソッド等により辞書処理部１２０を介して対象の辞書テーブル１２１（“共通辞書”）にアクセスして、カラム名称（“customer_name”）に対応する辞書データ（本実施の形態では“顧客名”、４０文字、２０文字、…などの複数の値の集合）を取得する。
【００４９】
図２の例では、辞書テーブル１２１の辞書データとして、上から順に、名称（ラベルコントロールに表示するテキスト）、入力フィールドの場合の長さ（半角時の文字数）、入力フィールドの場合の最大長さ（文字数）、入力データの妥当性チェックのタイプ、ＩＭＥの初期モード、説明コメント、テーブルに一覧表示する場合のテキスト（表示名）、およびテーブルに一覧表示する場合の表示幅（ピクセル値）などの情報を保持するものとしている。なお、これらの辞書データを取得する際の出力フォーマットとしては、例えば、これらの値をカンマ等で区切った一連の文字列としてもよいし、連想配列等のアクセスしやすいデータとしてもよい。
【００５０】
辞書テーブル１２１については、処理効率を考慮した場合、初期処理もしくは最初のアクセス時にメモリ上に辞書データの内容を展開するのが望ましい。この場合、全ての辞書データを展開するとメモリ使用量を圧迫したり、展開処理に時間を要したり等、却って処理効率が低下する場合がある。従って、実装上は、必要な時に必要な範囲の辞書データをメモリ上に展開できるようにするのが望ましい。
【００５１】
そこで、本実施の形態では、適用範囲が異なる複数の辞書テーブル１２１からなる階層構造を有し、これらを適宜選択して使用する構成をとる。例えば、画面コントロール表示システム１００上で稼働するシステムやアプリケーション全体で共通の辞書（“共通辞書”）や、指定されたＷｅｂサイト内でのみ共通の辞書（“サイト辞書”）、サブシステム内でのみ共通の辞書（“ライブラリ辞書”）、画面単位での辞書（“コントローラ辞書”）などの、適用範囲が異なる複数種類の辞書テーブル１２１を有するものとする。
【００５２】
この場合、例えば、“コントローラ辞書”などの適用範囲の狭い辞書を参照して該当する辞書データが得られなかった場合に、“ライブラリ辞書”→“サイト辞書”→“共通辞書”と順に上位の（適用範囲が広い）辞書テーブル１２１に遡って参照できるようにしてもよい。また、辞書データが得られなかったとしてデフォルト値を用いるようにしたりエラーとしたりしてもよい。
【００５３】
パーツオブジェクト１０３は、取得した辞書データから必要なデータを抽出して、コントロールを表示したり制御したりする際のパラメータとして設定する。例えば、入出力コントロールとして入力フィールドを表示する場合の属性値として、辞書データから取得したフィールドの長さを設定するとともに、妥当性チェックのタイプやＩＭＥの初期モードなどの値、説明コメントの内容などを設定する。なお、入力データの妥当性チェックや、ＩＭＥのモード設定などの入出力コントロールの制御に係る処理は、入力チェック部１１２や表示部１４２の機能であるが、具体的な実装としては、例えば、パーツオブジェクト１０３の継承元のクラスにメソッドとして定義しておくなど、パーツオブジェクト１０３が有する、もしくはパーツオブジェクト１０３が呼び出すことができる機能として実装しておくものとする。
【００５４】
これにより、図２の下段の画面２０１の例に示すように、実行時に“顧客名”を指定するための入力フィールドのコントロールを表示するよう、パーツオブジェクト１０３がＨＴＭＬデータ１０２を生成することができる。このとき、後述するように、パーツオブジェクト１０３の説明コメントの情報を当該入出力項目についてのヘルプ情報等として用いることができる。
【００５５】
なお、入力フィールドを表示する場合、入力フィールドのコントロールだけを表示したのでは何を入力すべきかが不明であるため、本実施の形態では、図２に示すように、当該パーツオブジェクト１０３に対応する入出力項目の表示名（“顧客名”）を表示するテキストコントロールを入力フィールドに隣接させてラベルとして表示する（ラベルコントロール）。当該テキストは、パーツオブジェクト１０３の保持データにおけるラベルの情報、すなわちパーツオブジェクト１０３が辞書テーブル１２１から取得した辞書データの名称の値（“顧客名”）を設定する。
【００５６】
このようなＨＴＭＬデータ１０２の生成に係る処理は、表示部１４２等の機能であるが、具体的な実装としては、例えば、パーツオブジェクト１０３の継承元のクラスにメソッドとして定義しておくなど、パーツオブジェクト１０３が有する、もしくはパーツオブジェクト１０３が呼び出すことができる機能として実装しておくものとする。なお、ここでは、上述したように、表示するラベルコントロールや入出力コントロール、および説明コメントを表示するコメントコントロールの３つの要素を一つの単位として、一括して整合性を持った形でレイアウトや外観に係る属性値等を調整するものとする。
【００５７】
図３は、パーツオブジェクト１０３のソースコード１０１上でのレイアウト調整の実装例について概要を説明する図である。図３（ａ）は、クライアント端末２００に表示される画面２０１上でのパーツオブジェクト１０３により表示されたコントロールのレイアウト例を示している。ここでは、パーツオブジェクト１０３は、ラベルコントロールとして“郵便番号”のテキストを表示するテキストコントロールと、“郵便番号”を入力するための入力フィールドと、説明コメントとして“（例）１００−００００”のテキストを表示するコメントコントロール（テキストコントロール）とを含み、これらをそれぞれ、１２０ピクセル、２００ピクセル、１５０ピクセルの幅で並べてレイアウトした場合を示している。
【００５８】
図３（ｂ）は、例えばＪＳＦ（JavaServer Faces）などの従来技術により、図３（ａ）の例のようなコントロールのレイアウトを行う場合のソースコード１０１の記載例を示している。ここでは、３つの要素（コントロール）毎にそれぞれ、幅のピクセル数を指定して個別にコントロールを表示するためのコードを記載する必要があることを示している。
【００５９】
これに対し、図３（ｃ）は、例えばＰＨＰ（Hypertext Preprocessor）などによる本実施の形態におけるソースコード１０１の記載例を示している。ここでは、まず、画面表示を行うオブジェクト（“ViewObject”）に対して表示する各コントロールの幅のピクセル数（１２０、２００、１５０）を一括で指定しているとともに、後述するような３つの要素の配置パターン（‘fmt:pc’）の指定も合わせて行なっている。このように、パーツオブジェクト１０３についてのレイアウト情報を独立して指示することができる。
【００６０】
さらに、次の行で、パーツオブジェクト１０３を表示させるコードを記載している。ここでは、カラム名称（‘postal_cd’）に対応する辞書データを、辞書テーブル１２１における“ライブラリ辞書（‘_bi’）”から取得し、辞書データに指定された属性やテキスト等の外観の情報、および先に取得したレイアウト情報に基づいて、画面表示を行うオブジェクト（“ViewObject”）がパーツオブジェクト１０３（ラベルコントロール、入力フィールド（‘txt’）、説明コメント）を一括で表示する旨を指定している。図３（ｃ）の例では、図３（ｂ）のようにコントロール毎に個別にレイアウトの調整情報等を都度指定する必要がなく、レイアウト調整に係るコードの記載量（開発者の負荷）を大きく低減させることが可能となる。
【００６１】
図４は、パーツオブジェクト１０３の３要素の配置パターンと表示例について概要を示した図である。ここでは、図３（ａ）（ｃ）に示したように、例えば、クライアント端末２００がＰＣやスマートフォン等である場合の基本的なレイアウト（‘fmt:pc’）をとる場合、各コントロールの表示領域として、左から順にラベルコントロールを表示するラベル部、入力フィールド等の入出力コントロールを表示するコントロール部、コメントコントロールを表示するコメント部の３つの領域を並べて配置することを示している。
【００６２】
このとき、画面２０１上では、同じレイアウトをとる複数の入出力項目につき、同様の位置関係で自動的に配置することができる。なお、“郵便番号”、“住所１”、“住所２”、“代表電話番号”の各入出力項目については、ラベル部、コントロール部、コメント部の各部について表示の幅も同じ値として整列させて表示している。この場合は、これらのパーツオブジェクト１０３を表示する前に、一度図３（ｃ）の１行目の例に示すように各表示領域の幅などのレイアウト情報を設定しておけば、変更するまで同じレイアウト情報で連続して配置するように制御することで開発の負荷をさらに低減させることができる。
【００６３】
また、コントロール部に表示する入出力コントロールは、入力フィールドに限らず、例えば、図中の“ユニークキー”の入出力項目に示すようなラジオボタンや、ドロップダウンリストなどのコントロールとすることもできる。
【００６４】
図５は、パーツオブジェクト１０３の３要素の配置パターンの他の例について概要を示した図である。図５（ａ）（ｂ）では、クライアント端末２００が携帯電話等の小画面の端末である場合のレイアウト例を示している。図５（ａ）では、コントロール部の右側にラベル部を配置するとともに、コメント部はその下部に必要に応じて表示するよう配置する。同様に、図５（ｂ）では、ラベル部、コントロール部を上下に配置し、その下部にコメント部を必要に応じて表示するよう配置する。これらのパターンでは、説明コメントがない場合（不要な場合）は表示しないようにして狭い画面を効率的に利用することを図る。
【００６５】
また、図５（ｃ）（ｄ）では、クライアント端末２００がスマートフォンなどである場合のレイアウト例を示している。図５（ｃ）では、コメント部を上部に配置し、その下部にラベル部とコントロール部を並べて配置する。図５（ｄ）では、ラベル部とコントロール部を並べて配置するとともに、さらにコメント部をアイコン等によって配置し、当該アイコンが選択されることでコメント部をテキストコントロールではなくポップアップウィンドウ等により表示することで、ＰＣ等に比べて狭い画面を効率的に利用することを図る。
【００６６】
このように、本実施の形態では、ソースコード１０１において入出力項目をパーツオブジェクト１０３を用いて表示するよう記載することで、複数の入出力項目（パーツオブジェクト１０３）についてレイアウトを統一的に調整して表示するようＨＴＭＬデータ１０２を生成することができる。従って、本実施の形態におけるＣＲＵＤ型アプリケーションは、業務ＤＢ１３１の各カラムに対応する入出力項目としてパーツオブジェクト１０３を所定のルールに従って画面上に配置し、標準的な機能や動作の実装と組み合わせるようソースコード１０１を作成することで実現することができる。また、アプリケーションプログラムの開発支援システム等として、このようなソースコード１０１を自動的に生成する機能を実装することも可能である。
【００６７】
例えば、業務ＤＢ１３１へのエントリーの登録（Ｃ：Create）を行うアプリケーションとしては、業務ＤＢ１３１の各カラムに対して登録するデータを指定する入力フィールドを画面上に表示するためのパーツオブジェクト１０３を、業務ＤＢ１３１のカラムの並び順に従って配置するようソースコード１０１を作成する。このとき、必要に応じて画面表示するコントロールのＩＤとカラムの名称との対応関係をマッピング情報として保持しておく。さらに、標準的な機能として業務ＤＢ１３１へのエントリーの登録を実行するための“登録”ボタンや“キャンセル”ボタンなどを配置する。さらに、辞書テーブル１２１に、各パーツオブジェクト１０３についてコントロールを表示する際に用いる属性値や制御情報などの情報を辞書データとして保持しておく。このとき、各項目について特に指定がされない場合はそれぞれデフォルト値により設定する。
【００６８】
また、例えば、業務ＤＢ１３１に対する検索（Ｒ：Read）を行うアプリケーションとしては、上記と同様に、業務ＤＢ１３１を検索するための条件を指定する入力フィールドを画面上に表示するためのパーツオブジェクト１０３を配置するようソースコード１０１を作成する。このとき、業務ＤＢ１３１の対象テーブルの全カラムについて検索条件として指定可能とすると過剰になることから、例えば、暫定的に先頭の５つのカラムについてだけ入力フィールドを表示するなどの簡略化を行ない、後から変更可能としてもよい。また、必要に応じて画面表示するコントロールのＩＤとカラムの名称との対応関係をマッピング情報として保持しておく。さらに、標準的な機能として業務ＤＢ１３１のエントリーの検索を行うための“検索”ボタンなどを配置する。
【００６９】
また、例えば、検索条件を入力する領域の下部に、検索結果を表示するためのテーブル（表）コントロールを自動的に配置する。ここでは、例えば、テーブルコントロールのオブジェクトの項目定義配列に、業務ＤＢ１３１の各カラムに対応するパーツオブジェクト１０３の呼び出しに相当する内容を設定する。例えば、テーブルのタイトル行を各パーツオブジェクト１０３で共通のラベル部の表示領域とし、テーブルの各行を各パーツオブジェクト１０３のコントロール部の表示領域とする。これにより、テーブルコントロールの各列に業務ＤＢ１３１の各カラムの内容が表示されるよう、表示部１４２もしくはパーツオブジェクト１０３を実装することが可能である。
【００７０】
以上に説明したように、本発明の一実施の形態である画面コントロール表示システム１００によれば、例えば、業務データベースにアクセスするＣＲＵＤ型のＷｅｂアプリケーションプログラムにおいて、画面上に表示する入出力項目等を複数の論理要素単位に対応する画面コントロールからなるパーツオブジェクト１０３により表示し、レイアウト情報を独立させることで、そのレイアウトや属性等を画面全体でパーツオブジェクト１０３単位で統一的に調整することが可能となる。
【００７１】
これにより、例えば、表示可能領域に対して、ラベルコントロールが意図しない箇所で改行されたり、逆に意図した箇所で改行されなかったり等を防止するよう、ラベルコントロールと入出力コントロールの表示幅を一体的に調整することや、ラジオボタンなどデバイスやＯＳ等によって外観が異なる入出力コントロールについて、複数のデバイスやＯＳ等に応じてラベルコントロールと一体的に表示位置や幅等を動的に調整することなどが可能となる。また、複数の入出力項目間で統一的に各コントロールのレイアウトを調整して整合性をもった形で配置することが可能となる。
【００７２】
また、パーツオブジェクト１０３が入出力項目と１対１で対応することになるため、各コントロールに対するパラメータや属性値などをまとめて辞書データ等として外出しにし、入出力項目と対応付けて管理することが容易となる。また、要素である複数の画面コントロール間のレイアウト調整に係る情報をパーツオブジェクト１０３とは独立して定義することが可能となり、コントロール間のレイアウト調整に要する負荷を大きく低減させることが可能となる。
【００７３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、本実施の形態では、標準的なＣＲＵＤ型のＷｅｂアプリケーションを対象にしているがこれに限らない。ユーザが、例えば、辞書テーブル１２１とパーツオブジェクト１０３を組み合わせた形で、ユーザインタフェースやビジネスロジックなどの動作内容も含めて構築した独自のアプリケーション（Ｗｅｂアプリケーションに限らず、クライアント／サーバ型やスタンドアロン型などであってもよい）に対して、同様の概念により、パーツオブジェクト１０３のレイアウトを調整することが可能である。
【産業上の利用可能性】
【００７４】
本発明は、画面コントロールの表示を統一的に制御する画面コントロール表示システムおよび画面コントロール表示プログラムに利用可能である。
【符号の説明】
【００７５】
１００…画面コントロール表示システム、１０１…ソースコード、１０２…ＨＴＭＬデータ、１０３…パーツオブジェクト、１１０…要求処理部、１１１…ＩＤ変換部、１１２…入力チェック部、１２０…辞書処理部、１２１…辞書テーブル、１３０…ビジネスロジック、１３１…業務データベース（ＤＢ）、１４０…応答処理部、１４１…表示調整部、１４２…表示部、
２００…クライアント端末、２０１…画面、
３００…ネットワーク。
【図１】
2014059700.tif 000003
【図２】
2014059700.tif 000004
【図３】
2014059700.tif 000005
【図４】
2014059700.tif 000006
【図５】
2014059700.tif 000007