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