簡単な構築(紐付け)

自分で作ったファイルとカレンダーを繋げる

この「簡単な統合」は誰のためのものか

この簡易版は、カレンダーを別のファイル、つまりソリューション中の2つめの.fmp12ファイルにしておきたい方のためのものです。すぐに使う必要がある場合や、カレンダーのレイアウトのルック&フィールを大きく変える予定がない場合には、便利な方法です。

カレンダーをもっと完全にソリューションに統合したい場合は、こちらの手順に従ってカレンダーのレイアウトとスクリプトを自分のファイルにペーストしてください。

取りかかる前に、統合が完了するまでの全体の流れを紹介した短い動画(英語)をご覧になれます。わずか10分間の動画です。Quick Integration Video.

ステップ・バイ・ステップの手順:簡単な統合

1. 準備をする

バックアップは忘れないでください。

「SeedCodeCalendar.fmp12」を、一緒に使うファイルと同じフォルダに移動します。カレンダーのファイルの名前を変更したい場合は、ここで変更します。

ここで解説する手順は、カレンダーに表示したいレコードを保存するテーブルがすでにあると仮定しています。テーブルがまだなければ、シードコードカレンダーの「SampleEvents」テーブルを自分のファイルにペーストし、以下の手順2は省略してください。

カレンダーに表示したいテーブルが複数あるかもしれません(または1つのテーブルに複数の日付フィールドがあるかもしれません)。現時点では、それは心配ありません。ひとつのテーブル/フィールドを設定して動作するようになってから、イベントの追加のソースを構成できます。

2. フィールドの定義

2.1

「SeedCodeCalendar.fmp12」を開きます。「ファイル」メニューの「管理」から「データベース」を選択し、「データベースの管理」ダイアログの「フィールド」タブを選択します。そして「SampleEvents」テーブルを選択します。2つのフィールドをここからコピーし、自分のファイルに追加します。FileMaker Pro Advancedを使っていれば簡単です。次の2つのフィールドをコピーし……

  • zscTimestampStartCalcNum 
  • zscTimestampEndCalcNum

……自分のファイルにペーストします。ペーストしたら、それぞれの定義を編集します。タグ(「/*」と「*/」)ではさまれた「コメント」を削除します。また、計算式のLet文で、使用される「DateStart」や「TimeStart」などのフィールドにあたる既存のフィールドを選択します。

既存のソリューションには、終了日のフィールドがないかもしれません。次のステップで取り上げる、時刻のフィールドもないかもしれません(開始時刻と終了時刻)。最も簡単なのは、これらのフィールドを既存のイベントのテーブルに追加することです。こうすることで、統合が簡単になり、複数の日にわたるイベントも使えるようになります(イベントに時間を使用しない場合や1日を越えるイベントは扱わないようにしたい場合には、新たに作成したフィールドに対して自動入力の計算式が使えば必ず空欄にできることに注意してください)。

新規フィールドを作る場合は、日付のフィールドのタイプは「日付」に、時刻のフィールドのタイプは「時刻」にしてください。

FileMaker Pro Advancedを使っていない場合は、これらのフィールドの定義をコピーし、自分のファイルでフィールドを注意深く作成します。どちらのフィールドも、計算結果を「数字」にします。

2.2

次に、自分のイベントのテーブルの「TimeStart」フィールドに、オプションの「入力値の自動化」で以下の計算値を追加してください(以下の記述をそのまま、または「SampleEvents」の定義からコピーできます)。 

Case ( 
Self = Time ( 24 ; 0 ; 0 ) ; Time ( 24 ; 0 ; 1 ) ; 
Self = Time ( 0 ; 0 ; 0 ) ; Time ( 0 ; 0 ; 1 ) ; 
Self > Time ( 24 ; 0 ; 0 ) ; Self - Time ( 24 ; 0 ; 0 ) + 1 ; 
Self )

「フィールドに既存の値が存在する場合は置き換えない」のチェックボックスにはチェックを付けないでください。イベントを深夜0時に開始できるようにするには、この自動入力のオプションが必要です。

2.3

自分のイベントのテーブルの「TimeEnd」フィールドに、同じ入力値の自動化の「計算値」のオプションを追加します。繰り返しになりますが、 「フィールドに既存の値が存在する場合は置き換えない」のチェックボックスにはチェックを付けないでください。イベントを深夜0時に開始できるようにするには、この自動入力のオプションが必要です。

2.4

カレンダーのガントチャート、イベントの繰り返し、メールの通知を使うのであれば、シードコードカレンダーの「SampleEvents」から、さらにいくつかのフィールドを自分のファイルに追加します。

  • z_LinkedWithinProject
  • z_MilestoneSort 
  • z_Notified 
  • z_Repeating_id

3. リレーションシップグラフ

「SeedCodeCalendar.fmp12 」に戻ります。もう一度、「ファイル」メニューの「管理」から「データベース」を選択し、「データベースの管理」ダイアログの「リレーションシップ」タブを選択します。

グラフ中の「SampleEvents」テーブルオカレンスをダブルクリックします。「データソース」の横のポップアップメニューをクリックし、リストから「FileMakerデータソースの追加」を選択します。次に開くダイアログで、自分のファイルを選択します。

これで、自分のファイルのテーブルがすべて見えます。カレンダーに表示したいレコードのあるテーブルを選択します。「テーブルを指定」ダイアログの一番下にある「名前」を「SampleEvents」に戻します(この名前は後で変更できます)。そして「OK」をクリックします。これで、カレンダーのイベントのテーブルを自分のファイルのイベントのテーブルに「ポイント」しました。最終的には「SeedCodeCalendar.fmp12」の「SampleEvents」テーブルは削除できますが、まだ削除しないでください。次のステップで必要になります。

イベントが連絡先にリンクされている場合、カレンダーにある「SampleContacts」テーブルオカレンスでも同じようにできることに注意してください。テーブルオカレンスをダブルクリックし、ファイルを選択して(データソースのリストが表示されます)、自分のファイル中の連絡先のテーブルを選択します。「SampleEvents」と「SampleContacts」の間に、自分のファイルでこの種のリレーションシップに使われるのと同じ一致フィールドで、リレーションシップを作成します。

ガントチャートを使う場合は、「SampleProjects」テーブルオカレンスと「SamplePhases」テーブルオカレンス(もしPhaseを使う場合は。使わなければ不要です。)でも同じようにしたいと考えるでしょうこれらを、自分のファイルの関連するテーブルにポイントします。各テーブルのユニークIDで「SampleEvents」と関連づけます。

連絡先やプロジェクトのテーブルがなく、あったほうがよいと考えるなら、この統合をいったん中止してSeedCode Complete ( ※英語版のみ。日本未発売 ) を見てみるといいかもしれません。豊富な連絡先やプロジェクト管理システムとすでにリンクしているカレンダーが用意されています。

動画にあるようにサンプルの連絡先、プロジェクト、フェーズのテーブルオカレンスを削除した場合は、「Load Source Settings at Startup --- ここでソースの記述を行う ---;」スクリプトを見てください。このスクリプトには、これらのテーブルの名前で宣言されている変数が2つあります。これらのテーブル名を「""」(データなし)で置き換えます。これをしておかないと、カレンダーの「Upon Opening」スクリプトが実行されたときに、これらの場所を尋ねるダイアログが開きます。

4. レイアウト Part 1:フィールドの割り当て

「SeedCodeCalendar.fmp12」の「Source No 1」レイアウトに切り替え、レイアウト上の指示に従ってフィールドをあなたのイベントのテーブルの関連するフィールドに割り当てます。「Summary」は、ここではあなたのイベントのタイトルなどのシンプルなフィールドに割り当てます。実際に使ってからこのステップに戻り、「Summary」を複数行のイベントの表示の作成に割り当てるなど、さらに面白い使い方をしてみてください。

フィールドの割り当てに関するTips:

  • 1つしか日付がないイベントは開始日とします。もしイベントが終了日しか持たないとしたら、カレンダーはうまく表示できません。時間についても同じです。もし時間が1つしかない場合は、それを開始時間としてください。
  • 日付、時間、リソースに計算フィールドを使わないでください。アイテムをドラッグしたときにカレンダーは値を編集しようとしますができなくなってしまいます。どうしてもという場合は替わりに計算値自動入力を使用してください。

5. レイアウト Part 2: Event Details

「SeedCodeCalendar.fmp12」の「Event Details」レイアウトを開きます。このレイアウトを編集して、ここにあるフィールドが自分のフィールドをポイントするようにします。「繰り返し」ボタン、その下の「繰り返しの一覧を表示」ボタン、一番下の「閉じる&カレンダー再表示」の大きなボタンの3つのオブジェクトは、このままにしておいてください。後でこのレイアウトに戻って編集できますが、この時点では「サマリ」、「日付」、「時刻」のフィールドを、自分のイベントのテーブルの関連するフィールドに一致させるだけです。

後でここに戻り、自分のファイルの関連レコードにジャンプするボタンや、関連する連絡先にジャンプするイベントを追加できます。

6. リスト表示やミニウインドウでのイベントに色を付ける

この項目はオプションです。もしリスト表示やミニウインドウでのイベント詳細のレイアウトでイベントの色付けをしたい場合は、こちらのページをお読みください。

7. これで完了です。

カレンダーを再描画すると、自分のイベントが表示されます。簡単です。

ご活用ください!

もっと使いこなす

最終的には、ステップ5から「Event Detail」レイアウトに戻って修正したり、ファイルによってはイベントの色分けを考えたりしたくなるでしょう。「Load Calendar Settings - On Startup --- ここで設定の編集を行う ---」スクリプトを読み、必要に応じて変更してカレンダーのデフォルトの設定をいろいろ変えたいとも考えるでしょう。

「Resource」に割り当てたフィールドを見て、カレンダーの「Resources」の値一覧をそのフィールドの内容に一致するように編集します。ビデオでは「場所」をリソースとして使用し、カレンダーの「Resources」の値一覧を変更して「Meetings」ファイルにある既存の値一覧をポイントしています。同じようにしたいケースもあるかもしれません。「リソース」について詳しく解説しています。

同様に、イベントの色もいくつか変更して「Source No 1」の「色」タブで割り当てたフィールドの値に合うようにしています。詳しくは「イベントの色」を参照してください。

カレンダーの「新規」ボタンのつじつまが合わなくなってしまうことがあります。たとえば、連絡先のレコードの「次に連絡する日付」にリンクするかもしれません。この場合、「新規」は新規連絡先を作ることになるでしょう。そうしたいこともあるでしょうが、おそらくは連絡先に対する新しい「アクション」を作りたいはずです。このような例では、連絡先のファイルにアクションまたはイベントのテーブルを追加し、そのテーブルを連絡先にリンクして目的を果たすほうがよいでしょう。シードコードカレンダーから「SampleEvents」テーブルにペーストするのは、このようにするための出発点です。

どのイベントでも、「Source No 1 」や「Event Detail」に割り当てたレコードの種類を考慮しましょう。アクションやイベントのテーブルが必要かもしれないと思われる場合は、そのテーブルをこれから追加する自信をあなたは身につけているはずです。

同時に複数のカレンダー、すなわち複数の「ソース」を使えることも忘れないでください。連絡先のレコードのフィールドの一部とイベントのテーブルのカレンダーを利用できます。「複数のソース」を読んで詳しく理解してください。