ヒント: デフォルトのアルファベット順よりも、ランク順でのソートを優先させる

名前や項目をソートするときに、デフォルトのアルファベット順ではなく、ランク、使用度、優先順位などでソートする方法を紹介します。このヒントでは、非表示列と Notes 式言語を使用します。このヒントで説明したアプリケーションは、ダウンロードして利用することができます

Donald Russell, Advisory QA Engineer, IBM Corporation

Donald Russell is an Advisory QA Engineer for Lotus Education and has been working in IBM's Lotus Software division since 1996. Prior to his current position, Donald was an advisory IS application developer and a senior Premium Notes Support Analyst. He holds a Bachelor of Science in Electrical Engineering and is a Certified Novell Administrator. Donald has written over 500 technical documents and white papers for the IBM DCF and Lotus Knowledge Base and has published technical articles for The View magazine. Outside of work, Donald was a Cub Scout Den leader and now an Assistant Scout Master for the Boy Scouts.



2004年 12月 06日

はじめに

名前や項目をソートするとき、常にデフォルトのアルファベット順が適しているとは限りません。どのような会社でも、使用度や優先順位で項目をソートしたり、ランク順にユーザー名をソートすることが必要なケースもあります。このような目的に使用できるソフトウェア・プログラムとして、ClarisWorks、Microsoft Works for DOS/Windows、Microsoft Access、Microsoft Word の表、DB2、Oracle、および Sybase などがあります。これらの中でも Lotus Notes は特に優れています。その理由は、以降の説明で明らかになるでしょう。

ソートに関する一般的なソリューションとしては、Microsoft Word で表を作成し、名前や項目の前にソート用の数字を追加する方法があります。そして、各列を手動でソートします。しかし、ソートするたびに前のソート結果が上書きされるので、ソート結果をコピー・ペーストしておくか、毎回ソートし直す必要があります。Lotus Notes を使用すると、優先順位の番号を表示することにより、これらを失わずに、より効果的なソリューションが得られます。それぞれのソート結果を異なるビューとしてナビゲータペインに表示し、必要なときに各ビューにアクセスできます。各ビューに対しては、書き出し、結合、および印刷が可能です。[ファイル] - [書き出し] を選択し、保存するファイルの種類として [Tabular Text] を選択します。これにより、ソート結果をテキスト・ファイルとしてハード・ドライブ上に保存できます。

このソリューションがどのように機能するか、例を用いて説明します。アシスタント・スカウト・マスターおよびコンピュータ・メリット・バッジ評議員として、筆者は Lotus Notes を使用して、アルファベット順ではなく、ランク順にソートした名簿を作成しました。その手法としては、特殊なデフォルトのフォーム式を使用し、[By Rank] ビューの最初の非表示列にランキング番号を割り当てました。

Sandbox から Scout Roster のサンプル をダウンロードできます。このアプリケーションは、Lotus Notes 5 以降で利用できます。

メモ: この IBM/Lotus Scout Roster アプリケーションは、スカウティングの コンピュータ・メリット・バッジ 4a の要件に適合しています。

サンプル・アプリケーション (バージョン 5 または 6 のデータベースを選択可能) を Notes データ・ディレクトリーにダウンロードします。[データベースについて] 文書を参考にして、スカウトのデータを入力します。あるいは、次の手順に従って、新たにアプリケーションを作成します。

  1. 空のテンプレートから、新規データベースを作成します。
  2. シンプルなフォームを作成します。
  3. 文書を作成し、スカウトのデータを入力します。
    • Scout By Last Name (姓のアルファベット順)
    • Scout By Patrol (パトロール順)
    • Scout By Rank (ランク順)
  4. 文書を作成し、スカウトのデータを入力します。

新規データベースの作成とフォームの設計

Notes アプリケーション開発を初めて経験される方は、アプリケーション作成の詳細については、[データベースについて] 文書を参照してください。経験のある開発者の方は、次の手順に従ってください。

Domino Designer で新しいデータベースを作成し、フォームを 1 つ作成します。このフォームに、次のテキスト・フィールドを追加します。

  • ScoutNameF
  • ScoutNameL
  • SPatrol
  • HomePH

ランク用の次のフィールドを追加します。

  • SRank は、ダイアログリストです。
  • SRankOrder は、非表示で数値型の計算結果フィールドです。

ソートの順番はアルファベット順です。このソート順を変更する 1 つの方法として、ランキング番号が入った非表示の列を先頭に追加します。各ランクには数字が割り当てられ、これによって表示される順番が正しく決められます。

SRank (Scout Rank) という名前のフィールドはダイアログリストで、選択用のドロップダウンリストを文書内に表示します。このリストには、選択肢となるすべてのスカウト・ランクが含まれています。アプリケーション内で式を正しく機能させるには、これらの名前が正しく記述されている必要があります。2 番目のフィールド SRankOrder は、非表示で数値型の計算結果フィールドです。このフィールドには、SRank フィールドで選択された値に基づいてソート番号が自動的に生成されます。

値を生成するために、次の@式を SRankOrder フィールドに入力します。

@If(SRank = "Eagle";1;SRank = "Life";2;SRank = "Star";3;SRank = "1st Class";4;SRank = "2nd Class";5;SRank = "Tenderfoot";6;SRank = "Boy Scout";7;8) @Command([EditDocument]) を使用して、フォームに [Edit] ボタンを追加できます。@Command([FileSave]);@Command([FileCloseWindow]) を使用して、[Save and Close] ボタンをフォームに追加します。

図 1. フォーム
フォーム

メモ: アプリケーションのセットアップを説明する Scout RosterのFlashデモ を Sandbox からダウンロードできます。


設計を表示する

アプリケーションでは、Scout By Last Name (アルファベット順)、Scout By Patrol、および、Scout By Rank という 3 つのビューを使用しました。フォーム上の各フィールドの値を表示するよう、この 3 つのビューを設計します。[Scout By Rank] ビューでは、SRankOrder フィールド用に、非表示の最初の列を作成します。列名は RankOrder です。

図 2. 非表示列
非表示列

ユーザーが見る列には、[ソート基準列のヘッダーをクリック] プロパティをオンにしてソートを有効にし、[降順] を選択します。

各ビューに、@Command([Compose]; ""; "<form name>") という式を使用して文書を作成する共有アクションボタンを追加します。共有アクションの作成および挿入方法の詳細については、『Domino Designer ヘルプ』を参照してください。


スカウト・データの入力

最後になりましたが重要なこととして、このシンプルなフォームを使用してアプリケーション内で文書を作成します。文書に入力した後は、各ビューを開き、それぞれのソート結果を表示します。実際のソートは非表示の最初の列に基づいて行われるので、ランクは正しい順序で並んでいます。

図 3. [Sort By Rank] ビューではランク順に表示されますが、ランキング番号は隠されています
[Sort By Rank] ビューではランク順に表示されますが、ランキング番号は隠されています
図 4. [Sort By Patrol] ビューでは、カテゴリ別に昇順で表示されます
[Sort By Patrol] ビューでは、カテゴリ別に昇順で表示されます
図 5. [Sort By LastName] ビューでは、アルファベットの昇順で表示されます
[Sort By LastName] ビューでは、アルファベットの昇順で表示されます

まとめ

Lotus Notes は、ローカル・データベースに蓄えられた情報を簡単な方法でソートして表示するだけでなく、Domino Server にデータベースを置くことにより、社内のユーザーにアクセス権を割り当て、アクセス権に応じたデータの表示を可能にします。[編集者] のアクセス権を持つユーザーは、データを変更することができます。また、[管理者] のアクセス権限を持つユーザーは、どのユーザーにデータへのアクセス権を割り当てるのかを管理できます。

メモ: サンプル・アプリケーションには、Boy Scout Animated Graphics and Fonts Webサイト からダウンロードできるボーイスカウトのグラフィックが含まれています。Scout Roster は、1 つのアウトラインと複数のページを含むフレームセットを使用して、より多くのグラフィックを表示しています。フレームセット、アウトライン、および Domino のその他の設計要素の詳細については、『Domino Designer ヘルプ』を参照してください。

参考文献

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Lotus
ArticleID=337724
ArticleTitle=ヒント: デフォルトのアルファベット順よりも、ランク順でのソートを優先させる
publish-date=12062004