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

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

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

You are not logged in.

Announcement

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


#1 2017-08-22 19:03:45

shony
Member

繰り返しフィールドにつきまして

よろしくお願いします。
Win7 Pro 64 FMA16 です。

繰り返しフィールドに何か入力されていたら その繰り返し行番号を改行で取得する方法はありますでしょうか。

例 繰り返しフィールド名 : FA                    取得用のフィールド(数字):FB

繰り返し行番号 FA   
1        abc
2        def


5       ghi

FB の返す値が
1
2
5

のように取得できるようにしたいです。
繰り返し行番号一行づつに対して
If ( not IsEmpty ( FA[1] ) ; 1 & ¶  ) & If ( not IsEmpty ( FA[2] ) ; 2 & ¶  )...
と設定すればできるのですが、繰り返し行行数が多くなると大変なので
もうちょっとスマートな方法があるならば
ご教授頂けると幸いです。よろしくお願いします。

Offline

#2 2017-08-22 20:17:53

Hiro
Member

Re: 繰り返しフィールドにつきまして

簡単なのは、

・中間作業用に繰り返し[同回数の]計算フィールド「FS」を作り、その式に下式を設定、
      Case(not IsEmpty(FA); Get(計算式繰り返し位置番号))

・取得用のフィールド「FB」は計算フィールドとし、その式は、
      List(FS)

Offline

#3 2017-08-22 22:00:47

Hiro
Member

Re: 繰り返しフィールドにつきまして

他に、取得用のフィールド「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

#4 2017-08-23 09:24:58

shony
Member

Re: 繰り返しフィールドにつきまして

Hiroさん
できました。
異なる2つの方法を教え頂き助かりました。
ありがとうございました。

Last edited by shony (2017-08-23 09:25:35)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 505.6 KiB (Peak: 516.34 KiB) ]