縁あってMac環境でデータベースアプリケーション用にFileMakerを使い始めました。
MS-Accessと同様、リレーショナルデータベースとされてますが、Accessとはかなり性格の異なる構造になっており、その作法に慣れるのに意外と時間がかかります。とはいうものの、いろんな場面で先達が同じような問題や疑問に直面したときに解決していったQ&Aがネット上に多数残されていますので、それらを手がかりにして取り組んでいるところです。
いろいろあるのですが、今日ぶつかっていた壁もやはり同様の問題で悩んでいた人が相談し、FileMakerの達人が見出した解決事例がありました。
自己リレーションというFileMaker独特(と思われる)考え方と動作処理があり、それを使ったレコードの絞り込みの設定を「or」で行なうのに、チェックボックスにてグローバルフィールドに候補を入力するプロセスを設計しました。性別くらいだと2つ3つの候補なので手作業でよいのですが、都道府県ともなると数が多くなるため「全チェック」「全クリア」が必要になります。そのために値一覧に登録した選択肢を一括で取り出し、条件設定用のグローバルフィールドに代入したいのですが、この選択肢抽出でトラブル。
GetListItemsという関数で値一覧を指定しても、データ取得ができません。この関数は引数を2つ必要としていて、それぞれ「ファイル名」「値一覧の名前」なのですが、ファイル名は拡張子を除いたものを入力することになっていました。
しかし、バージョン管理のためにファイル名に「v0.8」としていたため、どうやらピリオド以降の「8」を拡張子としてカットされてしまい、それだとファイル名と一致しないのでデータが返されない、ということのようです。Macのファイルシステムの中で拡張子の扱いが曖昧なために陥る事象なのだと思います。
さっそくファイル名を変更すると、正しくデータ取得するようになりました。
実際にはファイル名を固定で指定せず、Get(ファイル名)というファイル名を返す関数を入れています。