初心者のFileMaker pro Q&A

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


#1 2019-07-06 14:38:01

Coocoo
ゲストユーザー

[解決] 外部ファイルの Get ( レイアウト名 ) を参照する検索結果について

環境
FileMaker Pro 16 or 15

やろうとしていること
レコードごとに表示するレイアウトが決められており(例. 性別フィールドの内容によって男性用レイアウト、女性用レイアウトでプリントする)、チェック用のフィールドに現在のレイアウトが正しいレイアウトかどうかが○×で表示されるのでこのフィールドによる検索で現在のレイアウトに対応するレコードを抽出する。

以下詳細
まず既存のファイルをデータ用の「データファイル」とし、新たにテーブルの無い表示用の「表示ファイル」を作成しレイアウト一式を表示ファイルに移植しました。
表示ファイルのテーブルオカレンスは外部参照のデータファイルのものになります。

主要フィールドは以下な感じです。
現在のレイアウト:Get ( レイアウト名 )
対応レイアウト:計算式で求められたレコードごとに対応するレイアウト名
レイアウトチェック:Case ( Exact ( 現在のレイアウト ; 対応レイアウト ) ; "○" ; "×" )

表示ファイル上で上記3つのフィールドの内容は正しく表示されています。
ここで「レイアウトチェック」の内容を○で検索すると、想定では現在のレイアウトに対応したレコードが抽出されるはずが該当なしとなり、×で検索すると全件が対象になります。(元のデータファイル上では想定通りの結果になります)
データファイルを開きこちらの例えば男性用レイアウトを表示させた状態で表示ファイルで検索を行うと表示ファイルのレイアウトに関係なく男性用レイアウトが対象のレコードが抽出されます。
表示は問題ないのですが検索時に限って計算式のあるデータファイル側の状況で判定されているようです。
これを索引オプションをいじるなり計算式を変更するなりしてレイアウトチェックフィールドでの検索で正しい結果を出すようにすることは可能でしょうか。

よろしくお願いします。

念のための補足
あくまで上記フィールドの○×での検索が可能かどうかの質問なので例えの性別フィールドで検索して対応レコードを抽出するといった別手段は今回取り扱いません。
またデータファイル側の各レイアウトは今回検証用に表示させただけで実際には隠しています。

#2 2019-07-06 16:26:19

Shin
メンバー

Re: [解決] 外部ファイルの Get ( レイアウト名 ) を参照する検索結果について

現在のレイアウト が、索引保存になっているのでは。
これを、計算結果を保存せず、必要時に計算 に変更してみては。

オフライン

#3 2019-07-06 17:50:50

Coocoo
ゲストユーザー

Re: [解決] 外部ファイルの Get ( レイアウト名 ) を参照する検索結果について

Shinさん
ありがとうございます。

確認しましたが「計算結果を保存せず必要時に再計算する」はチェックがついてます。
「対応レイアウト」「レイアウトチェック」も同様の索引設定になっています。
試そうとしたまま忘れていたのでシンプルなDBを新たに作ってみたのですがこちらでも同様にデータファイルに影響する検索結果になるようです。
本来なら問題なく表示ファイル側の表示レイアウトに則した検索結果になるものなんでしょうか。

#4 2019-07-07 01:41:15

Shin
メンバー

Re: [解決] 外部ファイルの Get ( レイアウト名 ) を参照する検索結果について

その計算フィールドのコンテキストの設定を確認してみてください。
https://fmhelp.filemaker.com/help/17/fm … 3ww1098829

オフライン

#5 2019-07-07 11:05:53

Coocoo
ゲストユーザー

Re: [解決] 外部ファイルの Get ( レイアウト名 ) を参照する検索結果について

Shinさん
ありがとうございます。

リンク先の内容は把握してると思います。
照合フィールドが違うと結果は異なるからコンテキストは適宜切り替えようね程度ですが…

念のためサンプルファイルをアップしてみました。
https://www.dropbox.com/s/73ydwneupqexr … e.zip?dl=0
#1に書き忘れてましたがOSはmacOSです。

根本的な考え違いをしてないといいんですけど、テーブル自体はデータファイルに1つなのでこれをどう当てはめるかはもう少し考えます。

#6 2019-07-08 08:48:39

Shin
メンバー

Re: [解決] 外部ファイルの Get ( レイアウト名 ) を参照する検索結果について

それでしたら、取得関数の動きでしょう。
取得関数は、その時の状態を取得するものですから、検索モードでは実レコードを評価できないので、直前に持っていた値などを参照してしまう可能性が高いでしょう。
検索条件を考え直すことをお勧めします。例えば、レイアウト名 フィールドを、 Get ( レイアウト名 ) で検索する、など。

オフライン

#7 2019-07-08 11:52:05

Coocoo
ゲストユーザー

Re: [解決] 外部ファイルの Get ( レイアウト名 ) を参照する検索結果について

現状の構成だと該当フィールドでの検索はなかなかうまくいかないものなんですね。
こちらでの検索はできないようにし別の検索条件を使用するようにします。

ありがとうございました。

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer