みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
よろしくお願いします。
Win7 Pro 64 FMA16 です。
繰り返しフィールドに何か入力されていたら その繰り返し行番号を改行で取得する方法はありますでしょうか。
例 繰り返しフィールド名 : FA 取得用のフィールド(数字):FB
繰り返し行番号 FA
1 abc
2 def
3
4
5 ghi
FB の返す値が
1
2
5
のように取得できるようにしたいです。
繰り返し行番号一行づつに対して
If ( not IsEmpty ( FA[1] ) ; 1 & ¶ ) & If ( not IsEmpty ( FA[2] ) ; 2 & ¶ )...
と設定すればできるのですが、繰り返し行行数が多くなると大変なので
もうちょっとスマートな方法があるならば
ご教授頂けると幸いです。よろしくお願いします。
Offline
簡単なのは、
・中間作業用に繰り返し[同回数の]計算フィールド「FS」を作り、その式に下式を設定、
Case(not IsEmpty(FA); Get(計算式繰り返し位置番号))
・取得用のフィールド「FB」は計算フィールドとし、その式は、
List(FS)
Offline
他に、取得用のフィールド「FB」の計算式だけで直接算出する方法だと、
少し複雑なループ式となりますが、一発で単独取得できます。
Let(
[
$n=5; // ←繰り返し回数、FieldRepetitions(ファイル名; レイアウト名; フィールド名)で自動取得も可
$i=0;
$res="";
$fnc=
"Case($i=$n; $res;
Let([
$i=$i+1;
#itm=FAフィールド[$i];
$res=List($res; Case(Length(#itm); $i))
]; Evaluate($fnc))
)"
];
Evaluate($fnc)
)
Last edited by Hiro (2017-08-22 22:02:42)
Offline
Hiroさん
できました。
異なる2つの方法を教え頂き助かりました。
ありがとうございました。
Last edited by shony (2017-08-23 09:25:35)
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 505.54 KiB (Peak: 516.52 KiB) ]