Skip to content

シードコードカレンダーProの組込み

シードコードカレンダーの魅力の一つである「お手元のデータベースへの組み込み」について手順を分かりやすくご紹介します。


はじめに

FileMaker ProまたはFileMaker Pro Advencedにあらかじめ用意されている  「Starter Solution」「作業管理.fp7」に「シードコードカレンダーPro」を組み込む方法をご紹介します。
(「Starter Solution」についてはファイルメーカー社サイトをご覧ください)

シードコードカレンダーがカレンダーレイアウト上に表示するのは、 日時を持つデータ=『イベントデータ』です。「SampleEvents」テーブルがこれにあたります。

今回利用する「作業管理.fp7」では「作業」テーブルのデータが『イベントデータ』です。

「作業管理.fp7」へ組み込んだ「シードコードカレンダーPro」を利用して 「SampleEvents」テーブルの代わりに 「作業」テーブルを利用する手順を解説します。


1.準備するもの

  • FileMaker Pro または FileMaker Pro Advanced
  • 「シードコードカレンダーPro」ファイル
  • Starter Solutionの「作業管理.fp7」ファイル
    ※ [ファイル]メニュー > [Starter Solutions から新規作成…] から作成できます。

注意:既存のデータベースファイルで作業される場合には「完全アクセス権」が必要です。

2.作業の前に必ず行うこと

作業前にファイルのバックアップを必ず取っておきましょう。 複製を保存するには、[ファイル]メニュー > [名前を付けて保存…] で可能です。

注意:既存のデータベースをご利用になる場合で、FileMakerServerで公開されているファイルについては、管理者の方とご相談ください。

3.準備:ファイルの組み込みに必要なフィールド

「シードコードカレンダーPro」で『イベントデータ』を利用するのに必須なフィールドは5つです。
組み込み先のFileMakerファイルの『イベントデータ』テーブルに以下の項目に相当するフィールドがあるかチェックしてください。

  • id(イベントテーブルでユニークなid)
    –>>「作業」テーブルでは kp_ID_作業
  • 開始日(イベントの開始日)
    –>>「作業」テーブルでは 開始日
  • 開始時刻(イベントの開始時間)
    –>>「作業」テーブルでは 該当フィールドなし
  • 終了日(イベントの終了日)
    –>>「作業」テーブルでは 期限
  • サマリ(イベントのタイトル)
    –>>「作業」テーブルでは 作業名

以下の2つも必要ですが、SampleEventからコピーして利用します。

  • timestamp start (イベントの開始日時)
  • timestamp end (イベントの終了日時)

必須ではありませんが、以下の3つのフィールドも用意することをお勧めします。

  • 終了時刻(イベントの終了時刻)
    –>>「作業」テーブルでは 該当フィールドなし
  • 説明(イベントの説明)
    –>「作業」テーブルでは 説明
  • 連絡先id(イベントに関する連絡先データのユニークなid)
    –>>今回は利用しません

また、『イベントデータ』がカレンダー上で色付きで表示されるように「作業」テーブルの「状況」フィールドに入力される値(後ほど設定するStatusという値一覧)を利用します。

なお、予定表示やグリッド表示で利用する「リソース」には、「作業」テーブルの「プロジェクト名」フィールド(後ほど設定するResourcesという値一覧)を利用します。

4.「作業管理.fp7」ファイルを加工

「作業管理.fp7」ファイルの「作業」テーブルには、イベントの開始時刻と終了時刻に相当するフィールドがありません。
足りない2つの時刻フィールドを作成して、「開始時刻」と「期限時刻」と名前を付けてください。

5.スクリプト名とレイアウト名のチェック

「シードコードカレンダーPro」ファイルと組込み先のFileMakerファイルで、スクリプト名やレイアウト名が、重複していないかチェックしてください。
※「作業管理.fp7」には、重複はありません

注意:詳しくはsupport.fmgateway.jpの『既存のファイル』をご覧ください。


では、組み込み作業を開始します。

6.必要なフィールドを「作業管理.fp7」ファイルへ追加

「シードコードカレンダーPro」の「SampleEvents」テーブルから、以下の2つの計算フィールドを 「作業管理.fp7」ファイルの「作業」テーブルへ追加します。

z_sc_TimestampEndCalc

計算フィールド 計算結果は「タイムスタンプ」を指定
索引設定は、計算フィールドのデフォルト状態のままにしてください。
(索引設定;なし、必要時に索引を自動設定にチェックあり)

計算式を以下のように変更してください。

ds = DateStart を ds = 開始日
de = DateEnd を de = 期限
ts = TimeStart を ts = 開始時刻
te = TimeEnd を te = 期限時刻

計算式の設定

※クリックで拡大できます。

z_sc_TimestampStartCalc

計算フィールド 計算結果は「タイムスタンプ」を指定
索引設定は、計算フィールドのデフォルト状態のままにしてください。
(索引設定;なし、必要時に索引を自動設定にチェックあり)

計算式を以下のように変更してください。

ds = DateStart を ds = 開始日
ts = TimeStart を ts = 開始時刻

計算式の設定

※クリックで拡大できます。

※FileMaker Proをご利用の場合は同じ名前とオプションのフィールドを作成してください。

※FileMaker Pro Advancedをご利用の場合は、フィールドのコピー&ペーストが可能です。フィールドをペーストすると、計算式は「/*」「*/」でコメントアウトされます。 「/*」「*/」を取り除き、同じように変更してください。

7.「作業管理.fp7」ファイルの時刻フィールドへオプションを設定

1.「開始時刻」のフィールドオプションに「入力値の自動化」を設定します。

下記の式をコピー&ペーストしてご利用ください。

If ( Self = Time ( 24 ; 0 ; 0 ) ; Time ( 24 ; 0 ; 1 ) ; Self )

入力値の自動化のオプション

※クリックで拡大できます。

2.「期限時刻」のフィールドオプションに「入力値の自動化」を設定します。

下記の式をコピー&ペーストしてご利用ください。

Case (
Self = Time ( 24 ; 0 ; 0 ) ; Time ( 24 ; 0 ; 1 ) ;
Self > Time ( 24 ; 0 ; 0 ) ; Self – Time ( 24 ; 0 ; 0 ) ;
Self )
入力値の自動化のオプション

※クリックで拡大できます。

注意:いずれも「フィールドに既存の値が存在する場合は置き換えない」のチェックボックスには、チェックを付けません。但し、イベントを深夜0時にスタート可能にする場合には、この入力値の自動化のオプションが必要です。

8.「作業管理.fp7」へテーブルをインポート

「シードコードカレンダーPro」から「作業管理.fp7」に、「CalendarRows」、「CalendarInterface」、「CalendarColors」の3つのテーブルをインポートします。

※FileMaker Proをご利用の場合は手作業で同じようにテーブルを作成してください。

まず「CalendarInterface」、「CalendarRow」、「CalendarColors」の順にテーブルを作成してください。
そして「通常のフィールド」(テキスト/数字/日付 等)、「計算フィールド」の順番でフィールドを作成します。

テーブル定義

正しくインポートできるとこのようになります。※クリックで拡大できます。

注意:既存のデータベースをご利用になる場合で、データ分離モデルではインターフェイス側のファイルにテーブルを追加してください。

9.「z_ColorCalc」フィールドの追加

「シードコードカレンダーPro」の「SampleEvents」テーブルから「z_ColorCalc」フィールドを「作業管理.fp7」ファイルの「作業」テーブルへ追加します。

これはイベントの色を表示させる為に利用します。 「z_ColorCalc」フィールドの作成は必須ではありませんが、今回は利用してみます。

z_sc_ColorCalc

計算フィールド 計算結果は「テキスト」を指定
索引オプションを「計算結果を保存せず必要時に再計算する」を選択します。

s = Status を s = 状況

計算式の設定

※クリックで拡大できます。

※FileMaker Proをご利用の場合は同じ名前とオプションのフィールドを作成してください。
※FileMaker Pro Advancedをご利用の場合は、フィールドのコピー&ペーストが可能です。 フィールドをペーストすると、フィールドの計算式は「/*」「*/」でコメントアウトされます。「/*」「*/」を取り除き、同じように変更してください。

10. 「作業管理.fp7」へ値一覧を作成

「シードコードカレンダーPro」を開いて「作業管理.fp7」に5つの値一覧を作成します。

  • Yes No(「シードコードカレンダーPro」と同じ内容)
  • Status(「作業管理.fp7」の「状況」と同じ内容をカスタム値で設定)
  • Calendar Time Scale(「シードコードカレンダーPro」と同じ内容)
  • Calendar Times(「「シードコードカレンダーPro」と同じ内容)
  • Resources
    (「作業管理.fp7」のプロジェクトテーブルフィールドの値を使用した値一覧を設定
    設定内容は画像1をご覧ください)
リソースの値一覧の設定

画像1 ※クリックで拡大できます。

注意:「Contacts」に関しては作成する必要はありません。「Status」は「状況」の名称を「Status」に変更して利用することもできます。

11. 「作業管理.fp7」へリレーションシップグラフを作成

1. [ファイル]メニュー > [管理] > [データベース]を選択して、データベース管理ダイアログを表示します。

2.「リレーションシップ」タブをクリックして「作業管理.fp7」のリレーションシップグラフを表示します。

3. 新規のテーブルオカレンスを1つ追加し「作業」テーブルを指定して「SampleEvents」という名前にします。
(テーブルオカレンスの名前の途中にはスペースを入れないでください。
このテーブルオカレンスは、後述するスクリプトインポート作業の際にフィールドを見失わないように用意しておくものです。最終的には削除します)

4.「CalendarRows」を「CalendarInterface」と「CalendarColors」に関連付けます。

(「関連付けの設定内容は画像2をご覧ください)

リレーションシップの定義画面リレーションシップの定義画面。リレーションシップの完成図

画像2 ※クリックで拡大できます。 左=完成図

12. 「作業管理.fp7」へレイアウトを作成

1.「シードコードカレンダーPro」のレイアウト1つに対して、「作業管理」に1つ空白レイアウトを作ります。

注意: ブラウズモードで表示されるレイアウトはいくつかに限られますが、正しく動作するには全てのレイアウトが必要です。

2.一つ、空白レイアウトを作ったら「レイアウト設定」ダイアログを開き、「アクティブ時にフィールドのフレームを表示」のチェックをはずします。 レイアウト画面でレイアウトから、ヘッダとフッタを削除します。

注意:FileMaker Pro 11, FileMaker Pro Advanced 11をご利用の場合には、「クイック検索を有効にする」のチェックをはずします。

3.項目「2.」のレイアウトを複製して必要な数のレイアウトを作成します。

4.項目「3.」で作成したレイアウトは以下の様に名前を変更し、「レイアウト設定」ダイアログの「レコードを表示」ポップアップメニューでテーブルの関連付けを行ってください。(下図を参照)

レイアウト管理ダイアログ

※クリックで拡大できます。

注意:7.でテーブルをインポートした際に作られたデフォルトのレイアウトは、削除します。
「SampleContacts」テーブルのレイアウトは作る必要はありません。

13.「作業管理.fp7」へスクリプトをインポート

1.[スクリプト]メニュー > [スクリプトの管理] を選択して、スクリプトの管理ダイアログを表示します。

2. スクリプトのインポートボタンを押して「シードコードカレンダーPro」を指定します。

3.「SeedCode Calendar」フォルダの左側にあるチェックボックスをクリックして【OK】を押してください。

スクリプトのインポート

※クリックで拡大できます。

注意:インポートの際にエラーのレポートがたくさん表示されますが、これは正常です。後でスクリプト中に使用されているフィールドや設定を、既存のファイルの中の値に指定し直します。

14. 「作業管理.fp7」のレイアウトの内容を作成

「シードコードカレンダーPro」の各レイアウトから、レイアウトのコンテンツをコピーし、「作業管理」の同名のレイアウトにペーストします。
「Calendar Rows」や「Calendar Color Records」も含め、すべてのレイアウトについてこの作業をします。

注意:「Event List」および「Event Details」は今回は使わないので作業を行う必要はありません。

15. レイアウトスクリプトトリガの設定

レイアウトに対するスクリプトトリガはレイアウトの要素をコピー&ペーストする際には移行されないため、設定し直す必要があります。
設定が必要なのは2種類だけです。

レイアウト名:「Calendar」(トリガ1件)

(4つのカレンダーレイアウトのそれぞれに対して設定します)
イベント:OnRecordLoad
スクリプト:「Load Calendar Layout」
以下で有効:ブラウズと検索

レイアウト名:「Event Details」(トリガ1件)

イベント:OnRecordLoad
スクリプト:「On Event Record Load」
以下で有効:ブラウズ

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

16. セットアップ

1. カレンダーの設定をします。

「Load Calendar Settings – On Startup…」スクリプトの編集ウインドウを開き、コメントに従って必要に応じて値を変更します。

スクリプトの設定

※クリックで拡大できます。

2.レコードのソートをするスクリプトを修正します。

「”Sort FileMaker Records…」スクリプトの編集ウインドウを開き、指示に従って、ソートのステップを
「作業」テーブルにあるフィールドを使うように編集して、レコードが日付/時刻の昇順でソートされるようにします。

スクリプトの修正

※クリックで拡大できます。

3.検索スクリプトの修正をします。

「Search」スクリプトを開き、「レイアウト切り替え」のステップのオプションに「レコード一覧-作業」を設定してください。

スクリプトの修正。

※クリックで拡大できます。

4.データの割り当てを行ないます。

「Source No 1」レイアウトに切り替え、「レイアウトモード」で「作業」テーブルオカレンスに紐付けてください。
またレイアウト上の指示に従ってフィールドを「作業」テーブルのフィールドに割り当てます。
例えば、「Summary」は、ここでは「作業名」フィールドになります。
さらに、「表示レイアウト」の項目は「Event Details」から「レコード詳細-作業」に切り替えてください。

データを割り当てる。

※クリックで拡大できます。

17. テーブルオカレンスを削除

テーブルオカレンス「SampleEvents」を削除します。

18. ファイルオプションの設定

1.[ファイル]メニュー > [ファイルオプション] を選択して、スクリプトの管理ダイアログを表示します。

2. ファイルを開くときに実行するスクリプトとして「Upon Opening」スクリプトを指定しファイルを開くときに実行する必要があります。

多くの場合、既に起動スクリプトを使っているかもしれません。
「作業管理」には「起動処理」が割り当てられてます。
安心してください!
「起動処理」スクリプトの一番下に「スクリプトを実行」ステップを設置して「Upon Opening」 スクリプトを呼べば大丈夫です。

起動スクリプト

※クリックで拡大できます。

19. スクリプトの実行

「Upon Opening」スクリプトを実行すると、イベントが「日」表示で表示されます。

この時点で、カレンダーにイベントが表示されているはずです。

20.イベント詳細や検索に戻るボタンを用意

19.の時点で、すでにご利用いただける状態にはなっておりますが、 イベントをクリックして「レコード詳細-作業」レイアウトを開いて、 作業した後に閉じるボタンがないので、閉じるボタンを用意しましょう。

さらには、検索を押して「レコード一覧-作業」レイアウトに切り替えたあとに、 カレンダーに戻ることができませんので、戻るためのボタンを用意しましょう。

1.ウィンドウを閉じて再描写させるスクリプトは、「Close Window & Refresh Calendar」です。

ボタンを作成して、スクリプト「Close Window & Refresh Calendar」を割り当て、お好きな場所に配置してください。

2.カレンダーを表示させる為のスクリプトは、「Go to Calendar Tab ( Tab Name )」です。

ボタンを作成して、スクリプト「Go to Calendar Tab ( Tab Name )」を割り当て、お好きな場所に配置してください。

注意:「Go to Calendar Tab ( Tab Name )」スクリプトは引数を受け付けることができます。 何も指定しない場合は「日」表示されます。

このスクリプトは下記の引数を受け付けます。

  • Calendar Day 日表示
  • Calendar Week 週間表示
  • Calendar Month 月間表示
  • Calendar Year 年間表示
  • Calendar Resource Scheduling – Vertical 予定表示
  • Calendar Resource Scheduling – Horizontal グリッド表示
スクリプト引数

※クリックで拡大できます。

これで、一連の機能を利用できるようになりました。
このスクリプトは、いろいろなレイアウトに配置してカレンダーの表示に活用できます。


以上が組込み手順となります。お手元のデータベースでもお試しください。
作業前のバックアップは忘れずに行いましょう!

Posted at 2010年11月30日 11:14

Spread The Love, Share Our Article

Related Posts

Comments

There are no comments on this entry.

Trackbacks

There are no trackbacks on this entry.