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

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

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

You are not logged in.

Announcement

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


#1 2015-01-25 13:46:37

Hiro
Member

繰り返し変数を一括設定する方法ありますか?

恥ずかしながら、繰り返し変数の一括設定方が見つかりません。^^;;

繰り返し変数を、個別でなく一括で設定する妙技があれば教えてください。
繰り返しフィールドでは当然できるのに、繰り返し変数では如何に…。

例えばこんな事が出来ないかと、
・10回繰り返し変数$xを定義して各コマに自己位置を代入し、5番目の内容5を得る。
   Let($x[10]=Get(計算式繰り返し位置番号); $x[5])  →  結果: 5 が欲しいのに 無が返る

1コマ毎しか定義できないのなら、「繰り返し」変数とは一体何なんですかネ。^^

Last edited by Hiro (2015-01-25 14:24:52)

Offline

#2 2015-01-25 14:47:53

wader
Member

Re: 繰り返し変数を一括設定する方法ありますか?

Let($x[Get(計算式繰り返し位置番号)]=Get(計算式繰り返し位置番号); $x[5])
ですが、Get(計算式繰り返し位置番号)は繰り返しフィールドでないと意味が無いので?

変数のは、繰り返しという名称ですが、実際はハッシュのようなものでしょう。(繰り返し番号に特に制限がない)

Offline

#3 2015-01-26 09:58:11

scripter
Guest

Re: 繰り返し変数を一括設定する方法ありますか?

フィールドは「定義」があって、繰り返し数を指定すると1~その数まで作成されますが、変数は「定義」はない(代入すると自動作成)し、$x[10]を使ったとしても[1]や[2]ができるわけではない。

再帰で代入、はHiroさんならできてるだろうけど
Let([$i=0;$f="Let([$i=$i+1;$$x[$i]=$i];Case($i<10;Evaluate($f);$$x[5]))"];Evaluate($f))
(データビューアで確認するため$$xを使用)

#4 2015-01-27 17:35:12

barikan
Guest

Re: 繰り返し変数を一括設定する方法ありますか?

カスタム関数でやるしか無いのではないでしょうか。

関数名: SetRepetitionVariable
引数: 変数名、計算式、開始、終了

Let ( [
name = 変数名 ;
formula = 計算式 ;
start = Int ( 開始 ) ;
end = Int ( 終了 ) ;
_ = Evaluate ( "Let ( " & name & "[" & start & "] = " & Evaluate ( Quote ( formula ) ) & " ; \"\" )" )
] ;
Case (
start < end ; SetRepetitionVariable ( name ; formula ; start + 1 ; end ) ;
end < start ; SetRepetitionVariable ( name ; formula ; start - 1 ; end ) ;
)

)

あんまり出来がよくありませんが、これで例えば

変数を設定[ $_; 値:SetRepetitionVariable ( "$foo" ; "Let ( $i = $i + 1 ; $i )" ; 1 ; 3 )]

とすれば
$foo[1] = 1
$foo[2] = 2
$foo[3] = 3
となります。

#5 2015-01-27 20:03:47

Hiro
Member

Re: 繰り返し変数を一括設定する方法ありますか?

みなさんご意見ありがとうございます。
やはり、一括の設定方は無いようですネ。

あえて「繰り返し変数」と称するからには「繰り返しフィールド」に相当する設定仕様を期待しますが、やはり無いと云うことか…。
変数設定で変数名に繰り返し記号[]を付けようが付けまいが、個別単独変数としてしか定義できない以上、何の意味も無いようです。
たとえば、変数の名命で$変数[10]は、$変数(10)や$変数10 とか、さらに$変数[ten]や$変数(ten)や$変数ten などに差し替えても無頓着ということ。

Offline

#6 2015-01-27 21:16:25

wader
Member

Re: 繰り返し変数を一括設定する方法ありますか?

$変数[10]には1~10という含意はないんで、$変数[Get(UUID)]とか$変数[Code("文字列")]なんてことも可能です。

Offline

#7 2015-01-28 12:51:30

Hiro
Member

Re: 繰り返し変数を一括設定する方法ありますか?

他の言語、例えば JavaScript で云うところの変数オブジェクトの「配列」宣言、
     var x = new Array(10)
変数xを10項配列(10回繰り返し)として一発で定義。

この一発定義がFMでできないか?でしたが、
データベース・ソフトに配列がないFMって、…使え◯ェやつ…^^;;。

Offline

#8 2015-01-28 13:14:47

Shin
Member

Re: 繰り返し変数を一括設定する方法ありますか?

御意、、配列もどきしか無い
繰り返し数が設定できる様に拡張されて行っているので、そこも思いっきり拡張して欲しい物です

Offline

#9 2015-01-28 13:35:45

scripter
Guest

Re: 繰り返し変数を一括設定する方法ありますか?

カスタム関数があるんで、あんまり期待できそうにないですね。。。
変数xを配列として定義した場合に、xでまとめて引数渡しができるようになれば便利かな。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.010 seconds, 7 queries executed - Memory usage: 517.1 KiB (Peak: 521.64 KiB) ]