カレンダーのフィルタリングは、どのようにしますか?
フィルタは、絞り込み検索と同じように動作します。カレンダー中のイベントのサブセットを表示するということです。サブセットは、「自分のイベント」かもしれませんし、特定の部署のイベントや、ある顧客のイベントかもしれません。カレンダーに付属のフィルタを使ったり、付属のフィルタを再利用したり、後述の手順に従って独自のフィルタを作成したりすることができます。
フィルタはウインドウ左方のサイドバーにある「フィルタ」タブで利用できます。主なフィルタは「ステータス」ですが、簡単に別の名称にしたり内容を変更したりすることができます(詳しくは「イベントの色」を参照してください)。
上述のステータスの色に加えて、DayBackにははじめから、「title」「project」「resources」の3つの「高度な」フィルタが用意されています。フィルタの動作を見るには、カレンダーのサイドバーで、「フィルタ」タブの下のほうにある「Advanced Filters」(高度なフィルタ)をクリックします。
1つまたは複数のリソースを選択してから「Apply and Close」(適用して閉じる)をクリックすると、カレンダーの表示が変わり、選択したリソースの項目だけになります。
次は、フィルタの横にある「omit」(除外)ボタンをクリックしてみます。すると選択したステータス以外のイベントがすべて表示されます。
「title」フィルタも同様です。「Call」と入力すると、「Summary」が「Call」で始まるイベントがすべて表示されます。これらのフィルタは、FileMakerでおなじみの「対象レコードの絞り込み」とほとんど同じように動作します。
フィルタを変更する
このページでは、自分の使い方に合うようにフィルタを変更していく方法を解説していきます。「高度なフィルタ」は、Webビューア内ではなく、FileMakerのレイアウト上の新規ウインドウ内に表示されることに注意してください。したがって、他のFileMakerのレイアウトと同じように、このフィルタのレイアウトを扱えます。独自のフィルタを追加したり、チェックボックスの書式を変えたりするなどといったことができます。
レイアウトは「Calendar Developer」のレイアウトフォルダの中にあります。このレイアウトの名前は「Filters」です。
(ステータスのフィルタは、「status」に割り当てられているフィールドを設定してから、フィルタ自体の名前や色を変えることで変更します。この方法は「イベントの色」で解説しています。)
別のフィールドや別のソースでフィルタをかける
任意のイベントテーブルのどのフィルタでも既存のフィルタを指定できます。フィルタは、統合・構築の際に編集した「Load Calendar Settings - On Startup...」スクリプトでフィールドに割り当てられています。
複数のソースを使っている場合は、同じフィルタをソースのテーブルごとに別のフィールドに割り当てられます。たとえば、あらかじめ用意されているタイトルのフィルタをあなたのイベントのテーブルの「Summary」フィールドに割り当て(つまり、タイトルのフィルタに入力されたテキストを含むイベントのサマリが検索されます)、手術のテーブルの「治療」フィールドにも割り当てることができます。
このようにするには(フィルタを複数のフィールドに割り当てるには)、割り当てたたフィールドを改行で区切ります。統合のサンプルで、フィルタ1と2がこのようになっています(フィルタを割り当てることができるのは、1つのテーブルごとに1つのフィールドだけであることに注意してください)。
さらに詳しく
「イベントのタイトル」のような包括的なフィルタは、各ソースのイベントのテーブルで、別々のフィールドに割り当てる必要があるかもしれません。そのため、フィールド名(理想的にはGetFieldName( ))のリターン区切りのテキストを各フィルタに割り当てられるようにしています。フィルタリングは、対象のソースと同一のテーブルオカレンスから先頭に割り当てられているフィールドに対して実行されます。
これは、ソースのテーブルオカレンスに対してローカルでフィールドをフィルタリングできるだけであるということです。しかしおそらく、これは便利なことです。
割り当てられたフィールドでソースのテーブルオカレンスに一致するものがない場合、フィルタをそのソースを除外します。「会社の会議」のソースには、「委任」のフィルタがあるとします。これは、他の場面では意味がありません。会議を「誕生日」のソースと一緒に表示していて「委任」をすべて表示するようにフィルタをかける場合、「誕生日」はすべて非表示になります。委任は存在しないからです。
このページの以下の項目は未翻訳です
Filtering on Different Fields & Different Sources
You can point the existing filters at any fields in your events table that you'd like. Mapping filters to fields is done in the "Load Calendar Settings - On Startup..." script you edited as part of your integration.
If you're using multiple sources you can map the same filter to a different field in each of your source tables. For example, our "title" filter may be mapped to the Summary field in your events table (that is, it searches for an event summary containing the text entered in the title filter) and mapped to the Procedure field in your surgeries table.
To do this (to map a filter to more than one field) separate the mapped fields with carriage returns like we've done in our sample integration for filters 1 and 2. (Note that you can only map a filter to one field from each table.) Be sure that each filter has an entry for every source. So if you have four calendar souces, each filter will need four fields mapped to it: if a filter doesn't make sense for a particular source, just map it to a new blank field.
More Details
新たにフィルタを追加できますか?
もちろん、できます。「スタッフ」というフィルタを追加して、1人または複数のスタッフのイベントだけを表示したいと仮定します(自分だけのイベントや、自分のチームのメンバーのイベントなど)。この場合、以下のように設定します。
- 1イベントのテーブルに、スタッフ名のフィールドを作成します。
- 2イベントのテーブルにスタッフの名前を入力するフィールドがまだないなら、作成します。この例ではフィルタとしてスタッフの名前を使用しますが、スタッフのID番号などを使用することもできます。
- 3スタッフの名前の値一覧を作成します。それから、「CalendarInterface」テーブルに、「FilterGlob_5」という名前のグローバルのテキストフィールドを作成します。
- 4レイアウトモードに切り替え、「Calendar Developer」フォルダの中の「Filters」レイアウトを表示します。
- 5「Filters」レイアウト上の既存のフィルタのフィールドのうちの1つを複製(コピー&ペースト)します(リソースのフィルタは使用しないでください。これは特殊なフィルタです)。そしてこのフィールドを「FilterGlob_5」フィールドに変更します。上述の2.で作成した値一覧をこのフィールドで使用できるように書式を設定します。複数の項目を選択できるようにしたい場合は、チェックボックスセットの書式にします。
- 6「カレンダー」レイアウトの「フィルタ」タブの編集を続けます。「clear」ボタンと「omit」スイッチを複製します。新たに作ったフィルタの横に配置し、この2つのスクリプトのパラメータをフィールドの「番号」にします(この例では「5」に変更します)。この2つの条件付き書式を編集して、新しいフィルタの番号を使用するようにします(この例では「5」に変更します)。このようなおしゃれなスイッチの編集方法は、こちらで解説しています。
- 7最後に、「Load Calendar Settings - On Startup...」スクリプトの編集ウインドウを開き、「Maps filters to fields」(フィルタをフィールドに割り当てる)のコメントを見つけます。新しいフィルタを使用するために、新たに「変数を設定」の行を作成します(この例では「$$sc_FilterField5」です)。「GetFieldName」には新たに作ったフィールドを使用します(この例では「GetFieldName (SampleEvents::StaffName)」です)。
- 8「Clear All Filters」スクリプトの編集ウインドウを開き、 「フィールド設定」と 「変数を設定」ステップを新たに作ったフィールドの分、追加しま
- 9ブラウズモードに切り替え、「Upon Opening」スクリプトを実行します。これで完了です
リソースのフィルタを変更する
リソースの数が多いと、デフォルトで使用されているシンプルなチェックボックスでは使いづらいかもしれません。多くのリソースに対応できるように変更する方法やリソースのカテゴリに関するヒントは、「リソースのスケジューリング」を参照してください。
カレンダーにあらかじめフィルタをかけて、フィルタがかかった状態で開くことはできますか?
できます。イベントが大量にあって、そのうちの多くがすでに「完了」であったり関係のないものであったりする場合には、カレンダーの処理速度を上げるのにたいへん良い方法です。
「Load Calendar Settings - On Startup --- Edit Configuration Here ---」スクリプトの最後の方に、「Pre-Filter the calendar if necessary……」(必要な場合は、カレンダーを事前に検索しておきます。……)と続くコメントがあります。その後の行で、カレンダーに付属のデフォルトのフィルタを4つ設定しています。この設定の行は、無効に設定されています。FileMaker Pro Advancedをお使いであれば、このうちの任意の行を有効にします。FileMaker Pro Advancedをお使いでなければ、必要な行を作成し直します。
フィルタをハードコードして、ユーザから変更できないように隠して追加する
フィルタをハードコードして、ユーザから変更できないように隠して追加することもできます。詳しくは「自分のイベントだけを表示する - 見えないいフィルタをハードコードする」のセクションを参照してください。
Changing the Resource Filters
If you have large numbers of resources, the simple checkboxes used by default may not work for you. You'll find tips for modifying this to accommodate more resources, and resource categories, here: resources.
Keeping the Advanced Filters window open.
The button on the Advanced Filters window says "Apply and Close". If you'd like to apply the filter and keep the Advanced Filters window open, you need to make a couple changes.
That's it! =)
Filters: https://www.seedcode.com/pmwiki/index.php?n=DayBackForFileMaker.Filters
Changing the Resource Filters
Keeping the Advanced Filters window open.
コメント
0件のコメント
サインインしてコメントを残してください。