みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
環境:FMP17 MAC
複数ある繰り返しフィールドの内容をカウントする際に繰り返しフィールド名を動的に指定したいと考えてます。
繰り返しフィールド1 [5]
1 1 0 0 1
繰り返しフィールド2 [10]
2 0 1 0 0 0 0 3 0 5
繰り返しフィールド3 [2]
0 3
フィールド名の1、2、3の部分をloopスクリプトで増加させて動的にフィールド指定して数値を取得したいを考えてます。
変数を使用すれば取得できると思ったのですが「?」になって失敗してしまいます。
[成功]
Count(繰り返しフィールド1) → 3
[失敗]
$loop = 1
$target = "繰り返しフィールド" & $loop
Count( $target ) → ?
原因は分からず頭を抱えてます。
解決方法わかる方いらっしゃいますか?
フィールド名を計算式で指定して値を得るには、GetFieldかEvaluateを使います。
この場合はフィールド値を直接得るのではなく、フィールド参照をCountの引数に使いたいので、こうかな?
Evaluate ( "Count( 繰り返しフィールド" & $loop & " )" )
あ、テーブル定義状態(リレーション設定)によっては、テーブル::フィールド 形式にしないとだめかもしれません。
>原因は分からず
Count( $target )
だと、
Count(繰り返しフィールド1)
ではなく
Count("繰り返しフィールド1")
を計算することになるからです。
実験してみたら、GetFieldでもEvaluateでも、
Count(GetField"繰り返しフィールド1"))
形式でもOKですね。
GetFieldのヘルプで
https://help.claris.com/ja/pro-help/con … field.html
「~~そのフィールドの内容を返します。」と書いてありますが、嘘ですね...フィールド参照を返してますね。
(内容を返すとしたら、Count(繰り返しフィールド1の1番目の値)を計算するはず)
>himadaneeさま
ありがとうございます。
問題なく動作できました。
また細かい解説までしていただき、大変勉強になりました。
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 548.8 KiB (Peak: 579.81 KiB) ]