みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
管理人様、大変申し訳ありません。
間違えてTopicsへ同記事を書いてしまいました。
お手数おかけして申し訳ありませんが削除の程お願いいたします。
---
計算式の中で入力または文字列演算子のフィールド名を利用する方法はありますか?
近しい記事が見つけられなかった為アドバイス頂けますと幸いです。
FileMaker18を使っています。
例えばですが、1レコードの中で
DATA1
DATA2
DATA3
・
・
・
DATA99
DATA100
というフィールドがあったとします。
スクリプトの中でLoopを使い、100個のフィールドに規則的かつ簡単な処理がしたいと考えております。
(例えばIF文で中身の比較など)
単純に考えてしまうとLoopの回数を変数$LOOPでカウントするとして、
フィールド名を”DATA” & $LOOPのように指定できればとてもスマートなのですが
「フィールドを名前で設定」のような形でフィールド名を指定して計算式に組み込む事は出来ないのでしょうか。
かなり初歩レベルな質問で申し訳ありませんがよろしくお願いいたします。
GetFiledとかEvaluateが使えます。
100個個別に作らないで繰り返し100のフィールドにしておけば
DATA[$LOOP]
と書けるのでもっと簡単かも?
レイアウトで個別に扱いたい場合はかえって面倒になるし、個別に検索したいとかいう場合はダメですが...
himadanee様
早速のアドバイスありがとうございます。
仰る通り繰り返しフィールドでは別の部分で綻びが出るので避けました。
説明では省略してしまったのですが、
「DATA1|DATE」「DATA1|TEMP」「DATE1|WEATHER」などDATA1という構造にしておきたい要素が
複数あり、今回の様な計算式でのフィールド処理が出来るとスクリプトがかなりスマートになるので試行錯誤しておりました。
早速GetFiled、Evaluateを調べてみます! ありがとうございました。
ちなみに IF文などでと記したのは、
$LOOP = 1
loop
IF ( isEmpty ( "DATA" & $LOOP & "|DATE" ) & isEmpty ( "DATA" & $LOOP & "|TEMP" ) & isEmpty ( "DATA" & $LOOP & "|WEATHER" )
全て空だった時の処理
end if
$LOOP = $LOOP + 1
end loop
のような事をかんがえておりました。
根本的に構造を変更して、
そのレコードにたいして関連テーブルに100レコードを作り、それを比較する、という処理にすると、非常に簡単になるのでは。$loop の代わりに、GetNthRecord() が使えます。
Offline
[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 511.3 KiB (Peak: 518.34 KiB) ]