(57)【要約】【課題】簡易な操作で効率的にデータの展開や収納を行うことができる、表データ処理装置、表データ処理方法、および表データ処理プログラムを提供することである。【解決手段】実施形態の表データ処理装置は、操作入力受付部と、データ選択部と、表示制御部とを備える。操作入力受付部は、階層化されたマトリクス構造を有する表データにおける所望のセルおよび方向を指定する操作の入力を受け付ける。データ選択部は、操作入力受付部が受け付けた操作の入力に応じて、セルを含む行および列またはいずれかに対応するデータを選択する。表示制御部は、操作の入力に応じて、指定された方向がデータの展開を示す場合に、データ選択部が選択したデータの表示位置を動かさずに、前記のデータよりも下位の階層のデータを、前記のデータに隣接させて表示装置に表示させる。【選択図】図１
2015087934.tif 000002
【特許請求の範囲】
【請求項１】
階層化されたマトリクス構造を有する表データにおける所望のセルおよび方向を指定する操作の入力を受け付ける操作入力受付部と、
前記操作入力受付部が受け付けた操作の入力に応じて、前記セルを含む行および列またはいずれかに対応するデータを選択するデータ選択部と、
前記操作の入力に応じて、指定された前記方向がデータの展開を示す場合に、前記データ選択部が選択したデータの表示位置を動かさずに、前記データよりも下位の階層のデータを、前記データに隣接させて表示装置に表示させる表示制御部と、
を備える表データ処理装置。
【請求項２】
前記表示制御部は、指定された前記方向がデータの収納を示す場合に、前記データ選択部が選択したデータに対して上位の階層のデータの表示位置を動かさずに、前記データ選択部が選択したデータに対応する階層のデータを非表示にする、
請求項１記載の表データ処理装置。
【請求項３】
前記操作入力受付部は、有効または無効いずれかを選択する操作の入力を受け付け、前記有効を選択する操作の入力を受け付けた場合に、前記所望のセルおよび方向を指定する操作の入力を受け付ける、
請求項１または請求項２いずれか記載の表データ処理装置。
【請求項４】
前記表示制御部は、前記データ選択部が選択したデータの属性を変更して、前記属性が変更されたデータを前記表示装置に表示させる、
請求項１から請求項３いずれか一項記載の表データ処理装置。
【請求項５】
操作入力受付部が、階層化されたマトリクス構造を有する表データにおける所望のセルおよび方向を指定する操作の入力を受け付ける操作入力受付ステップと、
前記操作入力受付ステップにおいて受け付けた操作の入力に応じて、データ選択部が、前記セルを含む行および列またはいずれかに対応するデータを選択するデータ選択ステップと、
前記操作の入力に応じて、指定された前記方向がデータの展開を示す場合に、表示制御部が、前記データ選択ステップにおいて選択したデータの表示位置を動かさずに、前記データよりも下位の階層のデータを、前記データに隣接させて表示装置に表示させる表示制御ステップと、
を有する表データ処理方法。
【請求項６】
コンピュータを、
階層化されたマトリクス構造を有する表データにおける所望のセルおよび方向を指定する操作の入力を受け付ける操作入力受付手段、
前記操作入力受付部が受け付けた操作の入力に応じて、前記セルを含む行および列またはいずれかに対応するデータを選択するデータ選択手段、
前記操作の入力に応じて、指定された前記方向がデータの展開を示す場合に、前記データ選択部が選択したデータの表示位置を動かさずに、前記データよりも下位の階層のデータを、前記データに隣接させて表示装置に表示させる表示制御手段、
として機能させるための表データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、表データ処理装置、表データ処理方法、および表データ処理プログラムに関する。
【背景技術】
【０００２】
ユーザの操作によって指定された折畳み方向およびセルの書式に基づいて、表を構成する行および列の中から折畳むべき行および列またはいずれかを決定し、この決定した行および列またはいずれかを折畳んだ状態の表を表示する表データ処理装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−２０４４２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の表データ処理装置では、表マトリクスのサイズが比較的大きく、表示装置がその表全体を画面内に表示しきれない場合に、収納されたデータを展開したり展開されたデータを収納したりする際の操作が煩雑となったり、着目している項目が見失われる等の不便さが生じたりするおそれがある。
本発明が解決しようとする課題は、簡易な操作で効率的にデータの展開や収納を行うことができる、表データ処理装置、表データ処理方法、および表データ処理プログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の表データ処理装置は、操作入力受付部と、データ選択部と、表示制御部とを備える。操作入力受付部は、階層化されたマトリクス構造を有する表データにおける所望のセルおよび方向を指定する操作の入力を受け付ける。データ選択部は、前記操作入力受付部が受け付けた操作の入力に応じて、前記セルを含む行および列またはいずれかに対応するデータを選択する。表示制御部は、前記操作の入力に応じて、指定された前記方向がデータの展開を示す場合に、前記データ選択部が選択したデータの表示位置を動かさずに、前記データよりも下位の階層のデータを、前記データに隣接させて表示装置に表示させる。
【図面の簡単な説明】
【０００６】
【図１】実施形態の表データ処理装置を適用した情報処理装置の構成の概略を示すブロック図である。
【図２】実施形態における情報処理装置が表データ処理プログラムを処理する際に用いる表データ（データテーブル）のデータ構成の例を示す図である。
【図３】実施形態における情報処理装置が表データ処理プログラムを処理する際に用いる収納情報（折り畳み情報）のデータ構成の例を示す図である。
【図４】実施形態における情報処理装置がデータテーブルを初めて読み込むときに関連して読み込む、収納情報テーブルのデータ構成の例を示す図である。
【図５】実施形態における情報処理装置が読み込む、収納情報テーブルのデータ構成の別の例である。
【図６】実施形態における情報処理装置が記憶部からデータテーブルを読み込んで表示装置に表示させる際の処理手順を示すフローチャートである。
【図７】タッチパネルのタッチ操作に応じた情報処理装置の処理手順を示すフローチャートである。
【図８】実施形態における行方向ピンチアウト処理の手順を示すフローチャートである。
【図９】実施形態における列方向ピンチアウト処理の手順を示すフローチャートである。
【図１０】実施形態における両方向ピンチアウト処理の手順を示すフローチャートである。
【図１１】実施形態における行方向ピンチイン処理の手順を示すフローチャートである。
【図１２】実施形態における列方向ピンチイン処理の手順を示すフローチャートである。
【図１３】実施形態における両方向ピンチイン処理の手順を示すフローチャートである。
【図１４】ユーザによって縦方向のピンチアウト操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。
【図１５】ユーザによって横方向のピンチアウト操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。
【図１６】ユーザによって斜め方向のピンチアウト操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。
【図１７】ユーザによって縦方向のピンチイン操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。
【図１８】ユーザによって横方向のピンチイン操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。
【図１９】ユーザによって斜め方向のピンチイン操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照して詳細に説明する。
図１は、実施形態の表データ処理装置を適用した情報処理装置の構成の概略を示すブロック図である。同図に示すように、情報処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０と、メモリ２０と、記憶部３０と、表示コントローラ４０と、入力コントローラ５０と、表示装置６０とを備える。情報処理装置１において、ＣＰＵ１０と、メモリ２０と、記憶部３０と、表示コントローラ４０と、入力コントローラ５０と、表示装置６０とは、情報処理装置１内部のバス７０を介して接続されている。
【０００８】
ＣＰＵ１０は、情報処理装置１の全体の動作を制御する主制御部である。ＣＰＵ１０は、例えば、記憶部３０に記憶された各種プログラムをメモリ２０に読み出し、メモリ２０から当該プログラムを読み込んで実行する。各種プログラムには、リソース管理を司るオペレーティングシステム（Ｏｐｅｒａｔｉｏｎｇ  Ｓｙｓｔｅｍ；ＯＳ）２１、ならびに、ＯＳ２１の管理下で動作する表計算アプリケーションプログラム２２およびその他のアプリケーションプログラム２３が含まれる。表計算アプリケーションプログラム２２は、本実施形態の表データ処理プログラム２２０を有している。ＯＳ２１は、表計算アプリケーションプログラム２２、その他のアプリケーションプログラム２３に対して、入力コントローラ５０から取り込んだイベントを通知する。
【０００９】
メモリ２０に展開（ロード）された表計算アプリケーションプログラム２２をＣＰＵ１０が実行することによって、情報処理装置１は、表計算装置として動作する。詳細には、メモリ２０に展開された表データ処理プログラム２２０をＣＰＵ１０が実行することによって、情報処理装置１は、表データ処理装置として動作する。
【００１０】
記憶部３０は、上記の各種プログラムを記憶する。また、記憶部３０は、表データ処理プログラム２２０によって用いられるデータテーブル（表データともいう。）および収納情報テーブルを記憶する。データテーブルは、表計算アプリケーションプログラムが処理対象とするテーブルのデータである。収納情報テーブルは、データテーブルのセルごとに、下位の階層のデータが収納されているか、当該セルのデータが展開された状態であるかを表す情報である。
【００１１】
メモリ２０は、記憶部３０に記憶された各種プログラムを展開したり、データテーブルおよび収納情報テーブルを展開したりする記憶部である。メモリ２０は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の半導体メモリによって実現される。また、記憶部３０は、例えば、磁気ハードディスク装置、半導体記憶装置によって実現される。
【００１２】
表示コントローラ４０は、表示装置６０への画像表示を制御する。表示コントローラ４０は、ＣＰＵ１０が各種プログラムを実行することによって表示させようとする画像を、ＣＰＵ１０に代わって描画する機能を有している。
【００１３】
表示装置６０は、表示部６１と、タッチパネル６２とを備える。
表示部６１は、表示コントローラ４０による表示制御によって画像を表示する。具体的に、ＣＰＵ１０が表計算アプリケーションプログラム２２を実行することにより、表示部６１は、データテーブルやこのデータテーブルを操作するためのグラフィカルユーザインターフェース（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ；ＧＵＩ）を表示する。表示部６１は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）によって実現される。
【００１４】
タッチパネル６２は、表示部６１の表示面上に設けられ、情報処理装置１の操作者（ユーザ）による操作の入力を受け付ける。つまり、タッチパネル６２は、ユーザによってタッチ操作が行われると、タッチパネル６２上のタッチ位置を示す位置座標を含む入力情報を、入力コントローラ５０に供給する。タッチパネル６２は、マルチタッチパネル（マルチタッチスクリーン）により実現される。
【００１５】
入力コントローラ５０は、タッチパネル６２のタッチ操作によるデータ入力を制御する。タッチパネル６２上でタッチ操作が行われると、入力コントローラ５０は、例えば、タッチパネル６２が供給する入力情報を自身のレジスタに格納するとともに割り込みを発生させてＣＰＵ１０に通知し、レジスタに格納した入力情報をＣＰＵ１０に読み取らせる。これにより、表示部６１の表示面上でのタッチ操作というイベントの発生がＯＳ２１に伝達される。
【００１６】
メモリ２０に展開された表データ処理プログラム２２０をＣＰＵ１０が実行することにより、タッチパネル６２は操作入力受付部として機能し、ＣＰＵ１０はデータ選択部および表示制御部として機能する。以下、これらの機能について説明する。
【００１７】
タッチパネル６２は、階層化されたマトリクス構造を有する表データにおける所望のセルおよび方向を指定する操作の入力を受け付ける。表データは、行および列またはいずれかによるマトリクスデータが階層化して構成されるデータである。階層の最上位層は第１層であり、下位の層に移るにしたがって階層の番号が増える。本実施形態では、２層に階層化された表データを例として説明する。なお、この層数は、２層に限らず３層以上とすることができる。
【００１８】
表データにおける所望のセルおよび方向を指定する操作として、例えば、ピンチアウトおよびピンチインが用いられる。
ピンチアウトは、タッチパネル６２上に置いた二つの指先を相互に離す方向にずらす操作である。
【００１９】
表示部６１に表示された表データの所望のセルに対して縦方向（行方向ともいう。）のピンチアウトが行われた場合、ＣＰＵ１０は、当該セルを含む行に対応するデータ（基準レコード）を選択し、この基準レコードに対して一段下位の階層のレコードを、基準レコードの表示位置を動かさずに、基準レコードに隣接させて下方向に展開して表示部６１に表示させる。
【００２０】
また、表示部６１に表示された表データの所望のセルに対して横方向（列方向ともいう。）のピンチアウトが行われた場合、ＣＰＵ１０は、当該セルを含む列に対応するデータ（基準フィールド）を選択し、この基準フィールドに対して一段下位の階層のフィールドを、基準フィールドの表示位置を動かさずに、基準フィールドに隣接させて右方向に展開して表示部６１に表示させる。
【００２１】
また、表示部６１に表示された表データの所望のセルに対して斜め方向（両方向ともいう。）のピンチアウトが行われた場合、ＣＰＵ１０は、当該セルを含む列に対応するデータ（基準フィールド）を選択し、この基準フィールドに対して一段下位の階層のフィールドを、基準フィールドの位置を基準にして右方向に展開、挿入するとともに、当該セルを含む行に対応するデータ（基準レコード）を選択し、この基準レコードに対して一段下位の階層のレコードを、基準レコードの位置を基準にして下方向に展開、挿入して表示部６１に表示させる。斜め方向とは、例えば、データテーブルの列方向に対して所定の角度の方向（例えば、略４５度、略１３５度）である。
【００２２】
ピンチインは、タッチパネル６２上に置いた二つの指先を相互に近づける方向にずらす操作である。
【００２３】
表示部６１に表示された表データの所望のセルに対して縦方向（行方向）のピンチインが行われた場合、ＣＰＵ１０は、当該セルを含む行に対応するデータ（レコード）を選択する。そして、ＣＰＵ１０は、そのレコードが展開されたデータである場合に、当該展開されたデータに対応する階層のレコードを非表示とし、この非表示としたレコードよりも下方向にあるレコードを、選択したレコードに対して一段上位の階層のレコードの表示位置を動かさずに上方向に詰め、表示部６１に表示させる。
【００２４】
表示部６１に表示された表データの所望のセルに対して横方向（列方向）のピンチインが行われた場合、ＣＰＵ１０は、当該セルを含む列に対応するデータ（フィールド）を選択する。そして、ＣＰＵ１０は、そのフィールドが展開されたデータである場合に、当該展開されたデータに対応する階層のフィールドを非表示とし、この非表示としたフィールドよりも右方向にあるフィールドを、選択したフィールドに対して一段上位の階層のフィールドの表示位置を動かさずに左方向に詰め、表示部６１に表示させる。
【００２５】
表示部６１に表示された表データの所望のセルに対して斜め方向（両方向）のピンチインが行われた場合、ＣＰＵ１０は、当該セルを含む列に対応するデータ（フィールド）を選択する。そして、ＣＰＵ１０は、そのフィールドが展開されたデータである場合に、当該展開されたデータに対応する階層のフィールドを非表示とし、この非表示としたフィールドよりも右方向にあるフィールドを、選択したフィールドに対して一段上位の階層のフィールドの位置を基準にして左方向に詰める。さらに、ＣＰＵ１０は、当該セルを含む行に対応するデータ（レコード）を選択する。そして、ＣＰＵ１０は、そのレコードが展開されたデータである場合に、当該展開されたデータに対応する階層のレコードを非表示とし、この非表示としたレコードよりも下方向にあるレコードを、選択したレコードに対して一段上位の階層のレコードの位置を基準にして上方向に詰め、表示部６１に表示させる。
【００２６】
タッチパネル６２は、ピンチアウトまたはピンチインの操作に応じて得られる位置座標を時系列に含めた入力情報を入力コントローラ５０に供給する。ＣＰＵ１０は、入力コントローラ５０による割り込みにしたがって入力コントローラ５０から入力情報を取り込み、この入力情報に基づいて、原点位置と方向と操作の種類とを求める。
【００２７】
次に、実施形態において用いられる各種データのデータ構成について説明する。
図２は、情報処理装置１が表データ処理プログラム２２０を処理する際に用いる表データ（データテーブル）のデータ構成の例を示す図である。同図のデータテーブル２は、３行３列のマトリクス構造を有する表データであり、第１層の第２行および第２列のデータに、第２層のデータを有している。具体的に、第１層のレコードである第１レコード（Ｒ２）は、第２層のレコードである第２レコード（Ｒ２−１）と関係付けられている。データテーブル２において、第１レコード（Ｒ１）と第１フィールド（Ｆ１）とが交わるセルには、データ“４６２”が格納されている。なお、データテーブル２において、例えば、第１レコード（Ｒ１）と第１フィールド（Ｆ１）とが交わるセルには、データが格納されていない。つまり、このセルはヌルである。
【００２８】
図３は、情報処理装置１が表データ処理プログラム２２０を処理する際に用いる収納情報（折り畳み情報）のデータ構成の例を示す図である。同図の収納情報３は、データテーブル２の各セルに対応付けられたデータである。収納情報３は、「第１階層行」と、「第１階層列」と、「第１階層収納レコード数」と、「第１階層収納フィールド数」と、「第２階層行」と、「第２階層列」と、「第２階層展開レコードフラグ」と、「第２階層展開フィールドフラグ」との項目を有している。
【００２９】
「第１階層行」および「第１階層列」は、第１階層におけるセルの位置を示すデータである。「第１階層収納レコード数」は、第１階層において当該セルを含むレコードが収納するレコード数を示すデータである。「第１階層収納フィールド数」は、第１階層において当該セルを含むフィールドが収納するフィールド数を示すデータである。「第２階層行」および「第２階層列」は、第２階層におけるセルの位置を示すデータである。「第２階層展開レコードフラグ」は、第２階層において、当該セルが展開されているか否かを示すデータである。第２階層において、当該セルが展開されている場合、この「第２階層展開レコードフラグ」は、例えば“１”となり、当該セルが収納されている場合、この「第２階層展開レコードフラグ」は、例えば“０”となる。なお、これら各項目において、該当しない項目は、例えば、ヌルである。
【００３０】
図４は、情報処理装置１がデータテーブル２を初めて読み込むときに関連して読み込む、収納情報テーブルのデータ構成の例を示す図である。同図の収納情報テーブル４の各セルのデータは、図３に示した収納情報３のデータ構成を有している。具体的に、第１レコード（Ｒ１）と第１フィールド（Ｆ１）とが交わるセルの収納情報は、“1, 1, 0, 0, -, -, -, -”であり、データテーブル２の第１階層の第１行、第１列に対応するセルには、第２階層のレコードおよびフィールドを収納していないことを示している。また、第１レコード（Ｒ１）と第１フィールド（Ｆ２）とが交わるセルの収納情報は、“1, 2, 0, 2, -, -, -, -”であり、データテーブル２の第１階層の第１行、第２列に対応するセルには、第２階層のレコードを収納せず、第２階層の２列のフィールドを収納していることを示している。また、第２レコード（Ｒ２−２）と第２フィールド（Ｆ２−１）とが交わるセルの収納情報は、“2, 2, -, -, 2, 1, 0, 0”であり、データテーブル２の第１階層の第２行、第２列に対応する第２階層の第２行、第１列に対応するセルは、行方向および列方向とも収納されていることを示している。
すなわち、同図によれば、表データ処理プログラム２２０を起動した情報処理装置１がデータテーブル２を初めて読み込むときに関連して読み込む収納情報テーブル４は、第２階層のデータがすべて収納された状態を示している。
【００３１】
図５は、情報処理装置１が読み込む、収納情報テーブルのデータ構成の別の例である。同図の収納情報テーブル５は、第１レコード（Ｒ２）に２行分の第２レコード（Ｒ２−1，Ｒ２−２）が収納され、第２フィールド（Ｆ２−１，Ｆ２−２）が展開された例である。
【００３２】
次に、表データ処理プログラムを実行する情報処理装置１の動作について説明する。
図６は、情報処理装置１が記憶部３０からデータテーブル２を読み込んで表示装置６０に表示させる際の処理手順を示すフローチャートである。
ステップＳ１において、ＣＰＵ１０は、記憶部３０に記憶されたデータテーブル２および収納情報テーブル４をメモリ２０に読み出す。
次に、ステップＳ２において、ＣＰＵ１０は、収納情報テーブル４に基づき、各収納情報に対応させてデータテーブルのデータを表示装置６０に表示させる。すなわち、図４に示した収納情報テーブル４を用いた場合、ＣＰＵ１０は、第２階層のデータが収納された状態のデータテーブル、言い換えると、第１層に対応するデータを表示装置６０に表示させる。
【００３３】
図７は、タッチパネル６２のタッチ操作に応じた情報処理装置１の処理手順を示すフローチャートである。
ステップＳ１１において、タッチパネル６２は、タッチ操作を受け付けると、タッチパネル６２上のタッチ位置を示す位置座標を含む入力情報を、入力コントローラ５０に供給する。入力コントローラ５０は、ＣＰＵ１０に対して割り込みを発生させて入力情報をＣＰＵ１０に取り込ませる。
【００３４】
次に、ＣＰＵ１０は、入力情報に基づいて、原点位置と方向と操作の種類とを求める。具体的に、ＣＰＵ１０は、入力情報における初期値、つまり、二つの指が置かれた位置に対応する位置座標の中間位置の座標を計算し、この座標を原点位置とする。次に、ＣＰＵ１０は、入力情報における一連の位置座標からポイント（指先）の軌跡を計算する。
次に、ＣＰＵ１０は、二つのポイントが相互に離れると判定した場合（ステップＳ１２：ＹＥＳ）、ステップＳ１３においてその方向を判別する。その方向がタッチパネル６２の縦方向に沿う場合、ＣＰＵ１０は、当該操作が行方向のピンチアウトであると判定し（ステップＳ１３：縦方向（行方向））、ステップＳ１４の処理に進める。また、その方向がタッチパネル６２の横方向に沿う場合、ＣＰＵ１０は、当該操作が列方向のピンチアウトであると判定し（ステップＳ１３：横方向（列方向））、ステップＳ１５の処理に移行進める。また、その方向がタッチパネルの斜め方向に沿う場合、ＣＰＵ１０は、当該操作が列方向および行方向のピンチアウトであると判定し（ステップＳ１３：斜め方向（両方向））、ステップＳ１６の処理に進める。
【００３５】
一方、ＣＰＵ１０は、二つのポイントが相互に近づくと判定した場合（ステップＳ１７：ＹＥＳ）、ステップＳ１８においてその方向を判別する。その方向がタッチパネル６２の縦方向に沿う場合、ＣＰＵ１０は、当該操作が行方向のピンチインであると判定し（ステップＳ１８：縦方向（行方向））、ステップＳ１９の処理に進める。また、その方向がタッチパネル６２の横方向に沿う場合、ＣＰＵ１０は、当該操作が列方向のピンチインであると判定し（ステップＳ１８：横方向（列方向））、ステップＳ２０の処理に進める。また、その方向がタッチパネルの斜め方向に沿う場合、ＣＰＵ１０は、当該操作が列方向および行方向のピンチインであると判定し（ステップＳ１８：斜め方向（両方向））、ステップＳ２１の処理に進める。
【００３６】
ステップＳ１４において、ＣＰＵ１０は、行方向ピンチアウト処理を実行した後、ステップＳ２２に進める。行方向ピンチアウト処理については後述する。
また、ステップＳ１５において、ＣＰＵ１０は、列方向ピンチアウト処理を実行した後、ステップＳ２２に進める。列方向ピンチアウト処理については後述する。
また、ステップＳ１６において、ＣＰＵ１０は、両方向ピンチアウト処理を実行した後、ステップＳ２２に進める。両方向ピンチアウト処理については後述する。
【００３７】
また、ステップＳ１９において、ＣＰＵ１０は、行方向ピンチイン処理を実行した後、ステップＳ２２に進める。行方向ピンチイン処理については後述する。
また、ステップＳ２０において、ＣＰＵ１０は、列方向ピンチイン処理を実行した後、ステップＳ２２に進める。列方向ピンチイン処理については後述する。
また、ステップＳ２１において、ＣＰＵ１０は、両方向ピンチイン処理を実行した後、ステップＳ２２に進める。両方向ピンチイン処理については後述する。
【００３８】
ステップＳ２２において、ＣＰＵ１０は、メモリ２０にロードされた収納情報テーブルを記憶部３０に記憶させる。
【００３９】
次に、行方向ピンチアウト処理について説明する。
図８は、行方向ピンチアウト処理の手順を示すフローチャートである。
ステップＳ１４１において、ＣＰＵ１０は、原点位置に対応するセルを特定し、当該セルを含む行に対応するデータ（基準レコード）を選択し、この基準レコードに下位の階層のレコードが収納されているか否かを、メモリ２０上の収納情報テーブルを参照して判定する。そして、ＣＰＵ１０は、基準レコードに下位の階層のレコードが収納されていると判定した場合（ステップＳ１４１：ＹＥＳ）、ステップＳ１４２の処理に進め、基準レコードに下位の階層のレコードが収納されていないと判定した場合（ステップＳ１４１：ＮＯ）、ステップＳ１４３の処理に進める。
【００４０】
ステップＳ１４２において、ＣＰＵ１０は、メモリ２０上のデータテーブルにおいて、基準レコードに対して一段下位の階層のレコードを、基準レコードの位置を基準にして下方向に展開、挿入する。また、これに伴って、ＣＰＵ１０は、メモリ２０上の収納情報テーブルを更新する。
次に、ステップＳ１４３において、ＣＰＵ１０は、メモリ２０上のデータテーブルを表示部６１に表示させる。
【００４１】
次に、列方向ピンチアウト処理について説明する。
図９は、列方向ピンチアウト処理の手順を示すフローチャートである。
ステップＳ１５１において、ＣＰＵ１０は、原点位置に対応するセルを特定し、当該セルを含む列に対応するデータ（基準フィールド）を選択し、この基準フィールドに下位の階層のフィールドが収納されているか否かを、メモリ２０上の収納情報テーブルを参照して判定する。そして、ＣＰＵ１０は、基準フィールドに下位の階層のフィールドが収納されていると判定した場合（ステップＳ１５１：ＹＥＳ）、ステップＳ１５２の処理に進め、基準フィールドに下位の階層のフィールドが収納されていないと判定した場合（ステップＳ１５１：ＮＯ）、ステップＳ１５３の処理に進める。
【００４２】
ステップＳ１５２において、ＣＰＵ１０は、メモリ２０上のデータテーブルにおいて、基準フィールドに対して一段下位の階層のレコードを、基準フィールドの位置を基準にして右方向に展開、挿入する。また、これに伴って、ＣＰＵ１０は、メモリ２０上の収納情報テーブルを更新する。
次に、ステップＳ１５３において、ＣＰＵ１０は、メモリ２０上のデータテーブルを表示部６１に表示させる。
【００４３】
次に、両方向ピンチアウト処理について説明する。
図１０は、両方向ピンチアウト処理の手順を示すフローチャートである。
ステップＳ１６１において、ＣＰＵ１０は、原点位置に対応するセルを特定し、当該セルを含む列に対応するデータ（基準フィールド）を選択し、この基準フィールドに下位の階層のフィールドが収納されているか否かを、メモリ２０上の収納情報テーブルを参照して判定する。そして、ＣＰＵ１０は、基準フィールドに下位の階層のフィールドが収納されていると判定した場合（ステップＳ１６１：ＹＥＳ）、ステップＳ１６２の処理に進め、基準フィールドに下位の階層のフィールドが収納されていないと判定した場合（ステップＳ１６１：ＮＯ）、ステップＳ１６３の処理に進める。
【００４４】
ステップＳ１６２において、ＣＰＵ１０は、メモリ２０上のデータテーブルにおいて、基準フィールドに対して一段下位の階層のレコードを、基準フィールドの位置を基準にして右方向に展開、挿入する。また、これに伴って、ＣＰＵ１０は、メモリ２０上の収納情報テーブルを更新する。
【００４５】
ステップＳ１６３において、ＣＰＵ１０は、原点位置に対応するセルを特定し、当該セルを含む行に対応するデータ（基準レコード）を選択し、この基準レコードに下位の階層のレコードが収納されているか否かを、メモリ２０上の収納情報テーブルを参照して判定する。そして、ＣＰＵ１０は、基準レコードに下位の階層のレコードが収納されていると判定した場合（ステップＳ１６３：ＹＥＳ）、ステップＳ１６４の処理に進め、基準レコードに下位の階層のレコードが収納されていないと判定した場合（ステップＳ１６３：ＮＯ）、ステップＳ１６５の処理に進める。
【００４６】
ステップＳ１６４において、ＣＰＵ１０は、メモリ２０上のデータテーブルにおいて、基準レコードに対して一段下位の階層のレコードを、基準レコードの位置を基準にして下方向に展開、挿入する。また、これに伴って、ＣＰＵ１０は、メモリ２０上の収納情報テーブルを更新する。
次に、ステップＳ１６５において、ＣＰＵ１０は、メモリ２０上のデータテーブルを表示部６１に表示させる。
【００４７】
次に、行方向ピンチイン処理について説明する。
図１１は、行方向ピンチイン処理の手順を示すフローチャートである。
ステップＳ１９１において、ＣＰＵ１０は、原点位置に対応するセルを特定し、当該セルを含む行に対応するデータ（レコード）を選択し、このレコードが展開されたデータであるか否かを、メモリ２０上の収納情報テーブルを参照して判定する。そして、ＣＰＵ１０は、選択したレコードが展開されたデータであると判定した場合（ステップＳ１９１：ＹＥＳ）、ステップＳ１９２の処理に進め、選択したレコードが展開されたデータでないと判定した場合（ステップＳ１９１：ＮＯ）、ステップＳ１９３の処理に進める。
【００４８】
ステップＳ１９２において、ＣＰＵ１０は、メモリ２０上のデータテーブルにおいて、当該展開されたデータに対応する階層のレコードを収納し、この収納したレコードよりも下方向にあるレコードを、選択したレコードに対して一段上位の階層のレコードの位置を基準にして上方向に詰める。
ステップＳ１９３において、ＣＰＵ１０は、メモリ２０上のデータテーブルを表示部６１に表示させる。
【００４９】
次に、列方向ピンチイン処理について説明する。
図１２は、列方向ピンチイン処理の手順を示すフローチャートである。
ステップＳ２０１において、ＣＰＵ１０は、原点位置に対応するセルを特定し、当該セルを含む列に対応するデータ（フィールド）を選択し、このフィールドが展開されたデータであるか否かを、メモリ２０上の収納情報テーブルを参照して判定する。そして、ＣＰＵ１０は、選択したフィールドが展開されたデータであると判定した場合（ステップＳ２０１：ＹＥＳ）、ステップＳ２０２の処理に進め、選択したフィールドが展開されたデータでないと判定した場合（ステップＳ２０１：ＮＯ）、ステップＳ２０３の処理に進める。
【００５０】
ステップＳ２０２において、ＣＰＵ１０は、メモリ２０上のデータテーブルにおいて、当該展開されたデータに対応する階層のフィールドを収納し、この収納したフィールドよりも右方向にあるフィールドを、選択したフィールドに対して一段上位の階層のフィールドの位置を基準にして左方向に詰める。
ステップＳ２０３において、ＣＰＵ１０は、メモリ２０上のデータテーブルを表示部６１に表示させる。
【００５１】
次に、両方向ピンチイン処理について説明する。
図１３は、両方向ピンチイン処理の手順を示すフローチャートである。
ステップＳ２１１において、ＣＰＵ１０は、原点位置に対応するセルを特定し、当該セルを含む列に対応するデータ（フィールド）を選択し、このフィールドが展開されたデータであるか否かを、メモリ２０上の収納情報テーブルを参照して判定する。そして、ＣＰＵ１０は、選択したフィールドが展開されたデータであると判定した場合（ステップＳ２１１：ＹＥＳ）、ステップＳ２１２の処理に進め、選択したフィールドが展開されたデータでないと判定した場合（ステップＳ２１１：ＮＯ）、ステップＳ２１３の処理に進める。
【００５２】
ステップＳ２１２において、ＣＰＵ１０は、メモリ２０上のデータテーブルにおいて、当該展開されたデータに対応する階層のフィールドを収納し、この収納したフィールドよりも右方向にあるフィールドを、選択したフィールドに対して一段上位の階層のフィールドの位置を基準にして左方向に詰める。
【００５３】
ステップＳ２１３において、ＣＰＵ１０は、原点位置に対応するセルを特定し、当該セルを含む行に対応するデータ（レコード）を選択し、このレコードが展開されたデータであるか否かを、メモリ２０上の収納情報テーブルを参照して判定する。そして、ＣＰＵ１０は、選択したレコードが展開されたデータであると判定した場合（ステップＳ２１３：ＹＥＳ）、ステップＳ２１４の処理に進め、選択したレコードが展開されたデータでないと判定した場合（ステップＳ２１３：ＮＯ）、ステップＳ２１５の処理に進める。
【００５４】
ステップＳ２１４において、ＣＰＵ１０は、メモリ２０上のデータテーブルにおいて、当該展開されたデータに対応する階層のレコードを収納し、この収納したレコードよりも下方向にあるレコードを、選択したレコードに対して一段上位の階層のレコードの位置を基準にして上方向に詰める。
ステップＳ２１５において、ＣＰＵ１０は、メモリ２０上のデータテーブルを表示部６１に表示させる。
【００５５】
次に、各種ピンチ操作に伴うテーブルデータの表示の例を説明する。
図１４は、ユーザによって縦方向のピンチアウト操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。同図において、データテーブル１４ａは、図２に示したデータテーブル２において第２階層のデータが全て収納されて表示されたデータテーブルである。また、図１４において、データテーブル１４ｂは、第１レコード（Ｒ２）の下位層の第２レコード（Ｒ２−１，Ｒ２−２）を展開して表示させたデータテーブルである。
【００５６】
図１４に示すように、データテーブル１４ａにおける第１レコード（Ｒ２）と第１フィールド（Ｆ２）とが交わるセルＡ上に原点位置が含まれるようにして縦方向（行方向）のピンチアウト操作が行われると、セルＡの位置を基準として、第１レコード（Ｒ２）と第１レコード（Ｒ３）との間に、第２レコード（Ｒ２−１，Ｒ２−２）が挟み込まれたデータテーブル１４ｂが表示される。つまり、データテーブル１４ａのセルＡにおいて縦方向のピンチアウト操作が行われると、セルＡを含む行よりも下側が下方に繰り下がるようにして第１レコード（Ｒ２）の第２階層が表示される。
【００５７】
図１５は、ユーザによって横方向のピンチアウト操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。同図において、データテーブル１５ａは、図２に示したデータテーブル２において第２階層のデータが全て収納されて表示されたデータテーブルである。また、図１５において、データテーブル１５ｂは、第１フィールド（Ｆ２）の下位層の第２フィールド（Ｆ２−１，Ｆ２−２）を展開して表示させたデータテーブルである。
【００５８】
図１５に示すように、データテーブル１５ａにおける第１レコード（Ｒ２）と第１フィールド（Ｆ２）とが交わるセルＡ上に原点位置が含まれるようにして横方向（列方向）のピンチアウト操作が行われると、セルＡの位置を基準として、第１フィールド（Ｆ２）と第１フィールド（Ｆ３）との間に、第２フィールド（Ｆ２−１，Ｆ２−２）が挟み込まれたデータテーブル１５ｂが表示される。つまり、データテーブル１５ａのセルＡにおいて横方向のピンチアウト操作が行われると、セルＡを含む列よりも右側が右方にずれるようにして第１フィールド（Ｆ２）の第２階層が表示される。
【００５９】
図１６は、ユーザによって斜め方向のピンチアウト操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。同図において、データテーブル１６ａは、図２に示したデータテーブル２において第２階層のデータが全て収納されて表示されたデータテーブルである。また、図１６において、データテーブル１６ｂは、第１フィールド（Ｆ２）の下位層の第２フィールド（Ｆ２−１，Ｆ２−２）を展開するとともに、第１レコード（Ｒ２）の下位層の第２レコード（Ｒ２−１，Ｒ２−２）を展開して表示させたデータテーブルである。
【００６０】
図１６に示すように、データテーブル１６ａにおける第１レコード（Ｒ２）と第１フィールド（Ｆ２）とが交わるセルＡ上に原点位置が含まれるようにして斜め方向（両方向）のピンチアウト操作が行われると、セルＡの位置を基準として、第１フィールド（Ｆ２）と第１フィールド（Ｆ３）との間に第２フィールド（Ｆ２−１，Ｆ２−２）が挟み込まれるとともに、第１レコード（Ｒ２）と第１レコード（Ｒ３）との間に第２レコード（Ｒ２−１，Ｒ２−２）が挟み込まれたデータテーブル１６ｂが表示される。つまり、データテーブル１６ａのセルＡにおいて斜め方向のピンチアウト操作が行われると、セルＡを含む列よりも右側が右方にずれるようにして第１フィールド（Ｆ２）の第２階層が表示されるとともに、セルＡを含む行よりも下側が下方に繰り下がるようにして第１レコード（Ｒ２）の第２階層が表示される。
【００６１】
図１７は、ユーザによって縦方向のピンチイン操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。同図において、データテーブル１７ａは、図２に示したデータテーブル２において第２階層のデータが全て展開されて表示されたデータテーブルである。また、図１７において、データテーブル１７ｂは、第１レコード（Ｒ２）の下位層の第２レコード（Ｒ２−１，Ｒ２−２）を収納して表示させたデータテーブルである。
【００６２】
図１７に示すように、データテーブル１７ａにおける第２レコード（Ｒ２−２）と第１フィールド（Ｆ２）とが交わるセルＢ上に原点位置が含まれるようにして縦方向（行方向）のピンチイン操作が行われると、セルＢを含む行に対応する第２レコード（Ｒ２−２）の一段上位の層である第１レコード（Ｒ２）におけるセルＢ’の位置を基準として、第２レコード（Ｒ２−１，Ｒ２−２）が非表示となって第１レコード（Ｒ３）が上に詰まったデータテーブル１７ｂが表示される。
【００６３】
図１８は、ユーザによって横方向のピンチイン操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。同図において、データテーブル１８ａは、図２に示したデータテーブル２において第２階層のデータが全て展開されて表示されたデータテーブルである。また、図１８において、データテーブル１８ｂは、第１フィールド（Ｆ２）の下位層の第２フィールド（Ｆ２−１，Ｆ２−２）を収納して表示させたデータテーブルである。
【００６４】
図１８に示すように、データテーブル１８ａにおける第２レコード（Ｒ２−１）と第２フィールド（Ｆ２−２）とが交わるセルＢ上に原点位置が含まれるようにして横方向（列方向）のピンチイン操作が行われると、セルＢを含む列に対応する第２フィールド（Ｆ２−２）の一段上位の層である第１フィールド（Ｆ２）におけるセルＢ’の位置を基準として、第２フィールド（Ｆ２−１，Ｆ２−２）が非表示となって第１フィールド（Ｆ３）が左に詰まったデータテーブル１８ｂが表示される。
【００６５】
図１９は、ユーザによって斜め方向のピンチイン操作が行われた場合の、データテーブルの表示の遷移を模式的に示した図である。同図において、データテーブル１９ａは、図２に示したデータテーブル２において第２階層のデータが全て展開されて表示されたデータテーブルである。また、図１９において、データテーブル１９ｂは、第１フィールド（Ｆ２）の下位層の第２フィールド（Ｆ２−１，Ｆ２−２）を収納するとともに、第１レコード（Ｒ２）の下位層の第２レコード（Ｒ２−１，Ｒ２−２）を収納して表示させたデータテーブルである。
【００６６】
図１９に示すように、データテーブル１９ａにおける第２レコード（Ｒ２−１）と第２フィールド（Ｆ２−２）とが交わるセルＢ上に原点位置が含まれるようにして斜め方向（両方向）のピンチイン操作が行われると、セルＢを含む列に対応する第２フィールド（Ｆ２−２）の一段上位の層に対応する列を基準として、第２フィールド（Ｆ２−１，Ｆ２−２）が非表示となって第１フィールド（Ｆ３）が左に詰まるとともに、セルＢを含む行に対応する第２レコード（Ｒ２−１）の一段上位の層に対応する行を基準として、第２レコード（Ｒ２−１，Ｒ２−２）が非表示となって第１レコード（Ｒ３）が上に詰まったデータテーブル１７ｂが表示される。
【００６７】
以上、説明したとおり、実施形態の表データ処理装置を適用した情報処理装置１は、階層化されたマトリクス構造を有する表データにおける所望のセルおよび方向を指定する操作の入力を受け付ける操作入力受付部を備える。また、情報処理装置１は、操作入力受付部が受け付けた操作の入力に応じて、セルを含む行および列またはいずれかに対応するデータを選択するデータ選択部を備える。また、情報処理装置１は、操作の入力に応じて、指定された方向がデータの展開を示す場合に、データ選択部が選択したデータの表示位置を動かさずに、そのデータよりも下位の階層のデータを、そのデータに隣接させて表示装置６０に表示させる表示制御部を備える。
この構成により、表データのマトリクスサイズが比較的大きく、表示装置６０がその表全体を画面内に表示しきれない場合でも、収納されたデータを展開する際の操作が簡易であり、着目している項目が見失われる等の不便さが改善される。
【００６８】
また、情報処理装置における表示制御部は、指定された方向がデータの収納を示す場合に、データ選択部が選択したデータに対して上位の階層のデータの表示位置を動かさずに、データ選択部が選択したデータに対応する階層のデータを非表示にするようにしてもよい。
この構成により、表データのマトリクスサイズが比較的大きく、表示装置６０がその表全体を画面内に表示しきれない場合でも、展開されたデータを収納する際の操作が簡易であり、着目している項目が見失われる等の不便さが改善される。
【００６９】
［その他の実施形態］
ＣＰＵ１０は、有効または無効いずれかを選択する（有効と無効とを切り替える）ＧＵＩボタンを表示部６１に表示させ、有効または無効いずれかを選択する操作の入力をタッチパネル６２で受け付けさせる。有効を選択する操作の入力をタッチパネル６２で受け付けた場合に、ＣＰＵ１０は、所望のセルおよび方向を指定する操作（例えば、ピンチアウトおよびピンチイン）の入力を受け付ける。
これにより、データテーブルのマトリクスサイズが比較的大きく、データテーブル全体を表示部６１に表示させたときにセルが小さくなりすぎる場合に、無効状態において、例えば、ピンチアウト操作でデータテーブルを見易い状態まで拡大したのちに、有効状態にして、所望のセルおよび方向を指定するためのピンチ操作を行うことができる。
【００７０】
また、ＣＰＵ１０は、選択したセルの属性を変更して、属性が変更されたセルに対応するデータを表示部６１に表示させるようにしてもよい。セルの属性とは、例えば、文字色、文字の背景色、飾り文字、フォント、文字サイズである。
これにより、着目しているセルを見失ったり、展開および収納前後のデータテーブルの変化によってデータを見誤ったりするおそれが軽減される。
【００７１】
以上述べた少なくともひとつの実施形態の表データ処理装置、表データ処理方法、および表データ処理プログラムによれば、表データにおける所望のセルおよび方向を指定する操作を受け付け、そのセルを含む行および列またはいずれかに対応するデータを選択し、指定された方向がデータの展開を示す場合に、選択したデータの表示位置を動かさずに、当該データよりも下位の階層のデータを、当該データに隣接させて表示装置に表示させる。このようにしたことにより、直感的で簡易な操作で、効率的にデータの展開を行うことができる。
【００７２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７３】
１…情報処理装置、１０…ＣＰＵ、２０…メモリ、２１…オペレーティングシステム、２２…表計算アプリケーションプログラム、２３…その他のアプリケーションプログラム、３０…記憶部、４０…表示コントローラ、５０…入力コントローラ、６０…表示装置、６１…表示部、６２…タッチパネル、７０…バス、２２０…表データ処理プログラム
【図１】
2015087934.tif 000003
【図２】
2015087934.tif 000004
【図３】
2015087934.tif 000005
【図４】
2015087934.tif 000006
【図５】
2015087934.tif 000007
【図６】
2015087934.tif 000008
【図７】
2015087934.tif 000009
【図８】
2015087934.tif 000010
【図９】
2015087934.tif 000011
【図１０】
2015087934.tif 000012
【図１１】
2015087934.tif 000013
【図１２】
2015087934.tif 000014
【図１３】
2015087934.tif 000015
【図１４】
2015087934.tif 000016
【図１５】
2015087934.tif 000017
【図１６】
2015087934.tif 000018
【図１７】
2015087934.tif 000019
【図１８】
2015087934.tif 000020
【図１９】
2015087934.tif 000021