[FileMaker] 別々のフィールドの値を入れ替える

Hitoshi Arakawa | 2024/06/13 Thu 03:42

FileMaker で語学用のフラッシュカード(単語カード)アプリを作っている。

語学学習の都合上、「apple → りんご」だけではなく、「りんご → apple」のカードも作りたい。

この場合、変数1 に「apple」を、変数2に「りんご」を入れたうえで新規レコードを作成。質問のフィールドに変数2を、解答のフィールドに変数1を入れれば、質問と解答を入れ替えたカードを追加できる。そういうスクリプトを書けばいい。

しかし問題はフラッシュカードが画像の場合だ。僕のフラッシュカードは発音記号やイラストを入れたいので質問フィールドや解答フィールドをオブジェクトフィールド(Container Field)にしている。FileMaker ではオブジェクトフィールドの値を変数に入れることはできない。

オブジェクトフィールドの値を Base64 エンコードすれば変数に格納できるようだが、もっとシンプルな解決方法はグローバルフィールドを活用することだ。

環境:
・macOS Ventura 13.5(英語環境)
・Claris FileMaker Pro 20.3.1.31

(1)質問用および解答用のグローバルフィールドのオブジェクトフィールドを新規に作成する。それぞれ g_Q、g_A というフィールド名だとする。

(2)元のカードの質問を g_Q、解答を g_A にそれぞれ Set Field スクリプトステップで格納する。

(3)レコードを新規作成する。

(4)新規に作成したレコードで、g_Q を解答に、g_A を質問にそれぞれ Set Field スクリプトステップで格納する。

これで質問と解答を入れ替えたカードを作成できる。

あとは2~4を Loop スクリプトステップで繰り返せば大量のカードでも一括処理できる(元のカードと複製したカードは1回の Loop ごとに Omit Record スクリプトステップで隠していけば処理済みカードを非表示にできる)。

参考:
変数の値をフィールド設定できない。
https://community.claris.com/

FileMaker Pro における変数の活用
https://support.claris.com/s/answerview?language=ja&anum=000025255

Amazon.co.jp: FileMaker 2023 スーパーリファレンス Windows&macOS&iOS 対応 eBook : 野沢 直樹, 胡 正則: Kindleストア
https://amzn.to/4eefw5P