Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

シードコードカレンダーの「SampleEvents」テーブルから、以下の2つのフィールドを自分のイベントのテーブルに追加してください。

Code Blockpanel
  • zscTimestampStartCalcNum
  • zscTimestampEndCalcNum

FileMaker Advancedでフィールドをベーストした場合は、この2つのフィールドの計算式を編集して、「/」で始まり「/」で終わるコメントのタグを削除します(つまり、計算式の始めと終わりから「/*」と「*/」を取り除きます)。それから、計算式で参照されている「DateStart」や「TimeStart」などのフィールドを、あなたのイベントのテーブルにある該当するフィールドに置き換えます。どちらのフィールドも、計算結果を「数字」にして、どちらも索引を作成します。

...

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

Code Blockpanel
  • z_LinkedWithinProject
  • z_MilestoneSort
  • z_Notified
  • z_Repeating_id

3. テーブル

Import three tables into your file from SeedCode Calendar: CalendarInterface, CalendarRows, and CalendarColors. (If you're using data separation, add these tables to your interface file.)

If you're using FileMaker Advanced, you can just copy and paste the three tables. If you don't have Advanced, from your file select File / Import Records... / File and then select theSeedCodeCalendar file. Select the first of the three tables to import and for the target, select "New Table". FileMaker will create the new table and calcs for you but you'll have to come back and uncomment some of the calcs that couldn't find the items needed: come back after you've imported all three tables this way and remove the leading /* and trailing */ from your calcs.

If you don't have Advanced, and that sounds like too much, we'd be happy to complete this step for you, just send us your file.

カレンダーのTo-Doリストを使いたいがTo-Doのテーブルはまだないという場合は、この時点でシードコードカレンダーの「ToDoList」テーブルも自分のファイルにインポートすることができます。名前は「ToDoList」のままにしてください。そのほうが、この後のステップが簡単です。

連絡先、プロジェクト、フェーズを入れるテーブルもあります。既存のファイルには、これらのエンティティを表すテーブルがおそらくあるでしょう。これらは、後で整理します。連絡先やプロジェクトのテーブルがなく、あったほうがよいと考えるなら、この統合をいったん中止してSeedCode Complete(英語)を見てみるといいかもしれません。豊富な連絡先やプロジェクト管理システムとすでにリンクしているカレンダーが用意されています。

「イベント詳細」では、レイアウトの見た目や、フィールドやボタンの追加など、好きなように編集してかまいません。「repeat」ボタン、その下に「show repts...」ボタン、画面の一番下に大きい「close...」ボタンの3つのオブジェクトだけは、このように配置してください。後でこのレイアウトをまた編集することもできますので、ここでは「Summary」、「Date」、「Time」フィールドを自分のイベントのテーブルに含まれる関連フィールドとともに並べておくだけでもかまいません。

Just as you needed to click on fields on Event Details and point them at the proper fields in your table, you'll need to do the same to the Event List layout, and the on the To-Do Details and To-Do list, if you're using those, Again, you can map the basic date, time, and summary fields now so you know the calendar is working. We have a note at the end of these instructions reminding you to come back here and finish cleaning these layouts up.

4. 値一覧

シードコードカレンダーを開き、既存のファイルに値一覧を7つ、再作成します。ステータスやリソースの一覧は自由に使ってかまいませんが、シードコードカレンダーで使用している値一覧名に変更してください。名前は後から、元に戻すことができます。その他の値一覧は、そのままにしておく必要があります。ただし「Calendar Times」の時刻の書式は好みに応じて自由に変更してかまいません。これについては、いったん設定が完了して使ってから変更したいケースもあるかもしれません。

Here, and in what follows, you don't need to import anything to do with SampleContacts orSampleProjects as you'll likely already have these things in your file. That is, you likely have a method of selecting contacts and projects and will want to use your existing method on the Event Details layout. (However, even if you do have an existing method, creating Contacts and Projects values lists now will let the Event Detail layout find those value lists when you paste the layout into you file. We also use this Projects value list on the calendar's filters: another good reason to create them now.)

5. テーブルオカレンス

「ファイル」メニューの「管理」から「データベース」を選択し、ダイアログの「リレーションシップ」タブをクリックして自分のファイルのリレーションシップグラフを表示します。左下にある小さな緑色の「+」ボタンをクリックして、自分のイベントのテーブル(カレンダーに表示させたいレコードが保存されているテーブル)に新規のテーブルオカレンスを1つ追加し、「SampleEvents」という名前にします(テーブルオカレンスの名前の途中にはスペースを入れないでください)。この名前は、後で変更できます。

連絡先のテーブルが別にある場合、同様にして新しいテーブルオカレンスを作成し、その名前を「SampleContacts」と変更します(繰り返しになりますが、ダブルクォーテーションを付ける必要はありません。また名前の途中にスペースを入れないでください)。これを、ほかで使用しているものに相当するフィールドを使って、今作成した「SampleEvents」テーブルオカレンスと関連づけます。「SampleEvent」の連絡先IDを、「SampleContacts」の中の連絡先の一意のIDと関連づけるというようなことです。プロジェクトがあれば、プロジェクトに対しても同様にします。「Projects」の新しいインスタンスを作り、「SampleProjects」と名前を付けます。そしてこれを「SampleEvents」のプロジェクトIDとリンクします。設定が完了して動作するようになったら、これらのテーブルオカレンスの名前を変更してかまいません。

6. リレーションシップ 

6.1 リレーションシップ その1

リレーションシップグラフで、以下の図のように「CalendarRows」を「CalendarInterface」に、そして「CalendarColors」に関連づけます。テーブルオカレンスの名前が、サンプルファイルのものと一致していることを念のため確認してください。また、「≥」の記号の開いている方が「CalendarInterface」を指していることを確認してください。

この時点で、もともとある「イベントリスト」や「イベント詳細」レイアウトと同じようにリスト表示でイベントの色を表示させたい場合には、「SampleEvents」テーブルから「z_sc_ColorCalc」フィールドをコピーして、自分のイベントのテーブルに追加します。計算式の最初と最後から「/*」と「*/」を削除します。そして「ステータス」として使われているフィールドを、自分のイベントのファイルのこれに相当するフィールドに置き換えます。このフィールドが、カレンダーのイベントの色分けに使用されています。

6.5. リレーションシップ その2

ガントチャートを取り除く場合、この項目は飛ばしてください。

If you'll be using the Gantt Chart you'll want to connect a few more things in the graph. First, create a relationship from CalendarRows to SampleEvents like this, where "id" is the primary key (the unique ID) in your events table. :

Then attach SampleEvents to your Contacts, Projects, and possibly your Phases table occurrences, as shown here:

It probably make sense to create new instances of these to attach to SampleEvents, but you don't have to. You'll likely want to rename your table occurrences to "Sample..." for now so that items pasted in later will line up. (Big time saver) If you don't have a Phases table, don't worry: phases are completely optional.

7. レイアウト その1

既存のファイルに空白レイアウトをいくつか作ります(この後のステップで、この空白レイアウトにコンテンツをペーストします)。シードコードカレンダーのレイアウト1つに対して、既存のファイルに1つレイアウトを作ります(ユーザに対して表示されるレイアウトはいくつかに限られますが、すべてのレイアウトが必要です。ただし「Demo Expired」は除きます)。以下のリストの先頭のレイアウトを作成し、それを複製して他のレイアウトを作るのが最も簡単です。

注意:以下に示すレイアウトと同じ名前のレイアウト(またはレイアウトフォルダ)が存在しないということが重要です。同じ名前のものがすでにある場合、この作業を続ける前にレイアウトやフォルダの名前を変更してください(そうです、FMPのデザイン関数ではではレイアウトとフォルダが区別されないので、「Calendar」という名前のフォルダでも問題が起きます)。

この最初のレイアウトの作り方を解説します。レイアウトを作ってから「レイアウト設定」ダイアログを開き、「アクティブ時にフィールドのフレームを表示」のチェックをはずします。クラシックのテーマを使用します。また、「クイック検索を有効にする」のチェックもはずします(クイック検索機能を使ってカレンダーを検索したい場合は、「イベントリスト」レイアウトで有効のままにしておくか、またはfmSearchResults(英語)を使ってクイック検索を拡張できます。以下の設定が終わり、カレンダーを開いた後で、この設定をします)。複製して名前を変更したレイアウトは、「レコードを表示」ポップアップメニューでテーブルの関連付けを以下のリストの通りにしてください。

ここでも、連絡先がない場合は、サンプルの連絡先のプロジェクトやフェースのレイアウトを追加する必要はありません。ただし、「Calendar Developer」と「Additional Skins」フォルダの中のレイアウトは作る必要があります。

シードコードカレンダーと同じように区切り線のレイアウト(「Calendar Interface」に基づくレイアウト)を作るとよいかもしれませんが、これはあくまでも見た目と使い勝手だけの問題です。各レイアウトが、以下に示すテーブルオカレンスに基づいていることを確認してください。

ここまでできたら、作成したレイアウトが、シードコードカレンダーのレイアウトと完全に同じ名前であることを確認します。また、すべてのレイアウトから、ヘッダとフッタを削除します。

最後に、ステップ3でテーブルをインポートした際に作られたデフォルトのレイアウトは、削除します。

イベントのリストやイベントの詳細に使用したいレイアウトがこの段階ですでに作られているかもしれません。その場合は、「自分で作ったレイアウト」を参照してください。

To-Doリストを使用する場合は、 「To-Do Details」と「To-Do List」レイアウトも追加してください。

8. スクリプト

シードコードカレンダーからスクリプトをインポートします。インポートするには、「シードコードカレンダー」フォルダの先頭にあるチェックボックスをクリックしてチェックを付けるだけです。これで、フォルダの中にあるスクリプトがすべてインポートされます。インポートの際にエラーのレポートがたくさん表示されますが、これは正常です。後述の「セットアップ」で、スクリプト中に使用されているフィールドや設定を、既存のファイルの中の値に指定し直します。

ただし、スクリプトの名前が重複するために名前が変更されたとメッセージが表示された場合は、インポートしたスクリプトの名前のうち「2」で終わっているものを探して、修正してください。たとえば、このカレンダーには「Upon Opening」という名前のスクリプトがあります。すでに同じ名前のスクリプトがある場合、インポートしたスクリプトの名前は「Upon Opening 2」となります。これを修正するには、もとからあるスクリプトの名前を「Upon Opening Main」などと変更し、次にインポートしたスクリプトの名前を「Upon Opening」と変更します。カレンダーのスクリプトは、今後のステップで正常に動作させるためには「SeedCodeCalendar」ファイルにあるものと必ず同じ名前にします。

9. レイアウト その2

シードコードカレンダーの各レイアウトから、レイアウトのコンテンツをコピーし、既存のファイルの同名のレイアウトにペーストします。「Calendar Rows」や「Calendar Color Records」も含め、すべてのレイアウトについてこの作業をします。レイアウトを大きくする必要があるとメッセージが表示されるかもしれませんが、レイアウトの高さを大きくしてかまいません。

FileMaker 12ではレイアウトの高さは自動で調整されますが、レイアウトの幅は調整されません。手動でレイアウトの右端を動かして、シードコードカレンダーのファイルのレイアウトと同じ幅に合わせる必要があります(ほとんどのレイアウトでは、最も右にあるオブジェクトの端に合わせます)。

「イベント詳細」では、レイアウトの見た目や、フィールドやボタンの追加など、好きなように編集してかまいません。「repeat」ボタン、その下に「show repts...」ボタン、画面の一番下に大きい「close...」ボタンの3つのオブジェクトだけは、このように配置してください。後でこのレイアウトをまた編集することもできますので、ここでは「Summary」、「Date」、「Time」フィールドを自分のイベントのテーブルに含まれる関連フィールドとともに並べておくだけでもかまいません。

Just as you needed to click on fields on Event Details and point them at the proper fields in your table, you'll need to do the same to the Event List layout, and the on the To-Do Details and To-Do list, if you're using those, Again, you can map the basic date, time, and summary fields now so you know the calendar is working. We have a note at the end of these instructions reminding you to come back here and finish cleaning these layouts up.

10. レイアウトのスクリプトトリガ

スクリプトトリガを割り当てます。レイアウトに対するスクリプトトリガはレイアウトの要素をコピー&ペーストする際には移行されないため、設定し直す必要があります。設定が必要なのはわずかですので、ご安心ください。

Panel

レイアウト:「Calendar Home & Docs」(トリガ1件)
トリガ:「OnRecordLoad」(ブラウズモード)
スクリプト:「Load Home Layout」

レイアウト:「Calendar」(トリガ1件)
トリガ:「OnRecordLoad」(ブラウズモードと検索モード)
スクリプト:「Load Calendar Layout」
(「Calendar - no Side Menu」も同様にしてください。「Calendar iPad」と「Calendar iPad - no Side Menu」レイアウトも同様です)

レイアウト:「Event Details」(トリガ1件)
トリガ:「OnRecordLoad」(ブラウズモード)
スクリプト:「On Event Record Load」

レイアウト:「To-Do Details」(トリガ1件)
トリガ:「OnRecordLoad」(ブラウズモード)
スクリプト:「On Event Record Load」

レイアウト:「Repeat Options」(トリガ1件)
トリガ:「OnRecordLoad」(ブラウズモード)
スクリプト:「Set Initial Repeat variables」

設定が完了したら「Calendar Home & Docs」レイアウトに戻り、ブラウズモードに切り替えます。

...

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

...