はじめに
【基礎編】で作成したファイルに、オブジェクトフィールドを追加したものを作成します。実際にFileMaker上でundo、redoできるようになると、ちょっと感動されると思います。皆さまに、ぜひ、ご利用いただいて、いろいろご意見をいただければと思います。よろしくお願いいたします。
このチュートリアルで作れるもの
AnyFileNameファイルに、ログが取れ、undo、redoができるオブジェクトフィールドが追加されます。

準備するもの
【基礎編】で作成したものがあれば大丈夫です。
-
FileMaker Pro 19
-
FMDB-blueファイル一式
- FMDB-blue_Processor.fmp12
このチュートリアルでは「Processorファイル」と呼びます。 - SampleApp_Interface.fmp12
- FMDB-blue_Data.fmp12
- SampleApp_Data.fmp12
これらのファイルは、このチュートリアル内では登場しませんが、FMDB-blueの導入、稼働には必要なファイルです。
- FMDB-blue_Processor.fmp12
-
ログ記録を残したいFileMakerファイル。
【基礎編】で作成したAnyFileNameファイルを使います。
チュートリアル通りに作っていれば、FMDB-blueフォルダの中に作られていて、アカウント、パスワードは「admin」のはずです。
FMDB-blue導入のチュートリアル【オブジェクトフィールド編】
1. ログ記録を残したいFileMakerファイルでの設定
1-1.
まず【基礎編】作ったAnyFileNameファイルを開きましょう。

1-3.
オブジェクトフィールドを追加します。名前はなんでもよいですが、ここではAnyContainerFieldとします。

1-4.
レイアウトモードにして、作成したAnyContainerFieldフィールドをドラッグ&ドロップします。

1-5.
配置されたAnyContainerFieldフィールドを右クリックして、コピーします。

1-6.
そのままペーストします。右側パネルで「データ」タブを選択し、「フィールド入力」のところの2つのチェック(ブラウズモード、検索モード)を外します。

1-7.
コピー前のフィールドを選択して、右側パネルで「外観」タブを選択し、「塗りつぶし」を「なし」にします。

1-8.
引き続きコピー前にフィールドで右クリックメニューを出し「フィールド設定...」を開きます。

1-9.
フィールドとしてeM_Hub#FMDBblue::g_NewContent.containerを選択して、「OK」します。

1-10.
このg_NewContent.containerフィールドで、再度右クリックで「スクリプトトリガ設定...」を開きます。

1-11.
「スクリプトトリガ設定」で「OnOBjectModify」スクリプトトリガを選択します。

1-12.
「_LogSystem」フォルダ内のOnObjectModify_Handle_Drag&Drop(EntireFN)スクリプトを選択します。スクリプト引数としてGetFieldName ( AnyFileName::AnyContainerField )を設定し、「OK」します。

1-13.
コピーしたフィールドを、コピー元のフィールドに重なるように移動させます。これで、AnyFileNameファイルの設定は終了です。

2. Processorファイルの設定
2-1.
次に、Processorファイルの設定を行います。Processorファイルを開くために「Set TO Shift Active Field」スクリプトを実行します(この方法で開くと、アカウント、パスワードが聞かれません)。

2-2.
「TableOccurrenceShiftの設定」で「キャンセル」を選択します(ここで「3」を入力して「選択する」のもありです)。

2-3.
レイアウトを_Log@AnyOccurrenceName.formに変更します。

2-4.
AnyContainerFieldフィールドをドラッグ&ドロップします。これでProcessorファイルの設定は終了です。Processorファイルのウインドウは閉じてください。

2-5.
これで練習ファイルの編集は完了です!
2つ目のフィールドとしてオブジェクトフィールドが追加されました。このオブジェクトフィールドの編集は、ドラッグ&ドロップ、右クリックなどの「〇〇を挿入」でも、どちらでも対応可能です。ぜひ、undo、redoをしてみてください。

チュートリアル後の注意事項
- 作られたオブジェクトフィールドは通常のものと違い、対象レコードがゼロの場合でも、レコードがないことを表すアラートが表示されません。後ろに置いた
g_NewContent.containerフィールドのOnObjectEnterスクリプトトリガにアラート用のダイアログ表示スクリプトを設定すれば、少しはそれに対処できるかも知れません。 - FMDB-blue導入のチュートリアルはこの【オブジェクトフィールド編】で一旦終了です。もし、ご要望等あれば、関連レコード、ポータルなどのチュートリアル作成も検討します。ぜひ、ご利用いただいて、いろいろご意見をいただければと思います。
謝辞
- FM-1GP大賞発表LIVE終了後の打ち上げzoomで、ご意見をいただいたのがきっかけです。FM-1GP運営に感謝!
- 当チュートリアルを作成するのにMarkdownThing(魔改造バージョン)を使用しています。@qbxxdpさんに感謝! 本チュートリアルのご指導もいただいております。

