FileMakerでSQLを書けるのは以前の記事でも書きましたが、「ここでも書ける」というのを紹介します。
SQLはフィールド設定でも書けます。
これを使えば、リレーションシップ設定がなくてもデータを引っ張ってこれます。
(リレーションすればいいのでは?というのは今回無し、ということで)
以下、サンプルです。
○テーブル
テーブル名 | 概要 |
---|---|
FMTest | トランザクションデータ |
SystemMaster | システムデータの入ったマスタテーブル |
SystemMasterにあるとあるシステム値をFMTestテーブルにグローバルに持って活用したい、という事例です。
システム情報として、上記のようなマスタテーブル構成で、以下のようなデータを保持しているとします。
適当な値が入っていますが、システム値ということで、例えば「出力ディレクトリフルパス値」「消費税率」のようなシステム固有で持っている共通情報という感じです。
これを、FMTestテーブルで活用したいということで、FMTestのsystem1フィールドに保持できるようにSQLを計算値に書いておきます。
ここではwhere条件を引数なしでベタで書いていますが、引数も書けますので、詳しくはこちらの解説をどうぞ。
FMTestテーブルのsystem1はグローバルフィールドに設定してあるので、FMTestでsystem1が取得されていることを確認してみましょう。
はい!
FMTestのsystem1に、SyStemMasterに保存されているid=1のname内容が取得できています。
いちいちリレーションするのめんどくさい(邪道!?)ときには、ExecuteSQLで持ってくるという小技もあること、ちょっと覚えていてもいいかもです。
ちなみに、SQLと聞くと、共有設定で接続しないととか考えるかもしれませんが、同一FMファイル内でしたら当たり前ですがそんな設定無しでSQLを書けます。
SQLに慣れ親しんでFMワールドに来た方、ぜひともSQLもFMで活用してください。
(私だー)