(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024004331
(43)【公開日】2024-01-16
(54)【発明の名称】伸縮対象列決定装置、伸縮対象列決定方法および伸縮対象列決定プログラム
(51)【国際特許分類】
G06F 3/0481 20220101AFI20240109BHJP
【FI】
G06F3/0481
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022103944
(22)【出願日】2022-06-28
(71)【出願人】
【識別番号】398040527
【氏名又は名称】株式会社オービック
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】吉井 聡
(72)【発明者】
【氏名】馬場 健人
(72)【発明者】
【氏名】上野 剛光
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA04
5E555BA01
5E555BB01
5E555BC01
5E555CA02
5E555CB07
5E555CC24
5E555CC25
5E555DA01
5E555DB41
5E555DB58
5E555DC26
5E555DC27
5E555EA14
5E555FA00
(57)【要約】
【課題】テーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するかを適切に決定できる装置等の提供を課題とする。
【解決手段】本実施形態では、(i)伸縮候補列が1列しか存在しない場合、当該1列を明細部の伸縮対象列として決定し、(ii)一方で、伸縮候補列が2列以上存在する場合、伸縮候補列のうち列番号が一番大きい列から順に、当該列に属する明細部におけるセルのうち伸縮要なセルが一つでも存在するか否かを判定し、(ii-1)存在すると初めて判定できた列を明細部の伸縮対象列として決定し、これに対して、(ii-2)存在すると判定できる列が伸縮候補列のうち列番号が二番目に小さい列の判定終了時点で登場しなかった場合、伸縮候補列のうち列番号が一番小さい列を明細部の伸縮対象列として決定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
セルから構成されるテーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するかを適切に決定することができる伸縮対象列決定装置であって、
前記制御部は、
前記最小単位のセルの各々に対して、伸縮の要否を判定するセル毎伸縮要否判定手段と、
前記伸縮したヘッダ部セルを構成する最小単位のセルが属する列を、明細部における伸縮候補列として特定する伸縮候補列特定手段と、
(i)前記伸縮候補列特定手段で特定した伸縮候補列が1列しか存在しない場合、当該1列を明細部の伸縮対象列として決定し、(ii)一方で、前記伸縮候補列特定手段で特定した伸縮候補列が2列以上存在する場合、前記伸縮候補列特定手段で特定した伸縮候補列のうち列番号が一番大きい列から順に、当該列に属する明細部におけるセルのうち伸縮要なセルが一つでも存在するか否かを判定し、(ii-1)前記存在すると初めて判定できた列を明細部の伸縮対象列として決定し、これに対して、(ii-2)前記存在すると判定できる列が、伸縮候補列のうち列番号が二番目に小さい列の判定終了時点で登場しなかった場合、伸縮候補列のうち列番号が一番小さい列を明細部の伸縮対象列として決定する伸縮対象列決定手段と、
を備えること、
を特徴とする伸縮対象列決定装置。
【請求項2】
前記セル毎伸縮要否判定手段は、
前記最小単位のセルが、ボタンセルである場合、テキスト入力セルであって入力されるテキストの文字もしくは数値の数の上限値が規定値以下である場合、または、列番号が一つ小さいセルと結合しているセルである場合に、
前記最小単位のセルを、伸縮不要なセルであると判定すること、
を特徴とする請求項1に記載の伸縮対象列決定装置。
【請求項3】
前記伸縮対象列決定手段は、
前記伸縮候補列特定手段で特定した伸縮候補列の中に、優先的に伸縮するべき列としてオペレータにより事前指定された列が存在する場合は、当該事前指定された列を伸縮対象列として優先的に決定すること、
を特徴とする請求項1に記載の伸縮対象列決定装置。
【請求項4】
前記オペレータの操作が、マウスによるドラッグ操作であること、
を特徴とする請求項1に記載の伸縮対象列決定装置。
【請求項5】
列番号がより大きい列が、テーブルにおいてより右の列であること、
を特徴とする請求項1に記載の伸縮対象列決定装置。
【請求項6】
前記制御部は、
オペレータの操作によって横方向に伸縮したヘッダ部セルおよび横方向への伸縮幅を特定する伸縮幅等特定手段と、
前記伸縮幅等特定手段で特定したヘッダ部セルについて前記伸縮対象列決定手段で決定した明細部の伸縮対象列を、前記伸縮幅等特定手段で特定した伸縮幅の分だけ伸縮する列伸縮手段と、
を更に備えること、
を特徴とする請求項1から5のいずれか一つに記載の伸縮対象列決定装置。
【請求項7】
セルから構成されるテーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するかを適切に決定することができる、制御部を備える情報処理装置で実行される伸縮対象列決定方法であって、
前記制御部で実行される、
前記最小単位のセルの各々に対して、伸縮の要否を判定するセル毎伸縮要否判定ステップと、
前記伸縮したヘッダ部セルを構成する最小単位のセルが属する列を、明細部における伸縮候補列として特定する伸縮候補列特定ステップと、
(i)前記伸縮候補列特定ステップで特定した伸縮候補列が1列しか存在しない場合、当該1列を明細部の伸縮対象列として決定し、(ii)一方で、前記伸縮候補列特定ステップで特定した伸縮候補列が2列以上存在する場合、前記伸縮候補列特定ステップで特定した伸縮候補列のうち列番号が一番大きい列から順に、当該列に属する明細部におけるセルのうち伸縮要なセルが一つでも存在するか否かを判定し、(ii-1)前記存在すると初めて判定できた列を明細部の伸縮対象列として決定し、これに対して、(ii-2)前記存在すると判定できる列が、伸縮候補列のうち列番号が二番目に小さい列の判定終了時点で登場しなかった場合、伸縮候補列のうち列番号が一番小さい列を明細部の伸縮対象列として決定する伸縮対象列決定ステップと、
を含むこと、
を特徴とする伸縮対象列決定方法。
【請求項8】
セルから構成されるテーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するかを適切に決定することができる、制御部を備える情報処理装置に実行させるための伸縮対象列決定プログラムであって、
前記制御部に実行させるための、
前記最小単位のセルの各々に対して、伸縮の要否を判定するセル毎伸縮要否判定ステップと、
前記伸縮したヘッダ部セルを構成する最小単位のセルが属する列を、明細部における伸縮候補列として特定する伸縮候補列特定ステップと、
(i)前記伸縮候補列特定ステップで特定した伸縮候補列が1列しか存在しない場合、当該1列を明細部の伸縮対象列として決定し、(ii)一方で、前記伸縮候補列特定ステップで特定した伸縮候補列が2列以上存在する場合、前記伸縮候補列特定ステップで特定した伸縮候補列のうち列番号が一番大きい列から順に、当該列に属する明細部におけるセルのうち伸縮要なセルが一つでも存在するか否かを判定し、(ii-1)前記存在すると初めて判定できた列を明細部の伸縮対象列として決定し、これに対して、(ii-2)前記存在すると判定できる列が、伸縮候補列のうち列番号が二番目に小さい列の判定終了時点で登場しなかった場合、伸縮候補列のうち列番号が一番小さい列を明細部の伸縮対象列として決定する伸縮対象列決定ステップと、
を含むこと、
を特徴とする伸縮対象列決定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、伸縮対象列決定装置、伸縮対象列決定方法および伸縮対象列決定プログラムに関する。
【背景技術】
【0002】
特許文献1には、複数のデータ列のうちの一つのデータ列の表示領域が更新されたときに、残りのデータ列の表示領域をそれにあわせて自動的に更新する表示領域制御装置、表示領域制御方法、及びプログラムが開示されている(特許文献1の0001段落参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、エクセル等のテーブル(表)においては、ヘッダ部セルは、最小単位のセルが結合されたものであることが多々ある。例えば、
図3のテーブルにおいては、ヘッダ部セルについて、1列目と2列目が結合されており(ヘッダ部セル「事業所」)、3列目と4列目が結合されており(ヘッダ部セル「部門」)、5列目と6列目が結合されている(ヘッダ部セル「担当者」)。
【0005】
このように、ヘッダ部セルがいくつかのセルから構成されている場合に、例えば、
図4に示すように、ヘッダ部セル「事業所」の右境界部をオペレータがマウスで右ドラックしたとする。この場合、本来は、
図5に示すように、明細部の1列目に属する「事業所コード/名称」のセルの右境界部(太線部)が右に伸びることが望ましい。なぜなら、事業所コード/名称」のセルの幅が広がることで、事業所名が隠れずに全部見えるようになるからである。しかしながら、実際には、
図6に示すように、明細部の2列目に属する「検索ボタン」のセルの右境界部(太線部)が右に伸びてしまうことが多々ある。
【0006】
このように不適切なセルが広がるのを防ぐためには、従来においては、ヘッダ部セルの一つ一つに対して伸縮対象列を設定する必要があった。例えば、前述の例でいえば、「ヘッダ部『事業所』の右境界部をマウスでドラッグした際には、『事業所コード/名称』のセルを伸縮させる」という設定を行う必要があった。
【0007】
しかしながら、このようにヘッダ部セルの一つ一つに対して伸縮対象列を設定するのは、多大な労力および時間を要するという問題があり、特に、
図7に示すような多段テーブルの場合にはその問題は顕著であった。
【0008】
本発明は、上記問題点に鑑みてなされたものであって、セルから構成されるテーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するかを適切に決定することができる伸縮対象列決定装置、伸縮対象列決定方法および伸縮対象列決定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するために、本発明に係る伸縮対象列決定装置においては、セルから構成されるテーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するかを適切に決定することができる伸縮対象列決定装置であって、前記制御部は、前記最小単位のセルの各々に対して、伸縮の要否を判定するセル毎伸縮要否判定手段と、前記伸縮したヘッダ部セルを構成する最小単位のセルが属する列を、明細部における伸縮候補列として特定する伸縮候補列特定手段と、(i)前記伸縮候補列特定手段で特定した伸縮候補列が1列しか存在しない場合、当該1列を明細部の伸縮対象列として決定し、(ii)一方で、前記伸縮候補列特定手段で特定した伸縮候補列が2列以上存在する場合、前記伸縮候補列特定手段で特定した伸縮候補列のうち列番号が一番大きい列から順に、当該列に属する明細部におけるセルのうち伸縮要なセルが一つでも存在するか否かを判定し、(ii-1)前記存在すると初めて判定できた列を明細部の伸縮対象列として決定し、これに対して、(ii-2)前記存在すると判定できる列が、伸縮候補列のうち列番号が二番目に小さい列の判定終了時点で登場しなかった場合、伸縮候補列のうち列番号が一番小さい列を明細部の伸縮対象列として決定する伸縮対象列決定手段と、を備えること、を特徴とする。
【0010】
また、本発明に係る伸縮対象列決定装置においては、前記セル毎伸縮要否判定手段は、前記最小単位のセルが、ボタンセルである場合、テキスト入力セルであって入力されるテキストの文字もしくは数値の数の上限値が規定値以下である場合、または、列番号が一つ小さいセルと結合しているセルである場合に、前記最小単位のセルを、伸縮不要なセルであると判定すること、を特徴とする。
【0011】
また、本発明に係る伸縮対象列決定装置においては、前記伸縮対象列決定手段は、前記伸縮候補列特定手段で特定した伸縮候補列の中に、優先的に伸縮するべき列としてオペレータにより事前指定された列が存在する場合は、当該事前指定された列を伸縮対象列として優先的に決定すること、を特徴とする。
【0012】
また、本発明に係る伸縮対象列決定装置においては、前記オペレータの操作が、マウスによるドラッグ操作であること、を特徴とする。
【0013】
また、本発明に係る伸縮対象列決定装置においては、列番号がより大きい列が、テーブルにおいてより右の列であること、を特徴とする。
【0014】
また、本発明に係る伸縮対象列決定装置においては、前記制御部は、オペレータの操作によって横方向に伸縮したヘッダ部セルおよび横方向への伸縮幅を特定する伸縮幅等特定手段と、前記伸縮幅等特定手段で特定したヘッダ部セルについて前記伸縮対象列決定手段で決定した明細部の伸縮対象列を、前記伸縮幅等特定手段で特定した伸縮幅の分だけ伸縮する列伸縮手段と、を更に備えること、を特徴とする。
【0015】
また、本発明に係る伸縮対象列決定方法においては、セルから構成されるテーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するかを適切に決定することができる、制御部を備える情報処理装置で実行される伸縮対象列決定方法であって、前記制御部で実行される、前記最小単位のセルの各々に対して、伸縮の要否を判定するセル毎伸縮要否判定ステップと、前記伸縮したヘッダ部セルを構成する最小単位のセルが属する列を、明細部における伸縮候補列として特定する伸縮候補列特定ステップと、(i)前記伸縮候補列特定ステップで特定した伸縮候補列が1列しか存在しない場合、当該1列を明細部の伸縮対象列として決定し、(ii)一方で、前記伸縮候補列特定ステップで特定した伸縮候補列が2列以上存在する場合、前記伸縮候補列特定ステップで特定した伸縮候補列のうち列番号が一番大きい列から順に、当該列に属する明細部におけるセルのうち伸縮要なセルが一つでも存在するか否かを判定し、(ii-1)前記存在すると初めて判定できた列を明細部の伸縮対象列として決定し、これに対して、(ii-2)前記存在すると判定できる列が、伸縮候補列のうち列番号が二番目に小さい列の判定終了時点で登場しなかった場合、伸縮候補列のうち列番号が一番小さい列を明細部の伸縮対象列として決定する伸縮対象列決定ステップと、を含むこと、を特徴とする。
【0016】
また、本発明に係る伸縮対象列決定プログラムにおいては、セルから構成されるテーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するかを適切に決定することができる、制御部を備える情報処理装置に実行させるための伸縮対象列決定プログラムであって、前記制御部に実行させるための、前記最小単位のセルの各々に対して、伸縮の要否を判定するセル毎伸縮要否判定ステップと、前記伸縮したヘッダ部セルを構成する最小単位のセルが属する列を、明細部における伸縮候補列として特定する伸縮候補列特定ステップと、(i)前記伸縮候補列特定ステップで特定した伸縮候補列が1列しか存在しない場合、当該1列を明細部の伸縮対象列として決定し、(ii)一方で、前記伸縮候補列特定ステップで特定した伸縮候補列が2列以上存在する場合、前記伸縮候補列特定ステップで特定した伸縮候補列のうち列番号が一番大きい列から順に、当該列に属する明細部におけるセルのうち伸縮要なセルが一つでも存在するか否かを判定し、(ii-1)前記存在すると初めて判定できた列を明細部の伸縮対象列として決定し、これに対して、(ii-2)前記存在すると判定できる列が、伸縮候補列のうち列番号が二番目に小さい列の判定終了時点で登場しなかった場合、伸縮候補列のうち列番号が一番小さい列を明細部の伸縮対象列として決定する伸縮対象列決定ステップと、を含むこと、を特徴とする。
【発明の効果】
【0017】
本発明によれば、セルから構成されるテーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するかを適切に決定することができるという効果を奏する。
【図面の簡単な説明】
【0018】
【
図1】
図1は、伸縮対象列決定装置の構成の一例を示すブロック図である。
【
図2】
図2は、単段テーブルの一例を示す図である。
【
図3】
図3は、列番号を付した単段テーブルの一例を示す図である。
【
図4】
図4は、単段テーブル中のヘッダ部のドラッグの一例を示す図である。
【
図5】
図5は、単段テーブル中のデータ部の望ましい伸縮の一例を示す図である。
【
図6】
図6は、単段テーブル中のデータ部の望ましくない伸縮の一例を示す図である。
【
図7】
図7は、多段テーブルの一例を示す図である。
【
図8】
図8は、多段テーブル中のヘッダ部のドラッグの一例を示す図である。
【
図9】
図9は、多段テーブル中のデータ部の望ましい伸縮の一例を示す図である。
【
図10】
図10は、多段テーブル中のデータ部の望ましくない伸縮の一例を示す図である。
【
図11】
図11は、多段テーブル中のヘッダ部のドラッグの別の例を示す図である。
【
図12】
図12は、多段テーブル中のデータ部の望ましい伸縮の一例を示す図である。
【
図13】
図13は、多段テーブル中のデータ部の望ましくない伸縮の一例を示す図である。
【
図14】
図14は、データ部中の伸縮する項目をまとめた表の一例を示す図である。
【
図17】
図17は、伸縮不要なテキスト入力セルの一例を示す図である。
【
図18】
図18は、自身より左のセルに結合しているセルの一例を示す図である。
【
図19】
図19は、伸縮対象列の特定の仕方(原則のケース)の一例を示す図である。
【
図21】
図21は、伸縮対象列の特定の仕方(例外のケース)の一例を示す図である。
【
図22】
図22は、データ部セルについての事前判定処理のフローチャートの一例を示す図である。
【
図23】
図23は、ヘッダ部セルについての事前判定処理のフローチャートの一例を示す図である。
【
図24】
図24は、右境界部ドラッグ時の列伸縮処理のフローチャートの一例を示す図である。
【
図26】
図26は、ヘッダ部セル定義データの一例を示す図である。
【
図27】
図27は、データ部セル定義データの一例を示す図である。
【
図29】
図29は、伸縮要否の判定処理前のデータ部セル定義データの一例を示す図である。
【
図30】
図30は、伸縮要否の判定処理後のデータ部セル定義データの一例を示す図である。
【
図31】
図31は、ヘッダ部セル「事業所」についての伸縮対象列の決定の一例を示す図である。
【
図32】
図32は、ヘッダ部セル「事業所」についての伸縮対象列の決定の一例を示す続きの図である。
【
図33】
図33は、ヘッダ部セル「部門」についての伸縮対象列の決定の一例を示す図である。
【
図34】
図34は、ヘッダ部セル「〇〇」についての伸縮対象列の決定の一例を示す図である。
【
図35】
図35は、ヘッダ部セル「〇〇」についての伸縮対象列の決定の一例を示す続きの図である。
【
図36】
図36は、ヘッダ部セル「担当者メールアドレス」についての伸縮対象列の決定の一例を示す図である。
【
図37】
図37は、ヘッダ部セル「備考2」についての伸縮対象列の決定の一例を示す図である。
【
図38】
図38は、ヘッダ部セル「備考2」についての伸縮対象列の決定の一例を示す続きの図である。
【
図39】
図39は、決定された伸縮対象列が格納されたヘッダ部セル定義データの一例を示す図である。
【
図40】
図40は、例外指定データを設定しない場合におけるヘッダ部セル「担当者メールアドレス」についての伸縮対象列の決定の一例を示す図である。
【
図41】
図41は、例外指定データを設定しない場合におけるヘッダ部セル「担当者メールアドレス」についての伸縮対象列の決定の一例を示す続きの図である。
【
図42】
図42は、ヘッダ部セルの右境界部に対するマウスドラッグの一例を示す図である。
【
図43】
図43は、列番号「3」の列の横幅を伸ばす場合の一例を示す図である。
【
図44】
図44は、列番号「5」の列の横幅を伸ばす場合の一例を示す図である。
【発明を実施するための形態】
【0019】
以下に、本発明に係る伸縮対象列決定装置、伸縮対象列決定方法および伸縮対象列決定プログラムの実施形態を、図面に基づいて詳細に説明する。なお、本実施形態により本発明が限定されるものではない。
【0020】
[1.背景等]
本項目では、背景、課題、本実施形態による解決策および本実施形態の例外ケースについて項目立てて説明をする。
【0021】
[1-1.背景]
テーブルにおいては、
図2に示すように、ヘッダ部とデータ部で、横方向のセルの塊り方が異なることがよくある。
【0022】
WebのHTML構造上でテーブルを表現しようとする際に、ヘッダ部とデータ部でセルの塊り方が異なる場合には、
図3に示すように、テーブルを構成する列および行を最小単位で格子状に区画し、必要な部分を結合することで塊を変更するということが良く行われる。
図3のテーブルの例では、テーブルを構成する列は7列であるが、ヘッダ部について、1列目と2列目が結合され、3列目と4列目が結合され、5列目と6列目が結合されている。
【0023】
なお、本実施形態においては、用語を以下のように定義する。
・テーブル・・・表計算ソフト、文書作成ソフトおよびWebページ等において、内部が格子状に分かれた表。
・セル・・・テーブルを構成する一つ一つのマス目。
・列・・・テーブル内の要素の垂直方向の集合。
・行・・・テーブル内の要素の水平方向の集合。
・ヘッダ部・・・項目を表示する領域。
・データ部(明細部)・・・具体的な情報を表示する領域。
・単段テーブル・・・ヘッダ部が1段で構成されており、これに伴い、データ部の各行も1段で構成されているテーブル(
図2参照)。
・多段テーブル・・・ヘッダ部が複数段で構成されており、これに伴い、データ部の各行も多段で構成されているテーブル(
図7参照)。1つの表に多くの情報を表示したい場合および横方向の表示可能領域が限られている場合等に使用される。
【0024】
ここで、単段テーブルおよび多段テーブルを対象として、ヘッダ部のある項目を右にドラッグする場合、従来においては、以下のような問題があった。
【0025】
まず、単段テーブルについて説明する。
図3は、単段テーブルの一例を示す図である。
図3の単段テーブルを対象として、ヘッダ部「事業所」についての右境界部を
図4に示すようにマウスで右にドラッグした際には、
図5に示すように、「事業所コード/名称」のセルの右境界部(太線部)が伸びることが望ましい。しかしながら、従来においては、
図6に示すように、ヘッダ部「事業所」についての右境界部と一致する、「検索ボタン」のセルの右境界部(太線部)が伸びてしまっていた。このように、隠れている事業所名を可視化するためにヘッダ部「事業所」についての右境界部をユーザがドラッグしているにも関わらず、検索ボタンのセルが右に伸びてしまうという問題があった。検索ボタンのセルが右に伸びても、見えるようになる文字はなく意味がない。
【0026】
次に、多段テーブルについて説明する。
図7は、多段テーブルの一例を示す図である。
図7の多段テーブルを対象として、ヘッダ部「事業所」についての右境界部を
図8に示すようにマウスで右にドラッグした際には、
図9に示すように、「事業所コード/名称」のセルおよび「倉庫コード/名称」のセルの右境界部(太線部)が伸びることが望ましい。しかしながら、従来においては、
図10に示すように、ヘッダ部「事業所」についての右境界部と一致する、「検索ボタン」のセルの右境界部(太線部)が伸びてしまっていた。
【0027】
また、
図7の多段テーブルを対象として、ヘッダ部「担当者」についての右境界部を
図11に示すようにマウスで右にドラッグした際には、
図12に示すように、「担当者コード/名称」のセルの右境界部(太線部)が伸びることが望ましい。しかしながら、従来においては、
図13に示すように、ヘッダ部「担当者」についての右境界部と一致する、「検索ボタン」のセルの右境界部(太線部)が伸びてしまっていた。
【0028】
ここで、
図13に示すように、「検索ボタン」のセルの右境界部(太線部)が伸びると、「担当者メールアドレス」のセルおよび「備考2」のセルも併せて伸びるため、一見、メリットがあるように思える。しかしながら、この2つのセルは、
図12に示すように、「担当者コード/名称」のセルの右境界部(太線部)が伸びた場合にも伸びる。つまり、
図14の表に比較して示すように、「担当者メールアドレス」のセルおよび「備考2」のセルは、「検索ボタン」のセルと「担当者コード/名称」のセルのどちらが伸びた場合にも伸びるため、それなら、「検索ボタン」のセルが伸びるよりも、「担当者コード/名称」のセルが伸びた方が、担当者名が見えるようになるため好ましい。
【0029】
以上、本項目[1-1]で説明してきたように、従来においては、ヘッダ部においてあるセルをドラッグした場合に、データ部において、意図していないセル(例えば、「検索ボタン」のセル)が伸縮してしまうという問題があった。
【0030】
[1-2.課題]
このような意図していないセルの伸縮を防ぐために、従来においては、アプリケーション開発者が、セルの伸縮位置を一つ一つ指定していた。
【0031】
図3の単段テーブルの例でいえば、
・ヘッダ部「事業所」の右境界部をマウスでドラッグした際には、「事業所コード/名称」のセルを伸縮させる。
・ヘッダ部「部門」の右境界部をマウスでドラッグした際には、「部門コード/名称」のセルを伸縮させる。
・ヘッダ部「担当者」の右境界部をマウスでドラッグした際には、「担当者コード/名称」のセルを伸縮させる。
等の設定をアプリケーション開発者が一つ一つ手動で行っていた。
【0032】
図7の多段テーブルの例でいえば、
・ヘッダ部「事業所」の右境界部をマウスでドラッグした際には、「事業所コード/名称」のセルを伸縮させる。
・ヘッダ部「部門」の右境界部をマウスでドラッグした際には、「部門コード/名称」のセルを伸縮させる。
・ヘッダ部「担当者」の右境界部をマウスでドラッグした際には、「担当者コード/名称」のセルを伸縮させる。
・ヘッダ部「倉庫」の右境界部をマウスでドラッグした際には、「倉庫コード/名称」のセルを伸縮させる。
等の設定をアプリケーション開発者が一つ一つ手動で行っていた。
【0033】
しかしながら、テーブルに表示する情報量が増えるにつれ伸縮位置の指定箇所も増えるため、このような設定を行うと手間がかかるという問題があった。特に、多段テーブルの場合、アプリケーション開発者が適切な伸縮位置を判断するのに手間がかかるという問題、および、テーブル内のセル配置を変更した際にアプリケーション開発者が伸縮位置を再考する必要があるため変更の度に手間がかかるという問題があった。
【0034】
[1-3.本実施形態による解決策]
そこで、本実施形態においては、伸縮不要なセルがどれなのかを自動で判定することで、伸縮位置を最適化できるようにした。また、この判定の前提として、ヘッダ部のドラッグ操作可能部をドラッグしたとき、ドラッグされたヘッダ部セルの塊に含まれる列を伸縮候補列として特定できるようにした。
【0035】
伸縮候補列の特定の仕方を、
図15を用いて説明する。
図15においては、テーブルを7列に分割している。
図15に示すように、ヘッダ部「事業所」の右境界部をドラッグした場合の伸縮候補列は、1列目~2列目となる。また、
図15に示すように、ヘッダ部「担当者メールアドレス」の右境界部をドラッグした場合の伸縮候補列は、3列目~6列目となる。
【0036】
このように特定した伸縮候補列を、右から左にたどり、伸縮不要ではない列が現われた時に、当該列を伸縮対象列とする。なお、データ部においてその列のすべてのセルが伸縮不要なとき、その列を伸縮不要とする。
【0037】
伸縮不要なセルとは、例えば、以下に示す3種のセルである。
【0038】
伸縮不要なセルの一つ目は、
図16に示すようなボタンセルである。ボタンセルは、アイコンや文字の横幅がユーザ操作によって変わらないため、伸縮不要とみなす。
【0039】
伸縮不要なセルの二つ目は、
図17に示すような、テキスト入力セルのうち、最大入力可能幅が、列幅の既定値以下のセルである。例えば、データ部における「部門コード」のセルの最大入力文字数が半角10文字であり、部門コード列の既定の幅が半角11文字分である場合、データ部における「部門コード」のセルは伸縮する必要がないため、伸縮不要とみなす。
【0040】
伸縮不要なセルの三つ目は、
図18に示すような、自身より左のセルに結合しているセルである。
図18のテーブルにおいてドット状のハッチングで示したセルは、自身より左のセルに結合しているセルである。
【0041】
以上説明した3種類の伸縮不要なセルの前提を踏まえて、
図18のテーブルを参照すると、2列目、4列目および6列目については、データ部におけるすべてのセルが、3種類の伸縮不要なセルのいずれかに該当する。このため、2列目、4列目および6列目については、伸縮不要な列とみなす。
【0042】
このため、例えば、
図19に示すように、ヘッダ部「事業所」(伸縮候補列=1列目~2列目)の右境界部をドラッグした場合、2列目は伸縮不要なので、1列目が伸縮対象列となる。また、
図19に示すように、ヘッダ部「担当者メールアドレス」(伸縮候補列=3列目~6列目)の右境界部をドラッグした場合、6列目は伸縮不要なので5列目が伸縮対象となる。
【0043】
このように、セルが多数結合している場合、最終的に全体幅が広がれば内部でどこを広げるかは実装の問題だが、右の列から判定するようにすることで、判定を単純化することができる。
【0044】
[1-4.本実施形態の例外ケース]
上記[1-3]で説明したように、伸縮候補列を、右から左にたどり、伸縮不要ではない列が現われた時に、当該列を伸縮対象列とするのが原則ではあるが、この原則は、多くの場合は、ボタンセル等の伸縮不要なセルが塊の右に配置されるからという理由に基づくものである。
【0045】
しかしながら、このような原則によらず、優先的に伸縮したい列が存在するケース(例外ケース)もある。本実施形態においては、このような例外ケースにおいて、伸縮対象列をアプリケーション開発者が個別に設定できるようにした。
【0046】
例えば、
図20に示すテーブルにおいて、5列目の備考2のセルより3列目の備考1のセルを優先的に伸縮させたい場合、アプリケーション開発者が3列目に対して「優先的に伸縮させる」旨の設定をしておくことにより、[1-3]で説明した伸縮対象列の決定は行われず、3列目が優先的に伸縮対象となる。このため、
図21に示すように、ヘッダ部「担当者メールアドレス」の右部をドラッグした場合、伸縮候補列は3列目~6列目であるが、6列目から左にたどることはせず、3列目が強制的に伸縮対象列となる。なお、伸縮候補列の中に、「優先的に伸縮させる」という設定がされた列が複数存在する場合には、当該設定がされた複数の列のうち最も右の列を優先的に伸縮させてもよいし、あるいは、当該設定がされた複数の列を均等に伸縮させてもよい。以下、具体的な構成および動作について説明する。
【0047】
[2.構成]
本実施形態に係る伸縮対象列決定装置100の構成の一例について、
図1を参照して説明する。
図1は、伸縮対象列決定装置100の構成の一例を示すブロック図である。
【0048】
伸縮対象列決定装置100は、市販のデスクトップ型パーソナルコンピュータである。なお、伸縮対象列決定装置100は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
【0049】
伸縮対象列決定装置100は、制御部102と通信インターフェース部104と記憶部106と入出力インターフェース部108と、を備えている。伸縮対象列決定装置100が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0050】
通信インターフェース部104は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、伸縮対象列決定装置100をネットワーク300に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク300は、伸縮対象列決定装置100とサーバ200とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。なお、後述する各種マスタ等のデータは、例えばサーバ200に格納されてもよい。
【0051】
入出力インターフェース部108には、入力装置112および出力装置114が接続されている。出力装置114には、モニタ(家庭用テレビを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、及びマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114をモニタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。
【0052】
記憶部106には、各種のデータベース、テーブルおよびファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部106として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。
【0053】
記憶部106は、例えば、ヘッダ部セル定義データ106aと、データ部セル定義データ106bと、例外指定データ106cと、を備えている。
【0054】
ヘッダ部セル定義データ106aは、各ヘッダ部セルについての伸縮対象列を管理するためのデータである。ヘッダ部セル定義データ106aは、
図26に示すように、例えば、ヘッダ部セル識別データ(セルタイトル)と、段番号と、列番号と、列結合数と、各ヘッダ部セルについての伸縮対象列の列番号(右部ドラッグ時に伸縮させる列番号)と、等を含む。なお、各のヘッダ部セルについての伸縮対象列の列番号(右部ドラッグ時に伸縮させる列番号)は、初期状態においてはブランクとなっているが、以下の[3-1]の(2)および[4-1]の(2)で説明する処理によって、列番号の値が格納される。
【0055】
データ部セル定義データ106bは、各データ部セルについての伸縮要否を管理するためのデータである。データ部セル定義データ106bは、
図27に示すように、例えば、データ部セル識別データ(セル識別名)と、セルのタイプと、段番号と、列番号と、各データ部セルについての伸縮要否と、等を含む。なお、各データ部セルについての伸縮要否は、初期状態においてはブランクとなっているが、以下の[3-1]の(1)および[4-1]の(1)で説明する処理によって、「要」または「否」が格納される。
【0056】
例外指定データ106cは、優先的に伸縮するべき列を設定するためのデータである。
図28の例外指定データ106cにおいては、表1というテーブルについては、優先的に伸縮するべき列として「3列目」が設定されている。なお、優先的に伸縮するべき列として、1列だけではなく複数の列を設定することもでき、この場合、当該複数の列のうち最も右の列を優先的に伸縮させてもよいし、あるいは、当該複数の列を均等に伸縮させてもよい。
【0057】
制御部102は、伸縮対象列決定装置100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。
【0058】
制御部102は、機能概念的に、例えば、(1)前記最小単位のセルの各々に対して、伸縮の要否を判定するセル毎伸縮要否判定手段としてのセル毎伸縮要否判定部102aと、(2)前記伸縮したヘッダ部セルを構成する最小単位のセルが属する列を、明細部における伸縮候補列として特定する伸縮候補列特定手段としての伸縮候補列特定部102bと、(3)(i)前記伸縮候補列特定手段で特定した伸縮候補列が1列しか存在しない場合、当該1列を明細部の伸縮対象列として決定し、(ii)一方で、前記伸縮候補列特定手段で特定した伸縮候補列が2列以上存在する場合、前記伸縮候補列特定手段で特定した伸縮候補列のうち列番号が一番大きい列から順に、当該列に属する明細部におけるセルのうち伸縮要なセルが一つでも存在するか否かを判定し、(ii-1)前記存在すると初めて判定できた列を明細部の伸縮対象列として決定し、これに対して、(ii-2)前記存在すると判定できる列が、伸縮候補列のうち列番号が二番目に小さい列の判定終了時点で登場しなかった場合、伸縮候補列のうち列番号が一番小さい列を明細部の伸縮対象列として決定する伸縮対象列決定手段としての伸縮対象列決定部102cと、(4)オペレータの操作によって横方向に伸縮したヘッダ部セルおよび横方向への伸縮幅を特定する伸縮幅等特定手段としての伸縮幅等特定部102dと、(5)前記伸縮幅等特定手段で特定したヘッダ部セルについて前記伸縮対象列決定手段で決定した明細部の伸縮対象列を、前記伸縮幅等特定手段で特定した伸縮幅の分だけ伸縮する列伸縮手段としての列伸縮部102eと、を備えている。
【0059】
ここで、本実施形態に係る伸縮対象列決定装置100によれば、セルから構成されるテーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するかを適切に決定することができる。
【0060】
セル毎伸縮要否判定部102aは、前記最小単位のセルの各々に対して、伸縮の要否を判定する。具体的には、セル毎伸縮要否判定部102aは、前記最小単位のセルが、ボタンセルである場合、テキスト入力セルであって入力されるテキストの文字もしくは数値の数の上限値が規定値以下である場合、または、列番号が一つ小さいセルと結合しているセルである場合に、前記最小単位のセルを、伸縮不要なセルであると判定する。
【0061】
伸縮候補列特定部102bは、伸縮したヘッダ部セルを構成する最小単位のセルが属する列を、明細部における伸縮候補列として特定する。
【0062】
(i)伸縮対象列決定部102cは、伸縮候補列特定部102bで特定した伸縮候補列が1列しか存在しない場合(=
図23のステップSB5において、Noへ進んでから再びSB5に戻るループではなく、一回目でYesへ進んだ場合)、当該1列を明細部の伸縮対象列として決定する。
【0063】
(ii)一方で、伸縮対象列決定部102cは、伸縮候補列特定部102bで特定した伸縮候補列が2列以上存在する場合(=
図23のステップSB5において、Noへ進んだ場合)、伸縮候補列特定部102bで特定した伸縮候補列のうち列番号が一番大きい列から順に、当該列に属する明細部におけるセルのうち伸縮要なセルが一つでも存在するか否かを判定し、(ii-1)前記存在すると初めて判定できた列を明細部の伸縮対象列として決定し(=
図23のステップSB7においてNoへと進んだ場合)、これに対して、(ii-2)前記存在すると判定できる列が、伸縮候補列のうち列番号が二番目に小さい列の判定終了時点で登場しなかった場合(=
図23のステップSB5において、Noへ進んでから再びSB5に戻るループによってYesとなった場合)、伸縮候補列のうち列番号が一番小さい列を明細部の伸縮対象列として決定する。
【0064】
なお、伸縮対象列決定部102cは、伸縮候補列特定部102bで特定した伸縮候補列の中に、優先的に伸縮するべき列としてオペレータにより事前指定された列が存在する場合は、当該事前指定された列を伸縮対象列として優先的に決定する。当該事前設定は、前述のとおり、例外指定データ106cにより行うことができる。
【0065】
伸縮幅等特定部102dは、オペレータの操作によって横方向に伸縮したヘッダ部セルおよび横方向への伸縮幅を特定する。
【0066】
列伸縮部102eは、伸縮幅等特定部102dで特定したヘッダ部セルについて伸縮対象列決定部102cで決定した明細部の伸縮対象列を、伸縮幅等特定部102dで特定した伸縮幅の分だけ伸縮する。
【0067】
なお、前記オペレータの操作は、例えば、マウスによるドラッグ操作である。また、列番号がより大きい列は、例えば、テーブルにおいてより右の列である。
【0068】
[3.処理の流れ]
本項目では、本実施形態に係る処理の流れをフローチャートに沿って説明する。以下の[3-1]においては事前判定フローを説明し、以下の[3-2]においてはユーザがヘッダ部セルの右境界部をドラッグした時のフローを説明する。
【0069】
[3-1.事前判定フロー]
本項目では、事前判定フローを
図22および
図23に沿って説明する。事前判定とは、各ヘッダ部セルの右部ドラッグ時に伸縮させる列番号を事前に決定しておくことを指す。なお、ここでいう「事前」とは、ユーザがヘッダ右部をドラッグした時ではなく、予めの処理ということを指し、例えば、画面起動時およびプログラムのコンパイル(ソースコードをPCが処理できるバイナリデータに変換する)時を指す。
【0070】
(1)データ部セルについての処理の流れ
まず、データ部セルについての処理の流れを
図22のフローチャートに沿って説明する。データ部セルについての処理が開始されると(
図22のスタート)、セル毎伸縮要否判定部102aは、データ部セルについて、任意の順番で、伸縮要否を判定する(
図22のステップSA1)。
【0071】
具体的には、セル毎伸縮要否判定部102aは、処理中のセルが、
・ボタンセル
・テキスト入力セルのうち、最大入力可能幅が、列幅の既定値以下のセル
・自身より左のセルに結合しているセル
のいずれかのセルに該当する場合、処理中のセルを「伸縮不要なセル」であると判定し、データ部セル定義データ106b中の伸縮要否として「否」をセットする。
【0072】
すべてのデータ部セルについての伸縮要否の判定が終了すると、データ部セルについての処理は終了する(
図22のエンド)。
【0073】
(2)ヘッダ部セルについての処理の流れ
次に、ヘッダ部セルについての処理の流れを
図23のフローチャートに沿って説明する。ヘッダ部セルについての処理が開始されると(
図23のスタート)、伸縮候補列特定部102bは、伸縮候補となる列を特定して列挙する(
図23のステップSB1)。
【0074】
具体的には、伸縮候補列特定部102bは、自身が位置する列を伸縮候補列とし、または、自身が複数列にまたがって結合されたヘッダである場合には当該結合された複数列を伸縮候補列とする。例えば、
図15に示すテーブルにおける「担当者メールアドレス」のヘッダ部セルの場合、「担当者メールアドレス」は3列目~6列目にまたがっているため、伸縮候補列は、3列目~6列目となる。
【0075】
次に、伸縮対象列決定部102cは、伸縮候補列の中に「優先的に伸縮させる」の指定をされている列があるか否かを判定する(
図23のステップSB2)。「優先的に伸縮させる」の指定をされている列がある場合(
図23のステップSB2:Yes)、伸縮対象列決定部102cは、ヘッダ部セル定義データ106a中の「右部ドラッグ時に伸縮させる列番号」として、指定されている列番号をセットする(
図23のステップSB3)。
【0076】
これに対して、「優先的に伸縮させる」の指定をされている列がない場合(
図23のステップSB2:No)、伸縮対象列決定部102cは、伸縮候補列を右から左に処理する(
図23のステップSB4)。なお、本例においては、右に1列ずれると列番号が1大きくなるものとする。このため、本例でいう「右から左に処理する」とは、伸縮候補列の中で列番号が最も大きいものから処理を開始し、列番号を1ずつ小さくしながら処理対象を変化させること意味している。
【0077】
具体的には、伸縮対象列決定部102cは、まず、処理中の列が、伸縮候補列の中で最も左の列か否かを判定する(
図23のステップSB5)。最も左の列である場合(
図23のステップSB5:Yes)、伸縮対象列決定部102cは、ヘッダ部セル定義データ106a中の「右部ドラッグ時に伸縮させる列番号」として、処理中の列(=最も左の列)の列番号をセットする(
図23のステップSB6)。
【0078】
これに対して、最も左の列ではない場合(
図23のステップSB5:No)、伸縮対象列決定部102cは、処理中の列のすべてのセルが、伸縮不要か否かを判定する(
図23のステップSB7)。すべてのセルが伸縮不要ではない場合(
図23のステップSB7:No)、言い換えると、伸縮要なセルが一つでもある場合、伸縮対象列決定部102cは、ヘッダ部セル定義データ106a中の「右部ドラッグ時に伸縮させる列番号」として、処理中の列の列番号をセットする(
図23のステップSB8)。
【0079】
これに対して、すべてのセルが伸縮不要である場合(
図23のステップSB7:Yes)、伸縮対象列決定部102cは、一つ左の列について、再びステップSB5の処理を行う。
【0080】
ステップSB3、ステップSB6またはステップSB8の処理終了後、伸縮対象列決定部102cは、すべてのヘッダ部セルについての処理が終了したか否かを判定する(
図23のステップSB9)。すべてのヘッダ部セルについての処理が終了している場合(
図23のステップSB9:Yes)、ヘッダ部セルについての処理は終了する(
図23のエンド)。
【0081】
これに対して、すべてのヘッダ部セルについての処理がまだ終了していない場合(
図23のステップSB9:No)、ステップSB1に戻り、未処理のヘッダ部セルについて、伸縮候補となる列の特定が行われる。
【0082】
[3-2.ユーザがヘッダ部セルの右境界部をドラッグした時のフロー]
本項目では、ユーザがヘッダ部セルの右境界部をドラッグした時のフローを
図24に沿って説明する。列ヘッダ部セルがドラッグされると、当該ドラッグされた列ヘッダに対応する、[3-1]で決定した伸縮対象列が伸縮する。
【0083】
ヘッダ部セルの右境界部がドラッグされることにより処理が開始されると(
図24のスタート)、伸縮幅等特定部102dは、ドラッグされたヘッダ部セルおよび横方向ドラッグ幅(左右方向を含む)を特定する(
図24のステップSC1)。
【0084】
次に、伸縮幅等特定部102dは、ヘッダ部セル定義データ106aを参照し、ステップSC1で特定したヘッダ部セルについての「右部ドラッグ時に伸縮させる列番号」を取得する(
図24のステップSC2)。当該取得した列番号を「X」とする。
【0085】
次に、列伸縮部102eは、ステップSC1で特定した横方向ドラッグ幅(左右方向を含む)に応じて、ステップSC2で取得した列番号「X」の列の横幅を変更する(
図24のステップSC3)。なお、列伸縮部102eは、ヘッダ部セルの右境界部が”右方向”にドラッグされた場合は列の幅を横方向ドラッグ幅と同じだけ”伸ばし”、これに対して、ヘッダ部セルの右境界部が”左方向”にドラッグされた場合は列の幅を横方向ドラッグ幅と同じだけ”縮める”。
【0086】
以上の処理により、結果として、列番号「X」のすべてのセルが、ドラッグされたヘッダ部セルと同じ幅だけ伸縮する(
図24のステップSC4)。
【0087】
以上により、右境界部ドラッグ時の処理が終了する(
図24のエンド)。
【0088】
[4.処理の具体例]
本項目では、本実施形態に係る処理の具体例を説明する。以下の[4-1]においては事前判定の処理の具体例を説明し、以下の[4-2]においてはユーザがヘッダ部セルの右境界部をドラッグした時の処理の具体例を説明する。
【0089】
(前提条件)
ここで、事前のデータ設定等の前提条件を説明する。本項目においては、
図25に示す表1というテーブルを対象として、処理を行うものとする。
図25に示すテーブル中のヘッダ部セルを定義するための情報として、
図26に示すヘッダ部セル定義データ106aが設定されているものとする。また、
図25に示すテーブル中のデータ部セルを定義するための情報として、
図27に示すデータ部セル定義データ106bが設定されているものとする。
【0090】
図26のヘッダ部セル定義データ106aは、初期状態であるため、「右部ドラッグ時に伸縮させる列番号」の列がブランクとなっているが、以下の[4-1]の(2)で説明する処理により、当該ブランクとなっている列に列番号が格納される。また、
図27のデータ部セル定義データ106bも、初期状態であるため、「伸縮要否」の列がブランクとなっているが、以下の[4-1]の(1)で説明する処理により、当該ブランクとなっている列に「要」または「否」が格納される。
【0091】
また、本項目においては、例外指定データ106cは、
図28に示す内容で設定されているものとする。
図28の例外指定データ106cにおいては、表1については、優先的に伸縮するべき列として「3列目」が設定されている。
【0092】
[4-1.事前判定の処理]
本項目では、事前判定の処理を詳細に説明する。
【0093】
(1)データ部セルについての処理
データ部セルについての処理が開始されると(
図22のスタート)、セル毎伸縮要否判定部102aは、
図25に示す表1というテーブル中の各々のデータ部セルに対して(すなわち、
図29のデータ部セル定義データ106b中の各々の行に対して)、伸縮の要否を判定する(
図22のステップSA1)。
【0094】
すなわち、セル毎伸縮要否判定部102aは、各々のセルが、
・ボタンセル
・テキスト入力セルのうち、最大入力可能幅が、列幅の既定値以下のセル
・自身より左のセルに結合しているセル
のいずれかのセルに該当する場合、処理中のセルを「伸縮不要なセル」であると判定し、データ部セル定義データ106b中の伸縮要否として「否」をセットする。
【0095】
例えば、
図29のデータ部セル定義データ106bにおいて、1行目(段番号=1、列番号=1)のセルは、タイプが「コード/名称」であるため、上記3つのセルのいずれにも該当しない。このため、セル毎伸縮要否判定部102aは、
図30のデータ部セル定義データ106bに示すように、当該セルの伸縮要否として「要」をセットする。
【0096】
これに対して、
図29のデータ部セル定義データ106bにおいて、2行目(段番号=1、列番号=2)のセルは、タイプが「ボタン」であるため、ボタンセルに該当する。このため、セル毎伸縮要否判定部102aは、
図30のデータ部セル定義データ106bに示すように、当該セルの伸縮要否として「否」をセットする。また、
図29のデータ部セル定義データ106bにおいて、9行目(段番号=2、列番号=2)のセルは、タイプが「自身の左の結合」であるため、自身より左のセルに結合しているセルに該当する。このため、セル毎伸縮要否判定部102aは、
図30のデータ部セル定義データ106bに示すように、当該セルの伸縮要否として「否」をセットする。
【0097】
以上により、データ部セルについての処理は終了する(
図22のエンド)。
【0098】
このようにして、セル毎伸縮要否判定部102aがすべてのデータ部セルに対して伸縮要否を判定することで、
図30のデータ部セル定義データ106bに示すように、伸縮要否の列に「要」または「否」が格納される。
【0099】
(2)ヘッダ部セルについての処理
ヘッダ部セルについての処理が開始されると(
図23のスタート)、伸縮候補列特定部102bは、ヘッダ部セル毎に伸縮候補列を特定し、また、伸縮対象列決定部102cは、ヘッダ部セル毎に伸縮対象列を決定する。以下、「事業所」、「部門」、「担当者」、「〇〇」、「●●」、「担当者メールアドレス」、「△△」、「倉庫」、「備考1」および「備考2」という10のセルについての伸縮候補列の特定および伸縮対象列の決定を、この順序で説明する。
【0100】
(2-1)ヘッダ部セル「事業所」についての処理
図31の「伸縮候補の列を判定」を参照すると、ヘッダ部セル「事業所」については、列番号=1、列結合数=2である。このため、伸縮候補列特定部102bは、列番号1から数えて2列分、すなわち、1列目~2列目を伸縮候補列として特定する(
図23のステップSB1)。
【0101】
次に、
図31の「伸縮候補の中に『優先的に伸縮させる』指定の列があるか判定」を参照すると、表1については優先的に伸縮させる列は「3列目」である。このため、伸縮対象列決定部102cは、伸縮候補列である1列目~2列目の中に、優先的に伸縮させる列はないと判定する(
図23のステップSB2:No)。
【0102】
次に、伸縮対象列決定部102cは、伸縮候補列である1列目~2列目を右から左に処理する(
図23のステップSB4)。
【0103】
伸縮対象列決定部102cは、2列目について、伸縮候補列である1列目~2列目の中で最も左の列であるか否かを判定する(
図23のステップSB5)。伸縮対象列決定部102cは、2列目は最も左の列ではないと判定する(
図23のステップSB5:No)。
【0104】
次に、伸縮対象列決定部102cは、2列目のデータ部セルのすべてが伸縮不要か否かを判定する(
図23のステップSB7)。
図32の「伸縮候補列を右から左に処理する」の「列番号2を処理する」の表に示すように、列番号2のデータ部セルは、伸縮要否がすべて「否」であるため、伸縮対象列決定部102cは、2列目のデータ部セルのすべてが伸縮不要であると判定し(
図23のステップSB7:Yes)、ステップSB5へ戻り、2列目の一つ左の列(=1列目)について処理を行う。
【0105】
伸縮対象列決定部102cは、1列目について、伸縮候補列である1列目~2列目の中で最も左の列であるか否かを判定する(
図23のステップSB5)。伸縮対象列決定部102cは、1列目は最も左の列ではあると判定する(
図23のステップSB5:Yes)。
【0106】
このため、伸縮対象列決定部102cは、
図32の「伸縮候補列を右から左に処理する」の「列番号1を処理する」の表に示すように、ヘッダ部セル定義データ106a中の「事業所」についての「右部ドラッグ時に伸縮させる列番号」に、最も左の列の列番号である「1」を格納する(
図23のステップSB6)。
【0107】
以上、本項目(2-1)で説明した処理により、伸縮対象列決定部102cは、ヘッダ部セル「事業所」がドラッグされた時の伸縮対象列を「1列目」に決定する。
【0108】
ステップSB6の終了後、すべてのヘッダ部セルについての処理が終了したか否かが判定される(
図23のステップSB9)。まだ終了していないため(
図23のステップSB9:No)、ステップSB1に戻り、次のヘッダ部セル「部門」についての処理が実行される。
【0109】
(2-2)ヘッダ部セル「部門」についての処理
図33の「伸縮候補の列を判定」を参照すると、ヘッダ部セル「部門」については、列番号=3、列結合数=2である。このため、伸縮候補列特定部102bは、列番号3から数えて2列分、すなわち、3列目~4列目を伸縮候補列として特定する(
図23のステップSB1)。
【0110】
次に、
図33の「伸縮候補の中に『優先的に伸縮させる』指定の列があるか判定」を参照すると、表1については優先的に伸縮させる列は「3列目」である。このため、伸縮対象列決定部102cは、伸縮候補列である3列目~4列目の中に、優先的に伸縮させる列があると判定する(
図23のステップSB2:Yes)。
【0111】
このため、伸縮対象列決定部102cは、
図33の「伸縮候補の中に『優先的に伸縮させる』指定の列があるか判定」の表に示すように、ヘッダ部セル定義データ106a中の「部門」についての「右部ドラッグ時に伸縮させる列番号」に、優先的に伸縮させる列の列番号である「3」を格納する(
図23のステップSB3)。
【0112】
以上、本項目(2-2)で説明した処理により、伸縮対象列決定部102cは、ヘッダ部セル「部門」がドラッグされた時の伸縮対象列を「3列目」に決定する。
【0113】
ステップSB3の終了後、すべてのヘッダ部セルについての処理が終了したか否かが判定される(
図23のステップSB9)。まだ終了していないため(
図23のステップSB9:No)、ステップSB1に戻り、次のヘッダ部セル「担当者」についての処理が実行される。
【0114】
(2-3)ヘッダ部セル「担当者」についての処理
ヘッダ部セル「担当者」についての処理の説明は省略するが、伸縮対象列決定部102cは、ヘッダ部セル「担当者」がドラッグされた時の伸縮対象列を「5列目」に決定する。
【0115】
ヘッダ部セル「担当者」についての処理の終了後、すべてのヘッダ部セルについての処理が終了したか否かが判定される(
図23のステップSB9)。まだ終了していないため(
図23のステップSB9:No)、ステップSB1に戻り、次のヘッダ部セル「〇〇」についての処理が実行される。
【0116】
(2-4)ヘッダ部セル「〇〇」についての処理
図34「伸縮候補の列を判定」を参照すると、ヘッダ部セル「〇〇」については、列番号=7、列結合数=1である。このため、伸縮候補列特定部102bは、列番号7から数えて1列分、すなわち、7列目を伸縮候補列として特定する(
図23のステップSB1)。
【0117】
次に、
図34の「伸縮候補の中に『優先的に伸縮させる』指定の列があるか判定」を参照すると、表1については優先的に伸縮させる列は「3列目」である。このため、伸縮対象列決定部102cは、伸縮候補列である7列目の中に、優先的に伸縮させる列はないと判定する(
図23のステップSB2:No)。
【0118】
次に、伸縮対象列決定部102cは、伸縮候補列である7列目を右から左に処理する(
図23のステップSB4)。
【0119】
伸縮対象列決定部102cは、7列目について、伸縮候補列である7列目の中で最も左の列であるか否かを判定する(
図23のステップSB5)。伸縮対象列決定部102cは、7列目が最も左の列であると判定する(
図23のステップSB5:Yes)。
【0120】
このため、伸縮対象列決定部102cは、
図35の「伸縮候補列を右から左に処理する」の「列番号7を処理する」の表に示すように、ヘッダ部セル定義データ106a中の「事業所」についての「右部ドラッグ時に伸縮させる列番号」に、最も左の列の列番号である「7」を格納する(
図23のステップSB6)。
【0121】
以上、本項目(2-4)で説明した処理により、伸縮対象列決定部102cは、ヘッダ部セル「〇〇」がドラッグされた時の伸縮対象列を「7列目」に決定する。
【0122】
ステップSB6の終了後、すべてのヘッダ部セルについての処理が終了したか否かが判定される(
図23のステップSB9)。まだ終了していないため(
図23のステップSB9:No)、ステップSB1に戻り、次のヘッダ部セル「●●」についての処理が実行される。
【0123】
(2-5)ヘッダ部セル「●●」についての処理
ヘッダ部セル「●●」についての処理の説明は省略するが、伸縮対象列決定部102cは、ヘッダ部セル「●●」がドラッグされた時の伸縮対象列を「1列目」に決定する。
【0124】
ヘッダ部セル「●●」についての処理の終了後、すべてのヘッダ部セルについての処理が終了したか否かが判定される(
図23のステップSB9)。まだ終了していないため(
図23のステップSB9:No)、ステップSB1に戻り、次のヘッダ部セル「担当者メールアドレス」についての処理が実行される。
【0125】
(2-6)ヘッダ部セル「担当者メールアドレス」についての処理
図36の「伸縮候補の列を判定」を参照すると、ヘッダ部セル「担当者メールアドレス」については、列番号=3、列結合数=4である。このため、伸縮候補列特定部102bは、列番号3から数えて4列分、すなわち、3列目~6列目を伸縮候補列として特定する(
図23のステップSB1)。
【0126】
次に、
図36の「伸縮候補の中に『優先的に伸縮させる』指定の列があるか判定」を参照すると、表1については優先的に伸縮させる列は「3列目」である。このため、伸縮対象列決定部102cは、伸縮候補列である3列目~6列目の中に、優先的に伸縮させる列があると判定する(
図23のステップSB2:Yes)。
【0127】
このため、伸縮対象列決定部102cは、
図36の「伸縮候補の中に『優先的に伸縮させる』指定の列があるか判定」の表に示すように、ヘッダ部セル定義データ106a中の「担当者メールアドレス」についての「右部ドラッグ時に伸縮させる列番号」に、優先的に伸縮させる列の列番号である「3」を格納する(
図23のステップSB3)。
【0128】
以上、本項目(2-6)で説明した処理により、伸縮対象列決定部102cは、ヘッダ部セル「担当者メールアドレス」がドラッグされた時の伸縮対象列を「3列目」に決定する。
【0129】
ステップSB3の終了後、すべてのヘッダ部セルについての処理が終了したか否かが判定される(
図23のステップSB9)。まだ終了していないため(
図23のステップSB9:No)、ステップSB1に戻り、次のヘッダ部セル「△△」についての処理が実行される。
【0130】
(2-7)ヘッダ部セル「△△」についての処理
ヘッダ部セル「△△」についての処理の説明は省略するが、伸縮対象列決定部102cは、ヘッダ部セル「△△」がドラッグされた時の伸縮対象列を「7列目」に決定する。
【0131】
ヘッダ部セル「△△」についての処理の終了後、すべてのヘッダ部セルについての処理が終了したか否かが判定される(
図23のステップSB9)。まだ終了していないため(
図23のステップSB9:No)、ステップSB1に戻り、次のヘッダ部セル「倉庫」についての処理が実行される。
【0132】
(2-8)ヘッダ部セル「倉庫」についての処理
ヘッダ部セル「倉庫」についての処理の説明は省略するが、伸縮対象列決定部102cは、ヘッダ部セル「倉庫」がドラッグされた時の伸縮対象列が、「1列目」であると決定する。
【0133】
ヘッダ部セル「倉庫」についての処理の終了後、すべてのヘッダ部セルについての処理が終了したか否かが判定される(
図23のステップSB9)。まだ終了していないため(
図23のステップSB9:No)、ステップSB1に戻り、次のヘッダ部セル「備考1」についての処理が実行される。
【0134】
(2-9)ヘッダ部セル「備考1」についての処理
ヘッダ部セル「備考1」についての処理の説明は省略するが、伸縮対象列決定部102cは、ヘッダ部セル「備考1」がドラッグされた時の伸縮対象列を「3列目」に決定する。
【0135】
ヘッダ部セル「備考1」についての処理の終了後、すべてのヘッダ部セルについての処理が終了したか否かが判定される(
図23のステップSB9)。まだ終了していないため(
図23のステップSB9:No)、ステップSB1に戻り、次のヘッダ部セル「備考2」についての処理が実行される。
【0136】
(2-10)ヘッダ部セル「備考2」についての処理
図37の「伸縮候補の列を判定」を参照すると、ヘッダ部セル「備考2」については、列番号=5、列結合数=3である。このため、伸縮候補列特定部102bは、列番号5から数えて3列分、すなわち、5列目~7列目を伸縮候補列として特定する(
図23のステップSB1)。
【0137】
次に、
図37の「伸縮候補の中に『優先的に伸縮させる』指定の列があるか判定」を参照すると、表1については優先的に伸縮させる列は「3列目」である。このため、伸縮対象列決定部102cは、伸縮候補列である5列目~7列目の中に、優先的に伸縮させる列はないと判定する(
図23のステップSB2:No)。
【0138】
次に、伸縮対象列決定部102cは、伸縮候補列である5列目~7列目を右から左に処理する(
図23のステップSB4)。
【0139】
伸縮対象列決定部102cは、7列目について、伸縮候補列である5列目~7列目の中で最も左の列であるか否かを判定する(
図23のステップSB5)。伸縮対象列決定部102cは、7列目は最も左の列ではないと判定する(
図23のステップSB5:No)。
【0140】
次に、伸縮対象列決定部102cは、7列目のデータ部セルのすべてが伸縮不要か否かを判定する(
図23のステップSB7)。
図38の「伸縮候補列を右から左に処理する」の「列番号7を処理する」の表に示すように、列番号7のデータ部セルは、伸縮要否がすべて「否」ではないため、伸縮対象列決定部102cは、7列目のデータ部セルのすべてが伸縮不要というわけではないと判定する(
図23のステップSB7:No)。
【0141】
このため、伸縮対象列決定部102cは、
図38の「伸縮候補列を右から左に処理する」の「列番号7を処理する」の表に示すように、ヘッダ部セル定義データ106a中の「備考2」についての「右部ドラッグ時に伸縮させる列番号」に、現在処理中の列の列番号である「7」を格納する(
図23のステップSB8)。
【0142】
以上、本項目(2-10)で説明した処理により、伸縮対象列決定部102cは、ヘッダ部セル「備考2」がドラッグされた時の伸縮対象列を「7列目」に決定する。
【0143】
ステップSB8の終了後、すべてのヘッダ部セルについての処理が終了したか否かが判定される(
図23のステップSB9)。「備考2」についての処理をもって、すべてのヘッダ部セルについての処理が終了したため(
図23のステップSB9:Yes)、ヘッダ部セルについての処理はすべて終了となる(
図23のエンド)。
【0144】
(2-11)まとめおよび比較例
このようにして、伸縮対象列決定部102cが、すべてのヘッダ部セルについての伸縮対象列を決定することで、
図39のヘッダ部セル定義データ106aに示すように、「右部ドラッグ時に伸縮させる列番号」の列に、伸縮対象列の列番号が格納される。これにより、本項目[4-1]の事前判定の処理がすべて終了する。
【0145】
ちなみに比較例として、仮に、例外指定データ106cにおいて優先的に伸縮するべき列が設定されていなかったとする。この場合、伸縮対象列決定部102cは、ヘッダ部セル「担当者メールアドレス」については、
図40および
図41に示すように、伸縮対象列を「5列目」に決定する。
【0146】
[4-2.ユーザがヘッダ部セルの右境界部をドラッグした時の処理]
本項目では、ユーザがヘッダ部セルの右境界部をドラッグした時の処理を詳細に説明する。
【0147】
図42に示すように、ユーザがヘッダ部セル「担当者メールアドレス」の右境界部をドラッグすることにより処理が開始されると(
図24のスタート)、伸縮幅等特定部102dは、ドラッグされたヘッダ部セルがヘッダ部「担当者メールアドレス」の右境界部であることを特定し、また、右に例えば100pxドラッグされたことを特定する(
図24のステップSC1)。
【0148】
次に、伸縮幅等特定部102dは、
図39のヘッダ部セル定義データ106aを参照し、ドラッグされたヘッダ部セル「担当者メールアドレス」についての「右部ドラッグ時に伸縮させる列番号」として、「3」を取得する(
図24のステップSC2)。
【0149】
ちなみに、比較例として、仮に例外指定データ106cにおいて優先的に伸縮するべき列が設定されていなかった場合、(2-11)で説明したように、ヘッダ部セル定義データ106a中の「担当者メールアドレス」についての「右部ドラッグ時に伸縮させる列番号」には「5」が格納されている。このため、伸縮幅等特定部102dは、ドラッグされたヘッダ部セル「担当者メールアドレス」についての「右部ドラッグ時に伸縮させる列番号」として、「5」を取得する(
図24のステップSC2)。
【0150】
次に、列伸縮部102eは、
図43に示すように、ステップSC2で取得した列番号「3」の列の横幅を、ステップSC1で特定した横方向ドラッグ幅である100pxだけ伸ばす(
図24のステップSC3)。
【0151】
ちなみに、比較例として、仮に例外指定データ106cにおいて優先的に伸縮するべき列が設定されていなかった場合、列伸縮部102eは、
図44に示すように、ステップSC2で取得した列番号「5」の列の横幅を、ステップSC1で特定した横方向ドラッグ幅である100pxだけ伸ばす(
図24のステップSC3)。
【0152】
以上の処理により、結果として、列番号「3」のすべてのセルが、ドラッグされたヘッダ部セル「担当者メールアドレス」と同じ幅だけ伸縮する(
図24のステップSC4)。つまり、
図43に示すように、ヘッダ部セルの「部門」、「担当者メールアドレス」および「備考1」、ならびに、データ部セルの「部門コード/名称」、「担当者メールアドレス」および「備考1」が、100pxだけ伸びる。
【0153】
ちなみに、比較例として、仮に例外指定データ106cにおいて優先的に伸縮するべき列が設定されていなかった場合、列番号「5」のすべてのセルが、ドラッグされたヘッダ部セル「担当者メールアドレス」と同じ幅だけ伸縮する(
図24のステップSC4)。つまり、
図44に示すように、ヘッダ部セルの「担当者」、「担当者メールアドレス」および「備考2」、ならびに、データ部セルの「担当者コード/名称」、「担当者メールアドレス」および「備考2」が、100pxだけ伸びる。
【0154】
このように、例外指定データ106cにおいて優先的に伸縮するべき列として「3」が設定されている場合には、
図43に示すように、列番号「3」のすべてのセルが伸びるため、「部門コード/名称」において文字が隠れている部分はない。これに対して、例外指定データ106cにおいて優先的に伸縮するべき列として「3」が設定されていない場合には、
図44に示すように、「B3001 北名古屋第1グループ」の一部が隠れてしまう。このため、文字数が多い等の理由により優先して伸縮したい列がある場合には、例外指定データ106cにおいて、当該伸縮したい列の列番号を設定しておくことが好ましい。
【0155】
以上により、ユーザがヘッダ部セルの右境界部をドラッグした時の処理は終了する(
図24のエンド)。これにより、本項目[4-2]のユーザがヘッダ部セルの右境界部をドラッグした時の処理がすべて終了する。
【0156】
[5.本実施形態のまとめ]
以上説明してきたように、本実施形態に係る伸縮対象列決定装置100によれば、セルから構成されるテーブルにおいて、最小単位のセルを結合することで構成されたヘッダ部セルがオペレータの操作によって横方向に伸縮した場合に、明細部において何列目のセルを対象として横方向に伸縮するか(=伸縮対象列)を適切に決定することができる。
【0157】
また、本実施形態に係る伸縮対象列決定装置100によれば、決定された伸縮対象列を伸縮することができる。
【0158】
ここで、従来におけるテーブル開発においては、ユーザが期待する伸縮位置を実現するためには、開発者が列に対する伸縮要否を指定する必要があり、直感的ではない設定をする必要があるという問題、および、テーブルのレイアウト変更時に伸縮要否を指定し直す必要があるという問題等があった。
【0159】
そこで、本実施形態においては、例えば、画面明細レイアウト上のテーブル構造において、ヘッダ部とデータ部でセルの結合の有無や結合範囲が異なる場合に、ヘッダ結合列の境界伸縮操作に対応する明細部におけるセルの伸縮位置を自動判定できるようにすることで、ヘッダや列ごとの個別指定をほぼ不要とした。これにより、アプリケーションの開発生産性を向上しつつも、カスタマイズ等によるレイアウト変更にも柔軟に対応できるようにした。
【0160】
具体的に言い換えると、本実施形態においては、
・原則的には、右側から伸縮不要な候補をスキップした最初の1つ目の列を伸縮対象列とするようにした。
・例外的に、個別の列ごとの設定が必要な場合においても、必要最小限の列に対する設定だけで済むようにした。
【0161】
これにより、本実施形態においては、細かいコーディングができないノーコード開発またはローコード開発において、テーブル開発の効率性および柔軟性の両方を大幅に向上することができる。ローコード開発においては、設定でアプリケーションを開発するが、一般的に、設定を増やすと自由度は高くなる一方で、設定コストの増加や作業者による品質差が生じやすい。本実施形態によれば、設定を増やさずに最適な制御が行えるため、品質を担保しつつ、生産性も向上することができる。
【0162】
[6.国連が主導する持続可能な開発目標(SDGs)への貢献]
本実施形態により、業務効率化や企業の適切な経営判断を推進することに寄与することができるので、SDGsの目標8及び9に貢献することが可能となる。
【0163】
また、本実施形態により、廃棄ロス削減や、ペーパレス・電子化を推進することに寄与することができるので、SDGsの目標12、13及び15に貢献することが可能となる。
【0164】
また、本実施形態により、統制、ガバナンス強化に寄与することができるので、SDGsの目標16に貢献することが可能となる。
【0165】
[7.他の実施形態]
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0166】
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0167】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0168】
また、伸縮対象列決定装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0169】
例えば、伸縮対象列決定装置100が備える処理機能、特に制御部にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて伸縮対象列決定装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0170】
また、このコンピュータプログラムは、伸縮対象列決定装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0171】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD-ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、および、Blu-ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
【0172】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【0173】
記憶部に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【0174】
また、伸縮対象列決定装置100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、伸縮対象列決定装置100は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
【0175】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【産業上の利用可能性】
【0176】
本発明は、例えば、テーブルの開発を行う分野において有用である。
【符号の説明】
【0177】
100 伸縮対象列決定装置
102 制御部
102a セル毎伸縮要否判定部
102b 伸縮候補列特定部
102c 伸縮対象列決定部
102d 伸縮幅等特定部
102e 列伸縮部
104 通信インターフェース部
106 記憶部
106a ヘッダ部セル定義データ
106b データ部セル定義データ
106c 例外指定データ
108 入出力インターフェース部
112 入力装置
114 出力装置
200 サーバ
300 ネットワーク