みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
現在スクリプトでチェックボックスのチェックの有無で分岐させたいのですが、
挙動が正常に動作したり誤動作したりと動作が安定しません。
試した分岐条件
・最初はフィールドの内容が「0」、「1」でifで分岐 → 不安定
if[ テーブル::チェックボックス = 1 ]
処理
Else if [ テーブル::チェックボックス = 0 ]
処理
End if
・最初はフィールドの内容が「1」もしくはそれ以外かでifで分岐 → 不安定
if[ テーブル::チェックボックス = 1 ]
処理
Else
処理
End if
・最初はフィールドの内容が「Empty」か「notEmpty」かでifで分岐 → 不安定
if[ not IsEmpty ( テーブル::チェックボックス )]
処理
Else if [ not IsEmpty ( テーブル::チェックボックス )]
処理
End if
上記の3つの条件全てテストではうまくいくものの実際のレコードで試すと、
できたりできなかったりと動作が不安定でした。
今回初めてチェックボックスを使用しましたが、挙動がうまく掴めません。
誤動作の回避方法などご存知の方いらっしゃいましたが、
ご教授いただけると幸いです。
Offline
チェックボックスセットなどのコントロールスタイルは入力方法が異なるだけで
フィールドに値を入力していることに変わりはありません。→特殊なフィールドに変わったりしない。
チェックを行った値が入っています。複数の値をチェックすると改行区切りで入っています。
チェックが入っていれば「1」、入っていなければ「0」という動きはしません。
(1と0の値一覧を設定しているとしたら別ですが......)
現在はどのような値一覧が設定されていて、求めている結果はどのようなものでしょう?
Last edited by Moz (2018-06-07 14:01:28)
Offline
ラジオボタンに変えてみては。
Offline
Moz様、Shin様
コメントありがとうございます。
求めている結果としては、
・チェックボックスが入っているときはAのフィールドにタイムスタンプ
・入っていいないときはBのフィールドにタイムスタンプを
入れるという処理です。
最初の「0」と「1」の分岐はチェックボックスに設定したフィールドの初期値を「0」に設定し
チェックされた時の「1」の2種から分岐を考えてスクリプトを組んだのですが、
できたりできなかったりといった具合です。
現在は不具合の出現率の少ない「1」か「それ以外」の2分岐で分けていますが、
それでも全体の1割ほど分岐が正しく動作しないことが分かっています。
ラジオボタンも考えましたが、操作が不慣れな方も利用するので、
なるべく選択が少ないチェックボックスの使用が希望です。
Offline
チェックボックスフィールドに割り当てている値一覧は「1」のみのカスタム値ということですかね?
チェックボックスフィールドが数字タイプフィールドになっているか確認しましょう。
正しく動作しないレコードのチェックボックスフィールドの値を確認してみましょう。
"正しく動作しない"ではなく"作った通りに動作している"というのが正解だと思いますので
「なぜか正しく動作しない」を解決するために実際のフィールド値を確認するのが大切です。
Offline
> 最初の「0」と「1」の分岐はチェックボックスに設定したフィールドの初期値を「0」に設定し
0が入力されているところへ、
1をチェックするとフィールドの値は
0
1
このように2値が入力されますよ。
> ラジオボタンも考えましたが、操作が不慣れな方も利用するので、
> なるべく選択が少ないチェックボックスの使用が希望です
これ、意味不明ですが、
一つの値のみを入力したいのなら、ラジオボタンでしょう。
Offline
( ꒪⌓꒪) 気付かんかった。
チェックボックスだとチポさん指摘の問題が発生している可能性が高いですね。
不慣れな〜はチェックボックスなら1を選択してももう1度クリックすればチェックが外れて分かりやすく
ラジオボタンでは外す際にキー操作が必要で分かりづらいということのように思いますネ。
実際には0が残ってるわけですが(汗)
ラジオボタンにしておけば1を選択すれば0は残りませんし
横にボタンでも置いておき「消去」とラベル付けたり×のアイコンにしたりして
中身をチェックボックスフィールドに0を設定するスクリプトを当てては如何でしょう。
Offline
そうですね「正しい」の定義が誤っていました。
自身の設定を再度見直してみます。ありがとうございます。
チェックボックスフィールドのタイプは数字を選択しております。
現在は特に値一覧は設定されておらず、チェックボックスの値を編集ボックスに
表示させたところ、「1」が表示されたため「1」と認識しておりました。
チェックを外すとフィールドが「空」になったため、「0」か「空」か
という分岐を考えてスクリプトを組みましたが、狙った動作をしてくれません。
入力値の自動化などから設定が必要でしょうか?
Offline
チポ様
おっしゃる通り最初は
0が入力されているところへ、
1をチェックするとフィールドの値は
0
1
に気づいて初期値の「0」を外して
「1」か「空」の分岐へ変更いたしました。
ラジオボタンに関しましては、Moz様のおっしゃった通り、
チェックした後、ご入力の際に外すことが不便なため、
チェックボックスを使用したいと考えました。
Offline
2択を一つのチェックボックス
でしたいのか。。
チェックボックスではなく、フィールドをボタンにしてもいいのでは。
Offline
> チェックした後、ご入力の際に外すことが不便なため、
まらば、初期値をなしにしておくべきでしょう。または、自動入力で1値に制限しておきラジオボタンと同じような動作にしておくとか。
Offline
その後、再度関連する設定やスクリプトを見直したし、
手直ししたところ狙った動作をしてくれることを確認しました。
みなさまのコメント・アドバイス大変参考になりました。
今回の件を通してチェックボックスの動きを深く理解できたので、
今後の開発に活かしていきたいと考えております。ありがとうございました。
Offline
Pages: 1
[ Generated in 0.010 seconds, 10 queries executed - Memory usage: 592.02 KiB (Peak: 608.56 KiB) ]