JP2009163405A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2009163405A
JP2009163405A JP2007340926A JP2007340926A JP2009163405A JP 2009163405 A JP2009163405 A JP 2009163405A JP 2007340926 A JP2007340926 A JP 2007340926A JP 2007340926 A JP2007340926 A JP 2007340926A JP 2009163405 A JP2009163405 A JP 2009163405A
Authority
JP
Japan
Prior art keywords
display
sort
priority
item
sorting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007340926A
Other languages
English (en)
Other versions
JP4411343B2 (ja
JP2009163405A5 (ja
Inventor
Tomotaka Saito
知隆 斉藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon IT Solutions Inc
Original Assignee
Canon IT Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon IT Solutions Inc filed Critical Canon IT Solutions Inc
Priority to JP2007340926A priority Critical patent/JP4411343B2/ja
Publication of JP2009163405A publication Critical patent/JP2009163405A/ja
Publication of JP2009163405A5 publication Critical patent/JP2009163405A5/ja
Application granted granted Critical
Publication of JP4411343B2 publication Critical patent/JP4411343B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数の項目によりデータの並び替えを行う際に、データの並び替えの項目の優先度や並び替え方向の視覚による認識や、項目の優先度の変更を容易に行うこと。
【解決手段】表示制御部302が、表示対象のデータの各表示項目のソート方向の変更要求に従って、前記各表示項目のソート方向情報を制御し、各表示項目のソートの優先順位の変更要求に従って、前記各表示項目のソートの優先順位情報を制御し、前記各表示項目のソート方向情報及び前記各表示項目のソートの優先順位情報に基づき、前記データの表示順位を制御し、前記各表示項目のソート方向及び前記各表示項目のソートの優先順位を識別可能に表示する構成を特徴とする。
【選択図】図3

Description

本発明は、複数の項目によるデータの並び替えを行う技術に関し、特にデータの並び替えの項目の優先度や並び替え方向を認識可能で、且つ項目の優先度の変更を容易に行う技術に関する。
一般に、データベースを検索して検索結果を一覧表示する一覧表や電子メールアプリケーション等では、利用者が効率よく検索結果を閲覧できるように並び替え(ソート)機能を有している。
一般的にはソートを行う際にキーとなる項目(ソートキー項目)を選択し、その項目を降順もしくは昇順どちらでソートするかを設定することで、その設定に基づきソートされた結果が画面表示されることになる。
その際にソートの設定については、ソートキー項目に降順を示す「▽」や昇順を示す「△」などのマークをソート項目に表示し、ユーザが視認出来るような工夫がされている。多くの場合は項目名をマウス等のポインティングデバイスで指示することにより、ソート処理が行われる。ただ、多くの場合は複数の項目でのソートを行うことが出来ない。
一方、マイクロソフト社のExcel(登録商標)などの表計算ソフトでは、複数の項目をキーとしてデータのソートを行うことが可能である。その際には、ソートキー項目を選択し、優先度やソートの方向を設定するためのUIを画面に表示させ、複数の項目のソートの優先順やソートの方向を設定し、データの並び替えを行うことが可能である。しかし、一覧表でのソートキーの設定を行うことが出来ない。
特許文献1には、データの一覧表に対して操作を行うことで、複数のソートキーに基づいてデータをソートする技術が開示されている。
特開2006−031084号公報
しかし、特許文献1で開示されている技術では、ソートの優先順を確認することが出来ない。これでは、ユーザはどの順番でソートしているかを理解することが不可能である。また、ソートキーの優先順の変更についてもなんら開示されていない。
本発明は、上記の問題点を解決するためになされたもので、複数の項目によりデータの並び替えを行う際に、データの並び替えの項目の優先度や並び替え方向を認識可能で、且つ項目の優先度の変更を容易に行う仕組を提供することを目的とする。
本発明は、表形式で表示されているデータのソート処理を行う情報処理装置であって、表示対象のデータの各表示項目のソート方向の変更要求を受け付ける第一の受付手段と、前記各表示項目のソートの優先順位の変更要求を受け付ける第二の受付手段と、前記第一の受付手段で受け付けた前記ソート方向の変更要求に従って、前記各表示項目のソート方向情報を制御する第一の制御手段と、前記第二の受付手段で受け付けた前記ソートの優先順位の変更要求に従って、前記各表示項目のソートの優先順位情報を制御する第二の制御手段と、前記各表示項目のソート方向情報及び前記各表示項目のソートの優先順位情報に基づき、前記データの表示順位を制御し、前記各表示項目のソート方向及び前記各表示項目のソートの優先順位を識別可能に表示する表示制御手段と、を備えることを特徴とする。
本発明によれば、データの一覧表を参照しながら複数のキーによるソートを行う際に、そのソートキーの優先度の変更や確認を行う視覚により容易に行うことが可能となる。
図1は、本発明における情報処理システムの構成の一例を示すシステム構成図である。
図1において、101はデータベースサーバであって、顧客マスタや売上マスタなどのデータを記録管理するデータベース機構を備え、情報処理装置102−1及び102−2からの登録、更新、削除、検索要求を受け、要求に応じてそれら処理を行う。
情報処理装置102−1、102−2(以下、まとめて情報処理装置102という)は、データベースサーバ101に対して、データベースサーバ101が管理しているテーブルへのデータの新規登録、変更、削除、検索といった要求をユーザの指示に基づいて行うものである。
103はネットワークであり、データベースサーバ101、情報処理装置102−1及び102−2を相互にデータ通信可能に接続する。
次に、図2を参照して、データベースサーバ101、及び情報処理装置102のハードウェア構成について説明する。
図2は、データベースサーバ101、及び情報処理装置102のハードウェア構成の一例を示すブロック図である。
図2において、201はCPUであり、RAM202やROM203に格納されているプログラムやデータを用いて、端末(コンピュータ)全体の制御を行うとともに、本コンピュータを適用するデータベースサーバ101、若しくは情報処理装置102が行う後述する各処理を実行する。
202はRAMであり、HDD(ハードディスクドライブ)204からロードされたプログラムやデータを一時的に記憶するためのエリアを有するとともに、CPU201が各種処理を行うために使用するワークエリアを備える。
203はROMであり、コンピュータのブートプログラムやBIOS等の各種プログラムを記憶している。204はHDD(ハードディスクドライブ)であり、OS(オペレーティングシステム)や、本コンピュータを適用するデータベースサーバ101、若しくは情報処理装置102が行う後述の処理をCPU201に実行させるためのプログラムやデータ等の各種データを保存しており、これらは必要に応じてCPU201の制御によりRAM202に読み出され実行されることになる。
205は記録媒体ドライブであり、CD−ROM、CD−R/RW、DVD―ROM、DVD−R/RW、DVD−RAM等から構成される。
206はキーボード、207はポインティングデバイスであり、各種の指示をCPU201に入力することができる。これらは、入力部として機能する。
208はビデオI/F(インタフェース)であり、ここにディスプレイ装置209を接続する。ディスプレイ装置209はCRTや液晶画面等で構成されており、ビデオI/F208を介して送られた信号に基づいて、文字や画像等の情報を表示画面上に表示する機能を有する。
210はネットワークI/F(インタフェース)であり、コンピュータをネットワーク103に接続するためのものである。コンピュータは、このネットワークI/F210を介してネットワーク上の他の機器とデータ通信を行うことが可能である。
211は外部機器I/F(インタフェース)であり、コンピュータに周辺機器を接続させるためのポートである。この外部機器I/F211を介してコンピュータは、周辺機器とのデータの送受信を行うことが可能である。SCSI、USB、IEEE1394等の各種インタフェースで構成することが可能であり、通常複数の外部機器I/F211を有する。また、周辺機器との接続形態は有線/無線を問わない。
212はシステムバスであり、上述の各種構成要素を相互に接続するバスとして機能する。
図3は、情報処理装置102の機能構成を示すブロック図である。
図3において、301は制御部であって、データアクセス部303に対して一覧データの抽出を命令する。
302は表示制御部であって、入力制御部305からの入力指示に応じてディスプレイ装置209等の表示部に表示されている一覧表データの表示制御を行う。
303はデータアクセス部であって、SQL等の検索文を作成しデータベースサーバ101にアクセスしデータの検索を行わせ、その結果である一覧データをデータベースサーバ101より取得する。
304はデータ管理部であって、データアクセス部303が取得した一覧データ及びその一覧データの取得に使用した検索文を記憶する。
305は入力制御部であって、キーボード206やポインティングデバイス207等からなる入力部を介してのディスプレイ装置209等の表示部に表示されている一覧表に対してのユーザからの表示制御命令を、表示制御部302に通知する。
なお、制御部301、表示制御部302、データアクセス部303、データ管理部304、入力制御部305は、CPU201がHDD204に格納されたプログラムをRAM202にロードして実行することにより実現される各機能部に相当する。
以上が情報処理装置の機能構成についての説明である。
以下、図4〜図13を参照して、情報処理装置102で行われる処理について説明する。
図4は、情報処理装置102で行われるデータベースサーバ101で管理しているマスタデータの編集処理を示すフローチャートである。この処理は、情報処理装置のCPU201がHDD204に記録されているプログラムをRAM202にロードして実行することにより実現される処理である。
まず、情報処理装置のCPU201は、データベースサーバ101からデータを取得するため(データ検索するため)の検索式を取得する(S401)。
なお、検索式は、予めファイルとしてHDD204に登録しているものを取得しても、ディスプレイ装置209に検索式入力のための画面を表示させ、その画面を解してキーボード206等の入力部を介して入力指示された検索文を取得しても構わない。
そして、CPU201は、ステップS401で取得した検索式を用いた検索要求をデータベースサーバ101に対して行う(S402)。
そして、CPU201は、データベースサーバ101でのデータベース検索処理の結果、検索式に合致したデータ(一覧データ)をデータベースサーバ101より取得する(S403)。
そして、CPU201は、ステップS401で取得した検索式に、ソート条件(例えば、SQLの場合「order by」句)が含まれているかを判断する(S404)。
そして、ステップS404でソート条件があったと判断した場合には(S404でYES)、CPU201は、そのソート条件(ソートキーとなっている項目名、そのソート方向(昇順or降順)、複数の場合はそれらソートキーの優先順)をRAM202に保存する(S405)。
その後、CPU201は、取得した一覧データの表示処理を行う(S406)。この一覧データ表示処理の詳細については図5を参照して後述する。
そしてその後、CPU201は、表示されたデータに対する編集処理が行われることになる(S407)。この編集処理の詳細については図6を参照して後述する。
その後、CPU201は、他のデータに対する編集処理を行うかを判断することになる(S408)。
そして、継続して他のデータに対する編集処理を行うと判断した場合には(S408でYES)、CPU201は、ステップS401からの処理を繰り返すように制御する。その際にはステップS401においては、他のデータに対する編集処理に必要な検索式を取得することになる。
一方、ステップS408において、継続して処理を行わないと判断した場合には(S408でNO)、CPU201は、本処理を終了するように制御する。
図5は、図4のステップS406の一覧データ表示処理の一例を詳細に示すフローチャートである。この処理は、情報処理装置のCPU201がHDD204に記録されているプログラムをRAM202にロードして実行することにより実現される処理である。
まず、CPU201は、一覧表の列見出しに各項目の項目名を設定する(S501)。
その後、CPU201は、ソートキーの優先順位を示す変数であるN(RAM202に記憶される)に「1」を代入する(S502)。
その後、CPU201は、ソートキーの数だけステップS503乃至ステップS511の処理を繰り返す。なお、ソートキーが設定されていない場合には、これら処理は行わず、CPU201は、ステップS512に処理を進める。
まず、ステップS503において、CPU201は、RAM202に保存(図4のS405)されているソート条件から、ソートの優先順位がN番のソートキーの項目情報と、そのソート方向を取得する。
そして、CPU201は、ステップS503で取得したソートキーのソート方向が昇順であった場合には(S504で「昇順」と判定した場合には)、昇順を示すソートアイコン、例えば「△」のイメージ(例えば、図9の901)を生成し(S505)、ステップS507に処理を進める。
一方、ソートキーのソート方向が降順であった場合には(S504で「降順」と判定した場合には)、降順を示すソートアイコン、例えば「▽」を生成し(S506)、ステップS507に処理を進める。ソートアイコンについてはソートの向きを認識できるようなものであればどのような形態であっても良い。
そして、ステップS507において、CPU201は、ソート条件として設定されているソートキーの数を取得する。
次に、CPU201は、S507で取得したソートキーの数を判定し(S508)、ソートキーが複数設定されている場合には、ステップS509に処理を進め、当該ソートキーの優先順位を視覚で識別可能にするためにソートアイコンの表示形態を変更する。この際、ソートアイコン△もしくは▽の中に優先順位を示す数が表示されるようなソートアイコン(例えば、図10の1001〜1003)を用いても、ソートアイコンの大きさで相対的に優先順位を認識できるようにしても良い。また、色により優先順位を示すようにしてもよい。例えば、青、黄、赤の順に優先順位を設けてもよい。おな、この場合、一覧表の外に、青:優先順位1、黄:優先順位2、赤:優先順位3のように表示してもよい。即ち、優先順位を識別可能な表示形態であればどのような表示形態であってもよい。
そして、ステップS509の処理を終了すると、CPU201は、ステップS510に処理を進める。
一方、ステップS508において、ソートキーが単数(1つ)設定されていると判定した場合には、CPU201は、ステップS510に処理を進める。
次に、ステップS510において、CPU201は、N番目の優先順位を持つソートキーとして設定されている項目の列見出しにソートアイコンを設定する。
そしてその後、CPU201は、次の優先順位を持つソートキーに対する処理を行うために、ソートキーの優先順位を示す変数であるNの数字に1を加え(S511)、ステップS503に処理を戻す。
そして、CPU201は、ソートキーの数だけステップS503乃至ステップS511の処理を終了すると、ステップS512に処理を進める。
ステップS512では、CPU201は、図4のS403でデータベースサーバ101より取得したデータの表示を行う(S512)。この際、CPU201は、データの表示を、ソート条件が設定されている場合には、そのソート条件に従って行うことになる。
この処理の終了後、ソートキーが単数の場合には、図9に示すような一覧表がディスプレイ装置209に表示されることになる。一方、ソートキーが複数の場合には図10に示すような一覧表がディスプレイ装置209に表示されることになる。
図6は、図4のステップS407の編集処理の一例を詳細に示すフローチャートである。この処理は、情報処理装置のCPU201がHDD204に記録されているプログラムをRAM202にロードして実行することにより実現される処理である。
本フローチャートの処理が開始されると、CPU201は常に、ユーザによる入力部からの指示に基づいて、ソート条件の変更指示を受けたか(S601)、表示されているデータの編集指示を受けたか(S602)、編集内容の保存要求を受けたか(S607)、編集終了指示を受けたか(S609)を監視している。
例えば、ソート条件の変更指示は、ディスプレイ装置209に表示されている一覧表の列見出しをポインティングデバイスで指示することで入力することが可能である。また、編集指示は、表示されているデータを選択して、キーボード等でその欄の内容を変更することで指示することが可能である。
まず、ソート条件の変更を受けたと判定した場合には(S601でYES)、CPU201は、その変更指示がソートキーの優先順位の変更指示であるか、それともソート方向の変更指示であるかを判断する(S604)。
例えば、キーボード上の特定キー(例えば「Alt」や「Ctrl」が押されている状態で列見出しがポインティングデバイスでクリック指示されたことを優先順位の変更の条件、単に列見出しがポインティングデバイスでクリック指示されたことをソート順位の変更の条件として設定することが可能である。これらの条件設定はこれに限らず、ダブルクリックとシングルクリックという条件設定を行っても、見出し列中の特定位置(例えばソートアイコンの表示領域)がクリック指示された場合には優先順位の変更、それ以外の場所がクリックされた場合にはソート方向の変更といった条件設定をしてももちろん構わない。
そして、ステップS604で優先順位の変更の条件に合致したと判断した場合には、CPU201は、ソートキー優先順位変更処理を行い(S605)、ステップS607に処理を進める。なお、ソートキー優先順位変更処理の詳細については、図7を参照して後述する。
一方、ステップS604でソート方向の変更の条件に合致したと判断した場合には、CPU201は、ソート方向変更処理を行い(S606)、ステップS607に処理を進める。なお、ソート方向変更処理の詳細については、図8を参照して後述する。
また、ステップS601でソート条件変更指示を受けていないと判断した場合には(S601でNO)、CPU201は、データ編集指示を受けたかを判断する(S602)。
そして、データ編集指示を受けたと判断した場合には(S602でYES)、CPU201は、編集指示のあったデータが、レコードのどの項目に対する編集指示であるかを識別可能にRAM202に保存するとともに、表示内容を変更する(S603)。そして、ステップS607に処理を進める。
一方、データ編集指示を受けていないと判断した場合には(S602でNO)、CPU201は、そのままステップS607に処理を進める。
そして、ステップS607では、CPU201は、編集内容の確定(編集内容をデータベースに登録する)指示を受けたかを判断し、編集内容の確定指示を受けたと判断した場合には(S607でYES)、データベースサーバ101に対してデータベースの内容を編集データで更新するよう指示を行う(S608)。そして、ステップS609に処理を進める。
一方、ステップS607において、編集内容の確定指示を受けていないと判断した場合には(S607でNO)、CPU201は、そのままステップS609に処理を進める。
そして、ステップS609では、CPU201は、編集終了指示を受けていないと判断した場合には(S609でNO)、ステップS601に処理を戻し、指示の監視を継続する。
一方、ステップS609では、CPU201は、編集終了指示を受けたと判断した場合には(S609でYES)、本フローチャートの処理を終了する。
図7は、図6のステップS605のソートキー優先順位変更処理の一例を詳細に示すフローチャートである。この処理は、情報処理装置102のCPU201がHDD204に記録されているプログラムをRAM202にロードして実行することにより実現される処理である。
まず、CPU201は、ポインティングデバイスを介してユーザから受けた指示が、ソート条件のリセット指示であるかを判断する。
なお、ソート条件のリセット処理とは、すでに設定されているソート条件を無効にして、データベース検索の際に設定したソート条件でデータの並び替えを行う(初期化)ことを言う。
ここで、特定キーが押されている状態で列見出しをクリック指示した場合に優先順位の変更指示であるとして設定している場合は、「Alt」キー+クリック指示の場合は単に優先順位の変更指示、「Alt」+「Ctrl」+クリック指示の場合はリセット要求であるなどと設定しておくことが可能である。
また、列見出しがダブルクリックされた場合に優先順位の変更指示であると条件設定をしている場合には、キーボードの特定キーが押された状態でダブルクリック指示があった場合にリセット要求の条件であるとしても良い。
また、列見出しの特定箇所のクリックが優先順位の変更指示の条件であると設定している場合には、特定キーが押されている状態で当該箇所がクリック指示された場合、またはダブルクリックされた場合がリセット要求の条件であると設定することが可能である。
これら条件は、例えば不図示のダイアログボックスを表示させ、優先順位指示のときに用いるキーやリセット指示の際に用いるキーを入力させることで設定することになる。入力は優先順位、リセット夫々の場合について、実際にマウス操作をさせることで行ってもかまわない。
そして、ステップS701において、ソート設定のリセット要求指示であると判断した場合には(S701でYES)、CPU201は、ソート設定をリセットする(S702)。つまりは、図4のステップS401で取得した検索式に設定されている状態にソート条件を戻し、そのソート条件をRAM202に保存する。その後、図5に示す一覧データ表示処理を行い(S713)、本フローチャートの処理を終了する。
一方、ステップS701において、ソート設定リセット要求ではないと判断した場合には(S701でNO)、CPU201は、優先順位の変更指示の対象として指示された項目がすでにソートキーとして設定されているかを判断する(S703)。
そして、ソートキーとして設定されていない項目が指示されたと判断した場合には(S703でNO)、CPU201は、ソート方向の変更処理を行う(S704)。このソート方向の変更処理については図8を参照して後述する。
その後、CPU201は、すでにソート優先順位の入れ替え候補として設定されているソートキーがあるかを判断する(S705)。
そして、まだソート優先順位の入れ替え候補として設定されているソートキーが無いと判断した場合には(S705でNO)、CPU201は、指示されたソートキー項目を優先順位の入れ替え候補として設定し(S706)、当該ソートキー項目を入れ替え対象項目として設定したことをユーザに認識させるべく、表示制御を行う(S707)。
例えば図13(a)に示すように、まだソート優先順位の入れ替え候補として設定されていないソートキー「コード」1301が指示された場合、ソートキー「コード」1301を優先順位の入れ替え候補として設定し、ソートキー「コード」1301を入れ替え対象項目として設定したことをユーザに認識させるべく、図13(b)に示すように、表示形態を変更する。即ち、入れ替え対象項目として設定されたソートキー「コード」1301の列見出しを、他の項目の列見出し「区分」1302,「名称」1303と表示形態を異ならせる。
そして、S707の処理が完了すると、CPU201は、本フローチャートの処理を終了する。
一方、ステップS705において、入れ替え候補がすでに設定されていると判断した場合には(S705でYES)、CPU201は、指示されたのが、すでに入れ替え候補として設定されているソートキー項目の列見出しであるかを判断する(S708)。
そして、ステップS708において、指示されたのがすでに入れ替え候補として設定されているソートキー項目の列見出しである(S708でYES)と判断した場合には、CPU201は、入れ替え候補の設定を無効化(キャンセル)し(S709)、当該項目の列見出し表示を通常のものに戻す(S710)。例えば図13(b)に示すように、既にソート優先順位の入れ替え候補として設定されているソートキー「コード」1301が指示された場合、ソートキー「コード」1301の入れ替え候補の設定をキャンセルし、図13(a)に示すような表示に戻す。
そして、S710の処理が完了すると、CPU201は、本フローチャートの処理を終了する。
一方、ステップS708において、指示されたのが入れ替え候補として設定されていないソートキー項目の列見出しである(S708でNO)と判断した場合には、CPU201は、新たに指示されたソートキー項目と入れ替え候補のソートキー項目との優先順位の入れ替えを行う(S711)。その後、CPU201は、入れ替え候補のソートキー項目の列見出しを通常のものに戻す(S712)。
例えば図13(b)に示すように、既にソートキー「コード」1301がソート優先順位の入れ替え候補として設定されている状態で、入れ替え候補として設定されていないソートキー「区分」1302が指示された場合、図13(c)に示すように、新たに指示されたソートキー「区分」1302と入れ替え候補のソートキー「コード」1301との優先順位の入れ替え、入れ替え候補のソートキー項目の列見出しを通常のものに戻す。
そして、S712の処理が完了すると、CPU201は、図5に示す一覧データ表示処理を行い(S713)、本フローチャートの処理を終了する。
以上がソートキー優先度変更処理の一例の説明である。なお、上記していないが、ソートキーとして設定されている項目が1つも無い場合には、本処理を行わない(ソートの優先順位の変更要求自体を受け付けない)ように制御しても勿論構わない。
また、ステップS705でNOの場合、その時点で、ソートキーが1つしか設定されていない場合には、CPU201は、ステップS706,S707の処理を実行せず、そのまま本フローチャートの処理を終了するように構成してもよい。即ち、ソートキーが1つしか設定されていない場合には、ソートの優先順位の変更自体を受け付けないように構成してもよい。
また、S703でNOの場合には、そのまま処理を終了するように構成してもよい。即ち、ソートキーに設定されていない項目に対してソートの優先順位の変更が要求された場合には、ソートの優先順位の変更要求自体を受け付けないように構成してもよい。
図8は、図6のステップS606に示すソート方向変更処理の一例を詳細に示すフローチャートである。この処理は、情報処理装置のCPU201がHDD204に記録されているプログラムをRAM202にロードして実行することにより実現される処理である。
まず、CPU201は、ソート方向の変更指示を受けたと判断した場合に、その時点でソート優先順位の入れ替え候補として設定されているソートキー項目があるかを判断する(S801)。
そして、入れ替え候補として設定されているソートキー項目があると判断した場合には(S801でYES)、CPU201は、入れ替え候補設定をキャンセルし(S802)、ステップS803に処理を進める。
一方、ステップS801において、入れ替え候補として設定されているソートキー項目がないと判断した場合には(S802でYES)、CPU201は、そのままステップS803に処理を進める。
次に、ステップS803では、CPU201は、ソート方向の変更指示を受けた項目の現在のソート方向情報を取得する。
次に、CPU201は、取得した結果が「昇順」であると判断した場合には(S804で「昇順」)、当該項目(すでにソートキー項目として設定されている)のソート方向を降順に変更する(S805)。
例えば、図12(a)に示すように、ソート方向を昇順のソートキー「コード」1201に対して、ソート方向の変更指示を受けたと判断した場合、図12(b)に示すように、ソートキー「コード」1201のソート方向を降順に変更する。
そして、S805の処理が完了すると、CPU201は、図5に示す一覧データ表示処理を行い(S811)、本フローチャートの処理を終了する。
また、ステップS804において、S803で取得した結果が「降順」であると判断した場合には(S804で「降順」)、CPU201は、当該項目をソートキー項目から除外する(S806)。
そして、CPU201は、ステップS806で除外したソートキー項目より優先順位が低い他のソートキー項目があれば、その優先順位を変更する(1つ優先順位を上げる)ように制御する(S807)。
そして、S807の処理が完了すると、CPU201は、図5に示す一覧データ表示処理を行い(S811)、本フローチャートの処理を終了する。
また、ステップS804において、S803で取得した結果が「ソートの方向が指定されていない」と判断した場合には(S804で「指定なし」)、CPU201は、その項目はまだソートキー項目として設定されていないので、当該項目をソートキー項目に追加し(S808)、その優先順位を最下位に設定する(S809)。そしてその項目のソート方向を昇順に設定する(S810)。
例えば、図11(a)に示すように、ソート方向が指定されていない「区分」1102に対して、ソート方向の変更指示を受けたと判断した場合、図11(b)に示すように、「区分」1202をソートキー項目に追加し、その優先順位を最下位である「2」に設定する。
そして、S807の処理が完了すると、CPU201は、図5に示す一覧データ表示処理を行い(S811)、本フローチャートの処理を終了する。
以上がソート方向変更指示を受けた場合に情報処理装置102のCPUが行うソート方向変更処理の一例である。
図9は、ソートキーが単数の場合の一覧表の表示例の一例を示す図である。
図9に示す例では、901に示すように、「コード」項目がソートキーとして設定されており、他の項目はソートキーとして設定されていない。
この例では、ソートキーに指定されている項目が「コード」項目だけであるので、ソートアイコンが、ソートの向きのみをあらわすものになっている。
図10は、ソートキーが複数設定されている場合の一覧表の表示例の一例を示す図である。
図10に示す例では、1001に示すように「コード」項目が昇順、1002に示すように「区分」項目が昇順、1003に示すように「名称」項目が降順のソート向きで、優先順位が「コード」、「区分」、「名称」の順で設定されている。
この例では、ソートキーに指定されている項目が複数存在するので、1001,1003,1003に示すように、向きを示すソートアイコンの中に優先順位を示す数字が表示されており、ソートの向き、優先度を容易に視認可能に制御している。
図11は、ソートキーの追加の際のソートアイコンの表示制御の一例を示す図である。
図11(a)においては、「コード」項目1101のみがソートキーとして設定されている。そこで、ソートキーとして設定されていない他の項目(図では「区分」項目1102)をクリック指示を受け付けたと判断した場合には、当該項目をソートキー項目として優先度最下位で追加し、ソート処理を行う。その際にソートアイコンの表示処理の変更をCPU201は行うことになる。
そして、図11(b)に示すように、「コード」項目1101が昇順、「区分」項目1102が昇順にソートされ、その優先度が「コード」、「区分」順になっている。なお、今回の処理でソート項目が単数から複数になったので、CPU201の制御により、1101,1102に示すように、ソートアイコン中に優先度を示す数字が表示される。
図12は、ソートの方向の変更の際のソートアイコンの表示制御の一例を示す図である。
図12(a)において、「コード」項目1201が昇順で、「区分」項目1202が昇順で、優先度が「コード」、「区分」の順で設定されている。
その際に、すでに昇順のソートキー項目として設定されている「コード」項目1201にクリック指示を受け付けた場合に、CPU201の制御により、クリックをされたソートキーのソート向きの変更が行われる(昇順→降順、降順→ソートなし:ただし優先度が最下位で無い場合には降順→昇順と制御することももちろん可能)。
図12に示した例では、昇順であった「コード」項目1201のソート方向の変更指示がなされたので、コードが降順に変更される。それに伴い、図12(b)に示すようにソートアイコンも昇順を示すものから降順を示すものに変更されている。この場合、ソート向きの変更のみであるので優先順に変更は加えられない。
図13は、ソートキーの優先順の変更処理の際のソートアイコン及び項目表示欄の表示制御の一例を示す図である。
図13(a)は、ソート優先順の入れ替え候補の設定の例であり、項目表示欄で特定のキーを押下すると、CPU201の制御により、その中に表示されているマウスカーソルが、優先順入れ替え候補選択用のイメージに変更される。
そして、「コード」項目1301がクリック指示されると、当該項目がソート優先順入れ替え候補として選択される。それに伴い、図13(b)に示すように、項目表示欄の表示を通常のものと異ならせる等、当該項目がソート優先順入れ替え候補であることがユーザに視認可能な形に表示制御が行われることになる。
その後、ソート優先順入れ替え候補として設定されている項目以外の項目に対して、ソート優先順位の入れ替え候補の選択が行われた場合には(図13(b)に示す「区分」項目1302がクリックされた場合には)、図13(c)に示すとおり、「コード」項目1301と「区分」項目1302とが優先順位が入れ替わり、新たなソート順に基づいてソート処理が行われることになる。
そして、表示項目の表示は通常の状態の表示に戻り、ソートアイコン中の優先度を示す数字の変更が行われる。なお、各ソートキーの向きに変更は行われない。
以上説明したように、データの一覧表を参照しながら、複数のキーによるソートを行う際に、そのソートキーの優先度の変更や確認を視覚等を通じて容易に行うことが可能となる。
なお、上述の各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
また、以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
例えば、上記実施形態では、情報処理装置102がデータベースサーバ101から取得して表形式で表示されたデータのソート処理を行う構成について説明した。しかし、ソート処理を行う対象は、情報処理装置102のHDD204に格納されているデータ(例えば、表データ)であってもよい。例えば、メールソフトの受信ボックスや送信ボックスに表示されているデータのソート処理であっても、ファイル一覧等に表示されているデータのソート処理であっても、表計算ソフト(例えば、マイクロソフト社のExcel(登録商標))の表示データのソート処理等であってもよい。
なお、上記情報処理装置102のHDD204に格納されているデータをソート処理の対象とする場合、該データに対して、前回表示した際にソートキーに設定された項目の情報や、そのソート方向、優先順位等をソート設定情報としてそのデータ内又はそのデータに紐付けてHDD204に保存しておくようにしてもよい。この場合、CPU201は、そのデータを表示する際には、前記表示した際のソート設定情報に基づいて表示制御するように制御する。
以下、図14に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
図14は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図4,図5,図6,図7,図8に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
以上示したように、本発明によれば、複数の項目によりデータの並び替えを行う際に、データの並び替えの項目の優先度や並び替え方向の視覚による認識や、項目の優先度の変更を容易に行うことができる。
本発明における情報処理システムの構成の一例を示すシステム構成図である。 データベースサーバ101、及び情報処理装置102のハードウェア構成の一例を示すブロック図である。 情報処理装置102の機能構成を示すブロック図である。 情報処理装置102で行われるデータベースサーバ101で管理しているマスタデータの編集処理を示すフローチャートである。 図4のステップS406の一覧データ表示処理の一例を詳細に示すフローチャートである。 図4のステップS407の編集処理の一例を詳細に示すフローチャートである。 図6のステップS605のソートキー優先順位変更処理の一例を詳細に示すフローチャートである。 図6のステップS606に示すソート方向変更処理の一例を詳細に示すフローチャートである。 ソートキーが単数の場合の一覧表の表示例の一例を示す図である。 ソートキーが複数設定されている場合の一覧表の表示例の一例を示す図である。 ソートキーの追加の際のソートアイコンの表示制御の一例を示す図である。 ソートの方向の変更の際のソートアイコンの表示制御の一例を示す図である。 ソートキーの優先順の変更処理の際のソートアイコン及び項目表示欄の表示制御の一例を示す図である。 本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
符号の説明
101 データベースサーバ
102−1,102−2 情報処理装置
103 ネットワーク
301 制御部
302 表示制御部
303 データアクセス部
304 データ管理部
305 入力制御部

Claims (12)

  1. 表形式で表示されているデータのソート処理を行う情報処理装置であって、
    表示対象のデータの各表示項目のソート方向の変更要求を受け付ける第一の受付手段と、
    前記各表示項目のソートの優先順位の変更要求を受け付ける第二の受付手段と、
    前記第一の受付手段で受け付けた前記ソート方向の変更要求に従って、前記各表示項目のソート方向情報を制御する第一の制御手段と、
    前記第二の受付手段で受け付けた前記ソートの優先順位の変更要求に従って、前記各表示項目のソートの優先順位情報を制御する第二の制御手段と、
    前記各表示項目のソート方向情報及び前記各表示項目のソートの優先順位情報に基づき、前記データの表示順位を制御し、前記各表示項目のソート方向及び前記各表示項目のソートの優先順位を識別可能に表示する表示制御手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記第一の受付手段でソート方向の変更要求を受けた表示項目が、ソートの対象項目ではない場合に、前記第一の制御手段は、当該表示項目をソート対象項目に追加し、所定のソート方向を設定する、ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第一の制御手段により、表示項目がソート対象項目に追加された場合、
    前記第二の制御手段は、前記ソート対象項目に追加された表示項目のソートの優先順位情報を、最下位に設定する、ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記第一の受付手段でソート方向の変更要求を受けた表示項目が、所定のソート方向が設定されている表示項目である場合に、
    前記第一の制御手段は、当該表示項目をソート項目から除外し、
    前記表示制御手段は、前記第一の制御手段の処理の結果に従って前記データの表示順位を制御する、
    ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記第二の受付手段で優先順位の変更を受け付けた場合に、
    前記第二の制御手段は、既に第二の受付手段で優先順位変更要求を受けた表示項目である優先順位変更対象表示項目が設定されているかを判定し、
    前記判定の結果、前記優先順位変更対象表示項目が設定されていると判定した場合に、前記第二の受付手段で優先順位の変更を受けた表示項目と、前記優先順位変更対象表示項目とのソート優先順位を入れ替え、
    前記表示制御手段は、前記第一の制御手段の処理の結果に従って前記データの表示順位を制御し、
    一方、前記判定の結果、前記優先順位変更対象表示項目が設定されていないと判定した場合に、前記第二の受付手段で優先順位の変更を受けた表示項目を前記優先順位変更対象項目として設定する、
    ことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記表示制御手段は、前記優先順位変更対象表示項目として設定されている表示項目の表示を他の表示項目と表示と異ならせる、ことを特徴とする請求項5に記載の情報処理装置。
  7. 前記第一の受付手段は、ユーザによる前記表示項目の項目名が表示されているセルに対してのポインティングデバイス指示により前記ソート方向の変更要求を受け付けることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 前記第二の受付手段は、キーボードの所定のボタンが押されている状態でのユーザによる前記表示項目の項目名が表示されているセルに対してのポインティングデバイス指示により前記ソートの優先順位の変更要求を受け付けることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 前記第二の受付手段は、ソート項目として設定されていない表示項目に対するソートの優先順位の変更要求は受けないことを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
  10. 前記第二の受付手段は、ソート項目が設定された表示項目が存在しない、又は1つしか存在しない場合には、ソートの優先順位の変更要求を受け付けないことを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
  11. 表形式で表示されているデータのソート処理を行う情報処理装置の情報処理方法であって、
    第一の受付手段が、表示対象のデータの各表示項目のソート方向の変更要求を受け付ける第一の受付ステップと、
    第二の受付手段が、前記各表示項目のソートの優先順位の変更要求を受け付ける第二の受付ステップと、
    第一の制御手段が、前記第一の受付手段で受け付けた前記ソート方向の変更要求に従って、前記各表示項目のソート方向情報を制御する第一の制御ステップと、
    第二の制御手段が、前記第二の受付手段で受け付けた前記ソートの優先順位の変更要求に従って、前記各表示項目のソートの優先順位情報を制御する第二の制御ステップと、
    表示制御手段が、前記各表示項目のソート方向情報及び前記各表示項目のソートの優先順位情報に基づき、前記データの表示順位を制御し、前記各表示項目のソート方向及び前記各表示項目のソートの優先順位を識別可能に表示する表示制御ステップと、
    を備えることを特徴とする情報処理方法。
  12. 表形式で表示されているデータのソート処理を行う情報処理装置を、
    表示対象のデータの各表示項目のソート方向の変更要求を受け付ける第一の受付手段と、
    前記各表示項目のソートの優先順位の変更要求を受け付ける第二の受付手段と、
    前記第一の受付手段で受け付けた前記ソート方向の変更要求に従って、前記各表示項目のソート方向情報を制御する第一の制御手段と、
    前記第二の受付手段で受け付けた前記ソートの優先順位の変更要求に従って、前記各表示項目のソートの優先順位情報を制御する第二の制御手段と、
    前記各表示項目のソート方向情報及び前記各表示項目のソートの優先順位情報に基づき、前記データの表示順位を制御し、前記各表示項目のソート方向及び前記各表示項目のソートの優先順位を識別可能に表示する表示制御手段として機能させるためのプログラム。
JP2007340926A 2007-12-28 2007-12-28 情報処理装置、情報処理方法及びプログラム Expired - Fee Related JP4411343B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007340926A JP4411343B2 (ja) 2007-12-28 2007-12-28 情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007340926A JP4411343B2 (ja) 2007-12-28 2007-12-28 情報処理装置、情報処理方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2009163405A true JP2009163405A (ja) 2009-07-23
JP2009163405A5 JP2009163405A5 (ja) 2009-11-05
JP4411343B2 JP4411343B2 (ja) 2010-02-10

Family

ID=40965968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007340926A Expired - Fee Related JP4411343B2 (ja) 2007-12-28 2007-12-28 情報処理装置、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4411343B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013146075A1 (ja) * 2012-03-30 2013-10-03 楽天株式会社 情報提供装置、情報提供方法、プログラム、情報記憶媒体及び情報提供システム
JP6412986B1 (ja) * 2017-07-21 2018-10-24 テイク エイト インコーポレイテッド Snsシステム、表示方法及びプログラム。

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013146075A1 (ja) * 2012-03-30 2013-10-03 楽天株式会社 情報提供装置、情報提供方法、プログラム、情報記憶媒体及び情報提供システム
JP2013210964A (ja) * 2012-03-30 2013-10-10 Rakuten Inc 情報提供装置、情報提供方法、プログラム、情報記憶媒体及び情報提供システム
US9418380B2 (en) 2012-03-30 2016-08-16 Rakuten, Inc. Information providing device, information providing method, program, information storage medium, and information providing system
JP6412986B1 (ja) * 2017-07-21 2018-10-24 テイク エイト インコーポレイテッド Snsシステム、表示方法及びプログラム。
JP2019021240A (ja) * 2017-07-21 2019-02-07 テイク エイト インコーポレイテッド Snsシステム、表示方法及びプログラム。

Also Published As

Publication number Publication date
JP4411343B2 (ja) 2010-02-10

Similar Documents

Publication Publication Date Title
US7831929B2 (en) Method, system, and program product for controlling a display on a data editing screen
US20050060653A1 (en) Object operation apparatus, object operation method and object operation program
JP2008226061A (ja) 画像のタグ指定装置および画像検索装置ならびにそれらの動作制御方法およびそれらのコンピュータを制御するプログラム
US10467209B2 (en) Document management client apparatus and document management method
JPH1139292A (ja) 文書管理方法、文書検索方法、及び文書検索装置
JP5448412B2 (ja) 情報処理装置およびその方法、プログラム、記録媒体
JP5164673B2 (ja) サーバ装置、カタログ処理方法及びプログラム
JP2019109924A (ja) 情報処理システム、情報処理方法、プログラム
JP6439178B2 (ja) 情報処理装置、その制御方法及びプログラム
JP4411343B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2013101532A (ja) プロジェクト管理装置、プロジェクト管理方法、プログラム及び記憶媒体
JP2008276524A (ja) 情報処理装置及び情報処理方法
JP2018036855A (ja) 情報処理システム、情報処理システムの制御方法、及びプログラム
JP2009163455A (ja) 帳票システム、帳票サーバ、情報処理装置、帳票サーバの制御方法、情報処理装置の制御方法、及びプログラム
JP5725078B2 (ja) 文書管理装置、およびその制御方法とプログラム
JP5165549B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP5402916B2 (ja) ファイル管理装置、およびその制御方法とプログラム。
JP5617535B2 (ja) 情報処理装置、情報処理装置の処理方法及びプログラム。
US11449463B2 (en) Analysis database registration device, analysis data collection system, analysis system and analysis database registration method
JP2008262554A (ja) 情報処理装置、情報処理方法、情報処理プログラム及び記録媒体
JP2007080205A (ja) 検索装置及び検索方法
EP4155980A1 (en) Information processing system
JP2017091187A (ja) 情報処理システム、制御方法、プログラム
JP2007158520A (ja) 画像表示装置、自動画像表示方法、プログラム、及び記憶媒体
WO2020210977A1 (zh) 局部选取轨迹和轨迹拆合的方法、电子设备、存储介质

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090915

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090915

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20091001

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20091020

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091027

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091116

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141120

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees