みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
繰り返し3回のフィールドがあります
ON ON ON
と入力されていて
一番左端に OFF を入力すると
OFF OFF OFF
と置き換え
二番目に ON を入力すると
ON ON OFF
一番目に ON を入力すると
ON OFF OFF
三番目に ON を入力すると
ON ON ON
三番目に OFF を入力すると
ON ON OFF
となるように
するにはどのようなスクリプトになりますか?
わかりにくいかもしれませんが
対象の繰り返し位置からみて
その右側の繰り返し位置に ON が入力されているなら ON にする
逆に 左側が OFF の場合には OFF にする
といった感じです
環境が書かれていないので スクリプトトリガーが 使えるものとして
フィールドをクリックした時に
1:そのクリックした繰り返し位置をGet
2:そのON-OFFのデータをGet
3:その2つのデータをもとに
条件分岐して
描く繰り返しに フィールド設定で データを送り込む
これをそのフィールドのスクリプトトリガーの
OnObjectModify に設定する
という流れになると思います。
Offline
Offline
繰り返し[3]フィールドへの入力は値一覧(ON/OFF)から選択入力するものとして、
【OnObjectModifyトリガ・スクリプト】
・ 変数を設定 [$pos; 値:Get(アクティブ繰り返し位置番号)]
・ 変数を設定 [$val; 値:テーブル::フィールド[$pos]]
・If [$pos=1 and $val="ON"]
・ 変数を設定 [$lst; 値:List("ON";"OFF";"OFF")]
・Else If [$pos=1 and $val="OFF"]
・ 変数を設定 [$lst; 値:List("OFF";"OFF";"OFF")]
・Else If [$pos=2 and $val="ON"]
・ 変数を設定 [$lst; 値:List("ON";"ON";"OFF")]
・Else If [$pos=2 and $val="OFF"]
・ 変数を設定 [$lst; 値:List("ON";"OFF";"OFF")]
・Else If [$pos=3 and $val="ON"]
・ 変数を設定 [$lst; 値:List("ON";"ON";"ON")]
・Else If [$pos=3 and $val="OFF"]
・ 変数を設定 [$lst; 値:List("ON";"ON";"OFF")]
・End If
・Loop
・ 変数を設定 [$i; 値:$i+1]
・ フィールド設定 [テーブル::フィールド[$i]; GetValue($lst; $i)]
・ Exit Loop If [$i=3]
・End Loop
【補足】 上記スクリプト20ステップは、より短く6ステップで書けますネ。
・ 変数を設定 [$lst; 値: ※下式]
・Loop
・ 変数を設定 [$i; 値:$i+1]
・ フィールド設定 [テーブル::フィールド[$i]; GetValue($lst; $i)]
・ Exit Loop If [$i=3]
・End Loop
-------------------------------------------------------------
Let([
$pos=Get(アクティブ繰り返し位置番号);
$val=テーブル::フィールド[$pos]
];
Case(
$pos=1 and $val="ON"; List("ON";"OFF";"OFF");
$pos=1 and $val="OFF"; List("OFF";"OFF";"OFF");
$pos=2 and $val="ON"; List("ON";"ON";"OFF");
$pos=2 and $val="OFF"; List("ON";"OFF";"OFF");
$pos=3 and $val="ON"; List("ON";"ON";"ON");
$pos=3 and $val="OFF"; List("ON";"ON";"OFF")
)
)
-------------------------------------------------------------
Last edited by Hiro (2016-12-27 01:05:06)
Offline
こんなのでもいいのかな?サンプル
6繰り返しにしてみたけど、これも勿論検証不十分。
タブ移動は外してます。
http://pupld.net/21/161227/c09i0vk5c3/index.cgi
オンオフ.fmp12
Offline
> #5 旅人さん
確かに、繰り返し回数が増えるとインデックス参照方式は
加速度的に複雑になるので、#5サンプルの考え方の方が
簡潔で良さそうですネ。
Last edited by Hiro (2016-12-27 22:35:11)
Offline
クリックした位置を反転
ONになった場合は左からそこまでをON(残りはOFFのまま)にする
OFFになった場合はそこから右をOFF(残りはONのまま)にする
じゃないのかな。
Pages: 1
[ Generated in 0.012 seconds, 9 queries executed - Memory usage: 518.68 KiB (Peak: 523.59 KiB) ]