初心者のFileMaker pro Q&A (旧掲示板)

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

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2023-02-18 01:45:58

UMA
Guest

Countする繰り返しフィールドを動的に指定

環境: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 ) → ?

原因は分からず頭を抱えてます。
解決方法わかる方いらっしゃいますか?

#2 2023-02-18 06:55:43

himadanee
Guest

Re: Countする繰り返しフィールドを動的に指定

フィールド名を計算式で指定して値を得るには、GetFieldかEvaluateを使います。
この場合はフィールド値を直接得るのではなく、フィールド参照をCountの引数に使いたいので、こうかな?
Evaluate ( "Count( 繰り返しフィールド" & $loop & " )" )

#3 2023-02-18 07:05:09

himadanee
Guest

Re: Countする繰り返しフィールドを動的に指定

あ、テーブル定義状態(リレーション設定)によっては、テーブル::フィールド 形式にしないとだめかもしれません。

>原因は分からず
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番目の値)を計算するはず)

#4 2023-02-18 23:20:48

UMA
Guest

Re: Countする繰り返しフィールドを動的に指定

>himadaneeさま
ありがとうございます。
問題なく動作できました。
また細かい解説までしていただき、大変勉強になりました。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 550.78 KiB (Peak: 582.05 KiB) ]