(57)【特許請求の範囲】
【請求項１】
業務管理システムで用いる入出力画面を自動的に生成する入出力画面生成システムであって、
前記入出力画面生成システムは、
パネルと、そのパネルに含まれる項目とを記憶する状態管理テーブルと、
前記各項目の入力属性と桁数の情報とを少なくとも含む属性情報を記憶する入出力領域定義テーブルと、
前記入力属性ごとのコントロールに関する情報を記憶するモジュール定義テーブルと、
前記入出力画面のパネルと項目の配置処理を実行する画面構成部品制御手段と、を有しており、
前記画面構成部品制御手段は、
予め表示指示が設定されている、または新たに表示指示がなされた前記項目を表示し、
前記入出力画面のサイズ変更および前記項目の数の変更に伴って、変更後の前記入出力画面のサイズに収まるように前記パネルと項目を含む画面構成部品の再配置処理を実行するものであって、
前記入出力画面の表示要求を受け付けると、パネルとその項目の情報を前記状態管理テーブルから取得し、
前記取得した各項目の情報に基づいて、項目ごとの前記属性情報を前記入出力領域定義テーブルから取得し、
前記取得した属性情報における入力属性に基づいて、その入力属性を実現するコントロールの種別を前記モジュール定義テーブルを用いて決定し、
前記決定したコントロールの種別と前記取得した属性情報における桁数とを用いて、前記項目の入出力領域のサイズを決定し、
前記決定した入出力領域のサイズと前記項目の項目名のサイズとを用いて、項目サイズを決定し、
前記決定した各項目のサイズに基づいてパネルサイズを決定し、
前記入出力画面の初期ウィンドウサイズをクライアント端末のＯＳから取得し、
前記決定した各パネルサイズと前記入出力画面のウィンドウサイズとを比較することにより、前記各パネルを前記入出力画面のウィンドウに配置することで、入出力画面を自動的に生成し、
前記入出力画面のウィンドウサイズが変更されたことを検出すると、前記ＯＳから変更後のウィンドウサイズの情報を取得し、変更後のウィンドウサイズと各パネルの大きさの判定を行い、
前記変更後のウィンドウサイズが、パネルをそのままでは配置できない大きさの場合には、さらに、前記変更後のウィンドウサイズとパネルのサイズと項目のサイズとを比較して、前記変更後のウィンドウサイズに収まるようにパネル自体を変形して、該パネル内に各項目を配置する処理を行う、
ことを特徴とする入出力画面生成システム。
【請求項２】
前記画面構成部品制御手段は、
前記決定した各パネルのサイズと、前記入出力画面のウィンドウサイズとを比較した結果、ウィンドウサイズが各パネルのサイズよりも小さい場合には、スクロール表示を実行して、前記各パネルを前記入出力画面のウィンドウに配置する、
ことを特徴とする請求項１に記載の入出力画面生成システム。
【請求項３】
前記状態管理テーブルには、さらに、
前記パネルに含まれる項目を表示するか否かを示す情報を記憶しており、
前記画面構成部品制御手段は、
前記状態管理テーブルから項目の情報を取得する際に、表示する項目のみを取得する、
ことを特徴とする請求項１または請求項２に記載の入出力画面生成システム。
【請求項４】
前記入出力画面生成システムは、さらに、
各ユーザの入出力に関する制限情報を定義したユーザ情報管理テーブルと、
前記ユーザ情報管理テーブルに基づいて各ユーザが使用不可能な項目について非表示とし、かつ変更不可とする制御を行う起動制御手段と、を有しており、
前記起動制御手段の処理が前記画面構成部品制御手段の処理の前に実行される、
ことを特徴とする請求項１から請求項３のいずれかに記載の入出力画面生成システム。
【請求項５】
前記状態管理テーブルは、さらに、グループ名を記憶しており、
前記画像構成部品制御手段は、
各パネルを入出力画面のウィンドウに配置するにあたり、同じパネル内において、前記グループ名に基づいて、同じグループ名の項目を隣接して配置する、
ことを特徴とする請求項１から請求項４のいずれかに記載の入出力画面生成システム。
【請求項６】
前記入出力画面生成システムは、更に、
前記パネルを入出力画面のウィンドウに配置する前に、縦方向に配置するパネルにおける各項目の位置を整列させる整列手段、
を有することを特徴とする請求項１から請求項５のいずれかに記載の入出力画面生成システム。
【請求項７】
前記整列手段は、
前記縦方向に配置するパネルの各項目の項目名の文字数のうち、最大の文字数を取得し、前記縦方向に配置するパネルの各項目のサイズをその最大の文字数の幅に揃える、ことで整列処理を実行する、
ことを特徴とする請求項６に記載の入出力画面生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務管理システムで用いる入出力画面において、ユーザの要求に応じて、入出力画面に表示される項目が自動的に設定・再配置される入出力画面生成システムに関する。
【背景技術】
【０００２】
企業などで業務を遂行するために、商品管理、販売管理、給与管理など様々な分野の業務を管理するための業務管理システムを用いている。そして業務管理システムにおいて、データの追加や修正、変更等の作業行う場合には所定の画面（これを「入出力画面」という）を起動することにより、上記作業を実行する。図７に従来の入出力画面の一例を示す。
【０００３】
図７に示す従来の入出力画面では、そのウィンドウサイズや各項目の配置は固定されている。そしてどのユーザにとっても必要な基本項目、各ユーザが独自に拡張したい拡張項目とタブによって切り替えられるようになっている。
【０００４】
また従来の入出力画面のほかの一例として図８がある。この場合、基本項目と拡張項目がタブによって切り替えられるのは上記図８と同じであるが、図８の場合には、基本項目として「名称」、「住所」のほかに、「分類」、「特記」の各項目が設けられた場合である。このようにすることで一つの画面で多数の項目を入力することはできる。
【０００５】
更に下記特許文献１には、ウィンドウ中のアイコンの一覧性向上を目的としたアイコンのスケーリングに関するシステムが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−５５８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の従来の入出力画面のうち、図７の場合には、タブを用いることで複数の項目を入力できるし、すべてのユーザにとって必要な基本項目と、各ユーザごとに拡張して個別に必要な拡張項目を、タブごとに分けて整理されて表示されるので、有益な面もある。しかし、例えば基本項目の「住所」と、拡張項目の項目「特記事項２」とを変更するとき、ユーザはタブを切り替えた上で入力する必要がある。しかしユーザとしては、タブを切り替えるのは煩雑であるし、また基本項目のうちの空白部分に、拡張項目の各項目が位置しており、全体として一画面で表示された方が操作性、一覧性の面で便利である。
【０００８】
また図８の場合は、図７の場合における問題を多少は解決し得ようが、一つの画面で表示される項目が増えてしまっている。そしてすべてのユーザにとって基本項目のタブに表示されている項目が必要とは限らない。そのためユーザにとって必要ではない項目については表示させたくない、といった要望があるが対応することは難しい。
【０００９】
このように、マスターの種類や項目数の違いによって表示される入出力画面は、それぞれに応じた適切な画面が表示されることが好ましいが、上述のように従来ではそれが行えていない。なぜならばマスターの種類や項目数の違いによって各項目の配置などを変更した画面を用意するには様々な表示プログラムが必要となり、プログラム作成上、非常に煩雑であるばかりか、後にカスタマイズなどを行う場合には、これらの各表示プログラムに同じような修正を行わなければならない可能性もあるからである。
【００１０】
またこれによりカスタマイズに要する時間が増大し、修正箇所も増えるため、予期しないバグが発生する危険性も高まってしまう。
【００１１】
結局のところ、操作性と、プログラム作成・カスタマイズなどの問題点を比較衡量した結果、通常は、上述のように図７や図８のような、すべてのユーザにとって共通の表示プログラムが用いられることとなっている。
【００１２】
そのため、入出力画面の操作性・一覧性の向上と、表示プログラムの作成・カスタマイズ上の煩雑さ解消とを同時に実現する解決策が待望されている。
【００１３】
なお上記特許文献１を用いることによって、確かにアイコンのスケーリングを実現することができるが、これはアイコンという入出力領域を持たない項目の再配置に過ぎず、本発明のように入出力領域を備える入出力画面の自動生成システムとは技術分野が全く異なる。
【課題を解決するための手段】
【００１４】
本発明者は上記問題点に鑑み、業務管理システムの入出力画面について、ユーザの要求に応じて、入出力画面の項目が自動的に設定・配置される入出力画面生成システムを発明した。
【００１５】
請求項１の発明は、業務管理システムで用いる入出力画面を自動的に生成する入出力画面生成システムであって、前記入出力画面生成システムは、パネルと、そのパネルに含まれる項目とを記憶する状態管理テーブルと、前記各項目の入力属性と桁数の情報とを少なくとも含む属性情報を記憶する入出力領域定義テーブルと、前記入力属性ごとのコントロールに関する情報を記憶するモジュール定義テーブルと、前記入出力画面のパネルと項目の配置処理を実行する画面構成部品制御手段と、を有しており、前記画面構成部品制御手段は、予め表示指示が設定されている、または新たに表示指示がなされた前記項目を表示し、前記入出力画面のサイズ変更および前記項目の数の変更に伴って、変更後の前記入出力画面のサイズに収まるように前記パネルと項目を含む画面構成部品の再配置処理を実行するものであって、前記入出力画面の表示要求を受け付けると、パネルとその項目の情報を前記状態管理テーブルから取得し、前記取得した各項目の情報に基づいて、項目ごとの前記属性情報を前記入出力領域定義テーブルから取得し、前記取得した属性情報における入力属性に基づいて、その入力属性を実現するコントロールの種別を前記モジュール定義テーブルを用いて決定し、前記決定したコントロールの種別と前記取得した属性情報における桁数とを用いて、前記項目の入出力領域のサイズを決定し、前記決定した入出力領域のサイズと前記項目の項目名のサイズとを用いて、項目サイズを決定し、前記決定した各項目のサイズに基づいてパネルサイズを決定し、前記入出力画面の初期ウィンドウサイズをクライアント端末のＯＳから取得し、前記決定した各パネルサイズと前記入出力画面のウィンドウサイズとを比較することにより、前記各パネルを前記入出力画面のウィンドウに配置することで、入出力画面を自動的に生成し、前記入出力画面のウィンドウサイズが変更されたことを検出すると、前記ＯＳから変更後のウィンドウサイズの情報を取得し、変更後のウィンドウサイズと各パネルの大きさの判定を行い、前記変更後のウィンドウサイズが、パネルをそのままでは配置できない大きさの場合には、さらに、前記変更後のウィンドウサイズとパネルのサイズと項目のサイズとを比較して、前記変更後のウィンドウサイズに収まるようにパネル自体を変形して、該パネル内に各項目を配置する処理を行う、入出力画面生成システムである。
【００１６】
本発明を用いることで、業務管理システムの入出力画面について、ユーザの要求に応じて入出力画面の各項目を自動的に設定・配置することが可能となる。これによってユーザにとっては、入出力画面の操作性・一覧性が向上する。またシステムの作成側にとっては、複雑な表示プログラムを作成することがなくなるので、プログラムの作成・カスタマイズ上の煩雑さが解消される。
【００１７】
さらに、前記画面構成部品制御手段は、前記決定した各パネルのサイズと、前記入出力画面のウィンドウサイズとを比較した結果、ウィンドウサイズが各パネルのサイズよりも小さい場合には、スクロール表示を実行して、前記各パネルを前記入出力画面のウィンドウに配置する、入出力画面生成システムである。
【００１８】
入出力画面のウィンドウサイズが、各パネルのサイズの合計よりも小さい場合がある。その場合には、スクロール表示、あるいは縮小表示をすることで対応することが好ましい。
【００１９】
前記状態管理テーブルには、さらに、前記パネルに含まれる項目を表示するか否かを示す情報を記憶しており、前記画面構成部品制御手段は、前記状態管理テーブルから項目の情報を取得する際に、表示する項目のみを取得する、入出力画面生成システムのように構成しても良い。
【００２０】
本発明のように構成することで、ユーザが選択した、ユーザにとって必要な項目のみが表示されることとなる。これによってユーザは自らが不要と判断した項目については、非表示の選択をしておけば、それが入出力画面において表示されることがなくなる。
【００２１】
前記入出力画面生成システムは、さらに、各ユーザの入出力に関する制限情報を定義したユーザ情報管理テーブルと、前記ユーザ情報管理テーブルに基づいて各ユーザが使用不可能な項目について非表示とし、かつ変更不可とする制御を行う起動制御手段と、を有しており、前記起動制御手段の処理が前記画面構成部品制御手段の処理の前に実行される、入出力画面生成システムのように構成しても良い。
【００２２】
前記状態管理テーブルは、さらに、グループ名を記憶しており、前記画像構成部品制御手段は、各パネルを入出力画面のウィンドウに配置するにあたり、同じパネル内において、前記グループ名に基づいて、同じグループ名の項目を隣接して配置する、入出力画面生成システムのように構成しても良い。
【００２３】
前記入出力画面生成システムは、さらに、前記パネルを入出力画面のウィンドウに配置する前に、縦方向に配置するパネルにおける各項目の位置を整列させる整列手段、を有する入出力画面生成システムのように構成しても良い。
【００２４】
縦に配置されている各項目名は整列して表示されている方が見かけ上、良い。そのため本発明を用いることで、それを実現することができる。
【００２５】
さらに、前記整列手段は、前記縦方向に配置するパネルの各項目の項目名の文字数のうち、最大の文字数を取得し、前記縦方向に配置するパネルの各項目のサイズをその最大の文字数の幅に揃える、ことで整列処理を実行する、入出力画面生成システムのように構成しても良い。
【００２６】
整列処理にはいくつか方法があるが、本発明のように実行することが好ましい。
【発明の効果】
【００２７】
本発明の入出力画面生成システムによって、業務管理システムの入出力画面について、ユーザの要求に応じて、入出力画面の項目が自動的に設定・再配置される。そのため、入出力画面の操作性・一覧性の向上と、表示プログラムの作成・カスタマイズ上の煩雑さ解消とを同時に実現することが可能となる。
【図面の簡単な説明】
【００２８】
【図１】本発明の全体のシステム構成の一例を示す概念図である。
【図２】ハードウェア構成の一例を示す概念図である。
【図３】全体の処理プロセスの一例を示すフローチャートである。
【図４】パネルサイズの決定の処理プロセスの一例を示すフローチャートである。
【図５】パネルの配置の処理プロセスの一例を示すフローチャートである。
【図６】表示方法選択の処理プロセスの一例を示すフローチャートである。
【図７】従来の入出力画面の一例である。
【図８】従来の入出力画面の他の例である。
【図９】状態管理テーブルの概念図である。
【図１０】入出力領域定義テーブルの概念図である。
【図１１】ユーザ情報管理テーブルの概念図である。
【図１２】モジュール定義テーブルの概念図である。
【図１３】コントロール名と、そのコントロールにより表示される入出力領域の一例である。
【図１４】基本項目のパネルが表示される状態を模式的に示す図である。
【図１５】入出力画面のウィンドウに各パネルが配置された場合の一例を示す図である。
【図１６】項目名の整列処理を模式的に示す図である。
【図１７】初期状態の入出力画面の一例を示す図である。
【図１８】項目の追加等の入力を行う画面の一例である。
【図１９】入出力領域定義テーブルの拡張項目定義テーブルを模式的に示す図である。
【図２０】拡張項目が登録された状態管理テーブルを模式的に示す図である。
【図２１】設定した拡張項目を表示した場合の入出力画面の一例である。
【図２２】各項目の表示・非表示を選択する画面の一例である。
【図２３】各項目について表示・非表示を登録した場合の状態管理テーブルを模式的に示す図である。
【図２４】図２３の状態管理テーブルに基づいて生成した入出力画面の一例である。
【図２５】各パネルを縮小した場合の入出力画面の一例である。
【図２６】スクロール表示を行う場合の入出力画面の一例である。
【図２７】項目も再配置する場合の入出力画面の一例である。
【図２８】項目も再配置する場合の入出力画面の一例である。
【図２９】入出力画面の一例である。
【図３０】図２９の入出力画面のウィンドウサイズを変更した結果、パネル名「単価」がまとめて配置場所が移動した場合の入出力画面の一例である。
【発明を実施するための形態】
【００２９】
本発明の入出力画面生成システム１のシステム構成の一例を図１に示す。
【００３０】
入出力画面生成システム１は、アプリケーションサーバ２に備えられるサーバモジュールと、データベースサーバ３に備えられる各種データと、クライアント端末４により構成される。
【００３１】
なお本発明の入出力画面生成システム１は、業務管理システムの一部として備えられていることが好ましい。業務管理システムは、企業などの業務遂行にあたり必要な業務ソフトウェアとこのソフトウェアを実行するハードウェア（コンピュータ端末やサーバなど）から構成されるシステムであり、例えば会計管理システム、販売・購買管理システム、人事・給与管理システム、顧客管理システム（ＣＲＭシステム）、営業支援システム（ＳＦＡ（Sales Force Automation）システム）などがある。またこれらの各システムがモジュールとしてリアルタイムに連携し、データを一括管理してもよい。
【００３２】
入出力画面生成システム１は、本発明の処理を制御するサーバやコンピュータ端末上で実現される。図２にサーバやコンピュータ端末のハードウェアの概念図を模式的に示す。これらのサーバやコンピュータ端末には、プログラムの演算処理を実行するＣＰＵなどの演算装置２０と、情報を記憶するＲＡＭやハードディスクなどの記憶装置２１とを少なくとも有している。サーバやコンピュータ端末上で実現する各機能（各手段）は、その処理を実行する手段（プログラムやモジュールなど）が演算装置２０に読み込まれることでその処理が実行される。各機能は、記憶装置２１に記憶した情報をその処理において使用する場合には、該当する情報を当該記憶装置２１から読み出し、読み出した情報を適宜、演算装置２０における処理に用いる。当該サーバやコンピュータ端末には、演算装置２０の処理結果や記憶装置２１に記憶する情報をインターネットやＬＡＮなどのネットワークを介して送受信する通信装置２４、キーボードやマウスやテンキーなどの入力装置２３、ディスプレイなどの表示装置２２を有していても良い。
【００３３】
本発明における各機能（各手段）は、その機能が論理的に区別されているのみであって、物理上あるいは事実上は同一の領域を為していても良い。また各機能は、一または複数のプログラムやモジュール、装置等により処理することも可能である。
【００３４】
データベースサーバ３は状態管理テーブル８と入出力領域定義テーブル９とユーザ情報管理テーブル１０とモジュール定義テーブル１１とを少なくとも有している。
【００３５】
状態管理テーブル８は、入出力画面における項目の入出力領域の表示・非表示の情報と、各項目がどのパネルに包含されるかの情報を管理するテーブルである。図９に状態管理テーブル８の概念図を示す。なお状態管理テーブル８は、マスター別に、複数のユーザごとに設けられる。なおここでは「表示」とされているのはその項目が入出力画面において表示される項目、「非表示」とされているのはその項目が入出力画面において表示されない項目である。
【００３６】
入出力領域定義テーブル９は、入出力画面における項目の入出力領域の入力属性（例えば全角文字、半角カタカナ、日付など）と、表示される桁数（文字数）などの属性情報を定義するテーブルである。図１０に入出力領域定義テーブル９の概念図を示す。図１０の場合には、商品マスターの項目を定義する場合の入出力領域定義テーブル９の例である。なお入出力領域定義テーブル９には、予め設定されている初期テーブルと、新たにユーザが設定する入出力領域の情報を管理する拡張テーブルとの２種類ある。後述する画面構成部品制御手段が入出力領域定義テーブル９を参照する際には、この初期テーブルと拡張テーブルの双方を参照する。また初期テーブルと拡張テーブルに分けずに、一つのテーブルで管理しても良い。
【００３７】
ユーザ情報管理テーブル１０は、各ユーザの入出力に関する制限情報が定義されているテーブルである。図１１にユーザ情報管理テーブル１０の概念図を示す。
【００３８】
モジュール定義テーブル１１は、入出力領域を表示するためのソフトウェアモジュールを決定するための情報が定義されたテーブルである。図１２にモジュール定義テーブル１１の概念図を示す。なお図１２ではコントロール名を模式的に示しているが、実際に定義されているのはこれらのコントロール（ソフトウェアモジュール）が格納された領域を示す情報である。図１３に、図１２の各コントロールが実行された場合の入出力領域の表示状態を示す。
【００３９】
ここでは項目名と入出力領域を表示できるコントロール（複合コントロール）を示したが、項目名のみを表示するためのコントロールと、入出力領域を表示するためのコントロールのように、単一の機能を持つコントロールを複数用意して、実行時に組み合わせて項目を表示するようにしても良い。例えば、「商品名」という項目名の場合、システムは入出力領域定義テーブル９を参照し、「属性＝全角文字」、「桁数＝２０」を取得する。項目名表示用に全角文字出力用コントロールと、入出力領域表示用に全角文字入力用コントロールとを呼び出し、全角文字出力用コントロールには「商品名」から３文字分の表示域を確保して商品名を表示させ、かつ、２０桁が入力できる入出力領域をその横に表示する。このように、項目名から単一の機能を持つコントロールを複数決定して実行し、組み合わせて表示することによって複雑な入出力領域を表示しても良い。
【００４０】
また、範囲を入出力できるコントロールについては、ある一時点のみの表示を行うこともできる。例えば「XXXX/XX/XX」から「YYYY/YY/YY」という入力領域を表示するコントロールは、ユーザが「2007/10/01」と始期を入力し、「から」部分を「のみ」と変更すると「のみ」の部分と終期「YYYY/YY/YY」の部分を非表示にして「2007/10/01」と表示する。このようにすることで特化したコントロールを必要以上にシステムが保持する必要がない。
【００４１】
なおデータベースサーバ３には、更にマスターテーブルを備えていても良い。マスターテーブルには、業務管理システムで用いるデータが記憶されており、例えば商品マスターテーブルや顧客マスターテーブルとして管理されている。
【００４２】
アプリケーションサーバ２のサーバモジュールは、画面構成部品制御手段５と起動制御手段６と整列手段７とを有する。
【００４３】
画面構成部品制御手段５は、入出力画面上に少なくとも一つの画面構成部品を配置し、入出力画面のウィンドウサイズの変更や、表示される入出力領域の数などによって、画面構成部品の形状を変更し、あるいは再配置を行う。
【００４４】
画面構成部品制御手段５は、ソフトウェアモジュールとしてアプリケーションサーバ２から、各クライアント端末４に配信され、クライアント端末４側に組み込まれて動作する。画面構成部品制御手段５に変更があった場合には、各クライアント端末４にアプリケーションサーバ２が再度配信する。カスタマイズ、アップデートなどにより変更が生じた場合でも、各クライアント端末４に個別にインストールする必要がなく、クライアント端末４の管理が容易となる。なお、アプリケーションサーバ２からクライアント端末４に配信せず、クライアント端末４側はウェブブラウザなどを用いてアプリケーションサーバ２の画面構成部品制御手段５と入力データと画面表示用データを送受信するのみであっても良い。この場合にはいわゆるウェブシステムとなる。
【００４５】
なお画面構成部品には一または複数の入出力領域が表示される。例えば入出力画面上の入出力領域（例えば商品名、索引といった入出力領域）とその見出し（例えば基本項目）は状態管理テーブル８によって一つの画面構成部品として関連づけられている。画面構成部品は関連する入出力領域のひとまとまりの単位であり、入出力領域の配置のための単位として用いられる。
【００４６】
起動制御手段６は、ユーザ情報管理テーブル１０に基づいて、各ユーザの入出力を制限する。すなわちユーザが使用不可能な項目について入出力を行えないような制限処理を実行する。例えばユーザ情報管理テーブル１０が図１１の場合、ＩＤ「００２」のユーザは、「業務管理者」の権限であり、その担当業務は「販売」である。そして「業務管理者」の権限では、「ほかの業務の全項目」を変更することはできない。そのため、販売以外のほかの業務の全項目について、状態管理テーブル８の対応する項目名（販売以外のほかの業務の全項目）の入出力領域について非表示とし、かつ変更不可とする制御を行う。この処理は画面構成部品制御手段５の処理と並行して実行される。
【００４７】
整列手段７は、入出力画面に表示した画面構成部品の入出力領域について、縦方向の整列を行う。なお整列手段７は、画面構成部品制御手段５と同様に、ソフトウェアモジュールとしてアプリケーションサーバ２から、各クライアント端末４に配信され、クライアント端末４側に組み込まれて動作することが好ましい。
【００４８】
次に本発明の入出力画面生成システム１の処理プロセスの一例を、図３乃至図６のフローチャートと、図１のシステム構成の概念図とを用いて説明する。なお以下の実施例では、業務管理システムとして商品管理システムであり、入出力領域定義テーブル９として商品マスター項目定義テーブルの場合を説明する。
【００４９】
まず初期状態の入出力画面がクライアント端末４で表示される場合を説明する。
【００５０】
ユーザはクライアント端末４において所定の操作を行うと、その操作入力をクライアント端末４で受け付け、商品管理システムが起動される。そしてユーザがＩＤ、パスワードなどを入力すると、それがクライアント端末４からアプリケーションサーバ２に渡され、アプリケーションサーバ２においてＩＤ、パスワードの認証を行う。この結果、正常に認証が行われた場合には、クライアント端末４において商品管理システムを操作可能な状態とする（Ｓ１００）。またＩＤやパスワードの相違などにより正常に認証が行われなかった場合には、クライアント端末４においてエラーの表示を行う（Ｓ１００）。
【００５１】
クライアント端末４において商品管理システムが操作可能となった後に、ユーザが所定の入出力画面を表示する操作を行うと、画面構成部品制御手段５は、当該ユーザの入出力画面におけるパネルサイズを決定し（Ｓ２００）、次に各パネルを当該画面に配置する処理を実行する（Ｓ３００）。
【００５２】
まずパネルサイズを決定する処理を説明する。
【００５３】
入力されたＩＤに基づいて、ユーザ情報管理テーブル１０を画面構成部品制御手段５（この際の画面構成部品制御手段５は、すでにアプリケーションサーバ２からクライアント端末４に配信されており、クライアント端末４で機能している）が参照する。例えば入力を受け付けたＩＤが「００２」であった場合、ＩＤ「００２」に基づいて、データベースサーバ３に問い合わせ、当該ユーザの権限と担当業務と変更不可項目とをユーザ情報管理テーブル１０から取得する。
【００５４】
ユーザ情報管理テーブル１０が図１１の場合、ＩＤが「００２」なので、権限として「業務管理者」、担当業務として「販売」、変更不可項目として「ほかの業務の全項目」を取得する。つまり、ユーザ「００２」は、業務管理者としての権限を有しており、販売以外の業務の全項目を変更する権限がないことを意味している。
【００５５】
そして画面構成部品制御手段５は、当該ユーザ（ＩＤ「００２」）の状態管理テーブル８を参照し、入出力画面のパネルに表示する表示項目に関する情報を取得する（Ｓ２１０）。例えばＩＤ「００２」のユーザの状態管理テーブル８が図９の場合、パネル名が「基本項目」について、項目「商品名」、「索引」、「単位」を取得する。なおこの際に画面構成部品制御手段５は、「表示」とされている項目名をキーとして取得し、「非表示」とされている項目名は取得しない。なおここでパネルとは、入出力画面において表示する項目をひとまとめの単位とするものである。従って同じパネルの各項目については隣接して配置する。またグループ名は、同じパネル内において、更に各項目をひとまとめにする単位である。従って同じグループ名の項目については隣接して配置する。
【００５６】
このようにして状態管理テーブル８から当該ユーザ（ＩＤ「００２」）の入出力画面で表示する項目名を取得すると、その項目名に基づいて、画面構成部品制御手段５は、入出力領域定義テーブル９（商品マスター項目定義テーブル）を参照し、それらの各項目がどのような入出力領域の属性を備えているのかを示す属性情報を取得する。
【００５７】
入出力領域定義テーブル９が図１０の場合、項目名「商品名」については属性情報として入力属性「全角文字」、桁数「２０」、参照マスター「なし」を取得し、項目名「索引」については属性情報として入力属性「半角カタカナ」、桁数「３０」、参照マスター「なし」を取得し、項目名「単位」については属性情報として入力属性「全角文字」、桁数「２」、参照マスター「なし」を取得する。
【００５８】
そして更に画面構成部品制御手段５は、入出力領域定義テーブル９から取得した入力属性に基づいて、その各入力属性がどのようなコントロールによって実現されるかを、モジュール定義テーブル１１を参照することにより、各項目を表示するためのコントロールの種別を決定する（Ｓ２２０）。
【００５９】
例えば入力属性「全角文字」はコントロール種別として「InputTextWithItemName」を取得する。
【００６０】
このようにして各項目の入力属性のコントロール種別を決定すると、画面構成部品制御手段５は、入出力領域定義テーブル９で定義された桁数に基づいて、各項目の表示領域を決定する（Ｓ２２０）。例えば項目名「商品名」の場合、桁数が「２０」なので２０桁分の入力領域を生成する。
【００６１】
このようにして画面構成部品制御手段５は、決定したコントロール種別と桁数の情報を用いて、各項目の入出力領域のサイズを決定し、これに項目名のサイズを加算することで、項目サイズを決定する（Ｓ２３０）。
【００６２】
以上のようにして決定した各項目のサイズをもとにパネルサイズを決定する（Ｓ２４０）。この際に、パネルサイズは、各項目がすべて表示できるサイズとなる。例えばパネルの縦方向のドット数を、Σ（各項目の縦幅＋所定値）＋項目の幅＋所定値として算出する。ここで所定値は、各項目間に設ける隙間の幅である。またパネルの横方向のドット数は、各項目の横幅のうち最大値とする。
【００６３】
図１４に基本項目のパネルが表示される状態を模式的に示す。
【００６４】
以上のようにＳ２００の処理を、画面構成部品制御手段５が状態管理テーブル８から取得した各パネルについて行う。
【００６５】
画面構成部品制御手段５はパネルサイズを決定すると、次にパネルの配置処理を実行する（Ｓ３００）。
【００６６】
まず画面構成部品制御手段５は、入出力画面の初期ウィンドウサイズをクライアント端末４のＯＳから取得する（Ｓ３１０）。このウィンドウに、順次パネルを配置していく（Ｓ３２０）。
【００６７】
例えば状態管理テーブル８にパネル名として「見出し１」、「見出し２」、「見出し３」、「見出し４」、「見出し５」のようにパネル名が格納されている場合には、順に各パネルを配置する。例えば左上、左下、中上、中下、右上、右下の順に配置する。この配置位置は任意に設定可能である。なお各パネルの間には所定の間隔を設けることが好ましい。
【００６８】
この配置の際には、入出力画面のウィンドウのウィンドウサイズと各パネルの大きさとを考慮して配置を行うが、本実施例は初期状態での配置なので、入出力画面に配置する各パネルのサイズが、ウィンドウサイズを超えることはない。従って、Ｓ３３０では「ＮＯ」の処理となり、パネルの配置は終了する。なお「ＹＥＳ」となる場合の処理は後述する。
【００６９】
図１５に入出力画面のウィンドウに各パネルが配置された場合の一例を示す。なお図１５では外枠が入出力画面のウィンドウを示し、破線がパネルを示す（実際はパネルを示す破線は表示しなくても良い）。そして「見出し」には状態管理テーブル８の「パネル名」が表示され、「項目名」には状態管理テーブル８の「項目名」が表示され、項目名の右隣には各コントロールが配置される。
【００７０】
なお縦方向に複数のパネルを配置する場合には、整列手段７が、各パネルに含まれるすべての項目名の枠のサイズを取得し、そのうちの最大サイズに合うようにして項目を配置しても良い。例えば図１６（ａ）の場合、見出し「基本項目」のパネルと、見出し「単価」のパネルが縦に配置されているので、これらに含まれる各項目の文字数を整列手段７がカウントする。そして、各項目の文字数の最大値を表示するための文字数に、各項目のサイズを変更して各項目を配置する。このように整列手段７における整列処理が実行されたのが図１６（ｂ）である。
【００７１】
なお各項目名のサイズが変更されることで、その右隣に位置する入出力領域のコントロールの位置もずれることとなる。従ってパネルサイズもずれることとなるので、整列手段７における処理を行う場合には、再度、パネルサイズの変更を行う処理、つまりＳ２４０における処理を実行することになる。
【００７２】
なお再処理を簡略化するために、Ｓ２４０のパネルサイズの決定処理の際に、整列手段７における項目名を整列させる処理を行った後（つまり項目名のサイズを決定した後）、パネルサイズの決定処理を実行することとしても良い。
【００７３】
以上のようにして生成された初期状態の入出力画面を図１７に示す。
【００７４】
次に初期状態から、初期設定された項目以外の項目をユーザが表示する場合を説明する。この場合、ユーザは所定の操作を行うことによって、拡張する項目の定義を行う。
【００７５】
具体的には、図１８に示すような画面から、どのような項目を拡張するのかを入力し、それを画面構成部品制御手段５が、入出力領域定義テーブル９のうち、拡張項目定義テーブルに登録する。図１８では、項目「メーカー」、「取り扱い開始年」、「商品説明」などを追加登録した場合である。なおこの際に、各項目に対する属性情報として、入力属性、桁数、参照マスターなどの情報もあわせて登録される。
【００７６】
例えばユーザが項目名「メーカー」を追加登録する場合には、入力属性として「数値」、桁数として「４」、参照マスターとして「メーカーマスター」を入力する。また項目名「商品説明」を追加登録する場合には、入力属性として「全角文字」、桁数として「６４」、参照マスターとして「なし」を入力する。ここで入力された各項目の情報を、画面構成部品制御手段５が、入出力領域定義テーブル９の拡張項目定義テーブルに当該ユーザの拡張項目として登録する。これを模式的に示すのが図１９である。
【００７７】
また画面構成部品制御手段５は、当該ユーザの状態管理テーブル８に、拡張項目として、パネル名、項目名、表示か非表示かを入力する。入力を受け付けると、画面構成部品制御手段５は、当該ユーザの状態管理テーブル８に追加登録する。これを模式的に示すのが図２０である。図２０は、ＩＤ「００２」のユーザの状態管理テーブル８に登録した場合である。
【００７８】
以上のように拡張する項目を状態管理テーブル８、入出力領域定義テーブル９に追加登録することによって、ユーザが入出力画面を開く際には、基本項目のほか、拡張項目を表示される。またどのような項目が拡張されているかは、ユーザごとに状態管理テーブル８で管理しているので、ユーザごとに異なる項目を表示することもできる。また入出力領域定義テーブル９、モジュール定義テーブル１１などを参照して画面構成部品制御手段５が入出力画面を生成することによって、ユーザの要求に応じた、入出力画面の項目が自動的に設定・再配置される。
【００７９】
例えば図１７の初期状態の入出力画面に、ユーザが独自に拡張項目を設定した場合の入出力画面の一例が図２１である。
【００８０】
次に、入出力画面に表示する項目をユーザが選択し、ユーザが表示を選択した項目が入出力画面に表示されるようにする場合を説明する。
【００８１】
ユーザが所定の操作を行うことによって、各項目の表示・非表示を選択する画面を表示する。この画面の一例を図２２に示す。図２２に示される各項目は、画面構成部品制御手段５が、状態管理テーブル８から当該ユーザのＩＤに基づいて、パネル名、項目名、表示・非表示の情報を取得することで表示することができる。
【００８２】
この画面には、各パネルの各項目ごとにチェックボックスが設けられており、その項目を表示するか、表示しないかの選択が可能である。表示する場合にはチェックボックスにチェックを入力し、表示しない場合にはチェックボックスにチェックをしなければよい。このチェックの有無に基づいて、画面構成部品制御手段５は、状態管理テーブル８における表示・非表示の情報を変更して登録する。また図２２の画面における「入力」とは当該項目についてデータの入力を行うかを意味するチェックボックスである。従って「入力」の欄がチェックされていない場合には当該項目について入力が行えない。また表示をチェックしても「入力」をチェックしない場合には、表示しても入力はできない、といったようにすることもできる。この入力の有無の情報についても、図９には図示していないが、状態管理テーブル８に各項目ごとに登録しても良い。
【００８３】
例えば図２２の画面における選択をＩＤ「００２」のユーザが行った場合には、状態管理テーブル８は、図２０の状態から図２３の状態に変更して登録される。
【００８４】
そして図２３の状態管理テーブル８に基づいて、画面構成部品制御手段５が表示した入出力画面が、図２４である。
【００８５】
次に、ユーザが入出力画面のウィンドウサイズを変更した場合に、入出力画面におけるパネル（及びその項目）の再配置を行う場合の処理を説明する。
【００８６】
画面構成部品制御手段５は、入出力画面のウィンドウサイズが変更されたことを検出すると、ＯＳから変更後のウィンドウサイズの情報を取得する（Ｓ３１０）。そして上述と同様に、各パネルの配置処理を実行する（Ｓ３２０）。すなわち、順に、左上、左下、中上、中下、右上、右下の順にパネルを配置する。
【００８７】
この配置の際にウィンドウサイズと各パネルの配置時の大きさの判定を行いながら配置を行うが、変更後のウィンドウサイズに収まりきらないパネルが存在する場合には、表示方法の選択処理に基づいて、処理を実行する（Ｓ４００）。
【００８８】
すなわち、スクロール表示とするか各パネル、項目を縮小表示するかを予め選択しておき（Ｓ４１０）、それに基づいてすべてのパネルの配置処理を実行する。
【００８９】
縮小表示することを選択している場合には、各パネルを普通に配置した場合に必要なウィンドウサイズを、各パネルのサイズに基づいて算出する。そして普通に配置した場合に必要なウィンドウサイズと、実際の変更後のウィンドウサイズとを比較し、どの程度縮小すればよいのか、その倍率を算出する。そしてその倍率に基づいて、各パネルのサイズを縮小し、実際の変更後のウィンドウサイズの入出力画面に、縮小した各パネルを配置していく。
【００９０】
この場合の入出力画面の一例を図２５に示す。
【００９１】
またスクロール表示することを選択している場合には、例えば各パネルを横一列になるようにパネルを配置して、スクロールバーを表示する（Ｓ４３０）。
【００９２】
この場合の入出力画面の一例を図２６に示す。
【００９３】
なおスクロール表示する場合において、変更後のウィンドウサイズがどのパネルもそのままでは配置できないサイズに縮小された場合には、選択されている項目を含むパネルをウィンドウに包含するように変更して表示しても良い。つまり各パネルにおいて、項目の再配置を更に行い、ウィンドウ内に表示できるようにしても良い。これを模式的に示すのが図２７、図２８である。
【００９４】
以上の再配置の処理は、変更後のウィンドウサイズと、各パネルのサイズ、あるいは各項目のサイズに基づいて、それらを比較することで、変更後のウィンドウサイズに収まるような各パネルや項目の配置を行う。
【００９５】
なお再配置の処理を行う場合に、項目の表示が２行にわたる場合もある。例えば図２９の入出力画面の場合には、パネル名「単価」のうち、項目名「新単価実施日」が２行にわたっている。そしてウィンドウサイズの変更の結果、新単価実施日の項目で切れてしまうような場合には、これらを分けて表示してしまうことは好ましくない。
【００９６】
そこでこれらは一つの項目として表示することとなる。これを模式的に示すのが図３０である。
【００９７】
以上のような処理をユーザからの入力に応じて実行することによって、ユーザからの要求に応じた、業務管理ソフトウェアで用いる入出力画面を生成することができる。
【産業上の利用可能性】
【００９８】
本発明によって、業務管理システムの入出力画面について、ユーザの要求に応じて、入出力画面の項目が自動的に設定・再配置される。そのため、入出力画面の操作性・一覧性の向上と、表示プログラムの作成・カスタマイズ上の煩雑さ解消とを同時に実現することが可能となる。
【符号の説明】
【００９９】
１：入出力画面生成システム
２：アプリケーションサーバ
３：データベースサーバ
４：クライアント端末
５：画面構成部品制御手段
６：起動制御手段
７：整列手段
８：状態管理テーブル
９：入出力領域定義テーブル
１０：ユーザ情報管理テーブル
１１：モジュール定義テーブル
２０：演算装置
２１：記憶装置
２２：表示装置
２３：入力装置
２４：通信装置
【図１】
0005147875.tif 000002
【図２】
0005147875.tif 000003
【図３】
0005147875.tif 000004
【図４】
0005147875.tif 000005
【図５】
0005147875.tif 000006
【図６】
0005147875.tif 000007
【図７】
0005147875.tif 000008
【図８】
0005147875.tif 000009
【図９】
0005147875.tif 000010
【図１０】
0005147875.tif 000011
【図１１】
0005147875.tif 000012
【図１２】
0005147875.tif 000013
【図１３】
0005147875.tif 000014
【図１４】
0005147875.tif 000015
【図１５】
0005147875.tif 000016
【図１６】
0005147875.tif 000017
【図１７】
0005147875.tif 000018
【図１８】
0005147875.tif 000019
【図１９】
0005147875.tif 000020
【図２０】
0005147875.tif 000021
【図２１】
0005147875.tif 000022
【図２２】
0005147875.tif 000023
【図２３】
0005147875.tif 000024
【図２４】
0005147875.tif 000025
【図２５】
0005147875.tif 000026
【図２６】
0005147875.tif 000027
【図２７】
0005147875.tif 000028
【図２８】
0005147875.tif 000029
【図２９】
0005147875.tif 000030
【図３０】
0005147875.tif 000031