みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
みなさん、こんばんは。先日cybe さんが質問された「レコードに特定文字が入ったらプレビュー表示で特定文字を表示させたい」の内容について教えてください。
例えば
1レコード目の型番 111
2レコード目の型番 222
3レコード目の型番 幕板
4レコード目の型番 444
5レコード目の型番 幕板
の場合、
(1)(型番="幕板")はどんな値を返すのですか?
(2)$cnt=$cnt+(型番="幕板")はどんな値を返すのですか?
(3)Get(レコード番号)=Get(対象レコード数) and $cntはどんな値を返すのですか?
その時、何故”幕板"を返すのか、その点教えていただけませんか?よろしくお願いします。
Offline
> (1)(型番="幕板")はどんな値を返すのですか?
式は論理式で論理値(真は1、偽は0)を返します。
「型番フィールド値が"幕板"と等値か?」に、ハイは「1」を、イイエは「0」を返します。
> (2)$cnt=$cnt+(型番="幕板")はどんな値を返すのですか?
この式はLet内変数の定義式です。
型番="幕板"のレコード数を累積する変数$cntを定義しています。
右辺式は自己回帰式で、右辺の$cntは前回のカウント累計結果が入ります。
> (3)Get(レコード番号)=Get(対象レコード数) and $cntはどんな値を返すのですか?
これは論理判別式で、論理値を返します。
式、判別条件の意味は、
最後のレコード、かつ "幕板"レコードがある($cntが真(0以外の整数))か? です。
その意図は、中途書込み負荷を軽減する為最後のレコードに限定して、変数$cntの最終累計結果を識別させている。
なお、グローバルフィールドに全置換を掛ける用法は、面倒で冗長なLoopスクリプトに対する代替ショートカット策です。
参考 元ページ:https://fm-aid.com/bbs2/viewtopic.php?pid=12942#p12942
Last edited by Hiro (2014-08-23 00:49:25)
Offline
Hiro さん、詳細な解説ありがとうございました。
>>> (1)(型番="幕板")はどんな値を返すのですか?
>>式は論理式で論理値(真は1、偽は0)を返します。
なるほどー。
>>なお、グローバルフィールドに全置換を掛ける用法は、面倒で冗長なLoopスクリプトに対する代替ショートカット策です。
へぇー、こんな事出来るんですね。
どうもありがとうございました。大変参考になりました。
Offline
[ Generated in 0.018 seconds, 9 queries executed - Memory usage: 507.71 KiB (Peak: 518.04 KiB) ]