みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM12 Go12です。
以前相談しまして、結果フィールド(ラジオボタン)の入力条件に作業者フィールドに入力していることでを条件として、入力値の自動化で式を
Case(IsEmpty(作業者);"";Self) にしました。
今回、結果フィールドにスクリプトトリガ設定をしましたので、この式は使えなくなりました。
このスクリプトの前にどの様に条件付けをすればよいのか、ご指導願います。
どんなスクリプト内容ですか?
Offline
どんなスクリプト内容ですか?
リレーションは
No(き) = No(V)
コード(き) = コード(V)
No(き) = No(F)
コード(き) = R(F)
(き)の結果フィールドのスクリプトトリガ設定はOnObjectModifyです。
# Vを確認して入力条件を満たしている事が条件でFに入力
変数を設定[$s;き::No]
# AAAの入力確認。未入力の場合はエラー表示
フィールド設定[き::コード;"AAA"]
レコード/検索条件確定
If[V::C=0]
カスタムダイヤログを表示[未入です。入力して下さい]
現在のスクリプト終了
End If
# BBBが入力条件を満たしているのか確認。満たしていなければエラー表示
フィールド設定[き::コード;"BBB"]
レコード/検索条件確定
If[V::C=1]
カスタムダイヤログを表示[既に入力済みです]
# 入力確認のためiPadに表示
フィールド設定[き::入力日時;V::TI]
フィールド設定[き::端末名;V::TE]
現在のスクリプト終了
End If
# AAAとBBBの入力条件を満たして入力
フィールド設定[き::良品数;Case(き::結果=”合”;”1”;き::結果=”不”;”0”)]
・
・
・
レイアウト切り替え[F]
新規レコード/検索条件
フィールド設定[F::L;$s]
フィールド設定[F::R;"BBB"]
フィールド設定[F::S;良品数]
・
・
・
レコード/検索条件確定
レイアウト切り替え[「入力」(き)]
If[F::L=/き::No]
カスタムダイヤログを表示[Fの入力エラー]
End If
# 入力確認のためiPadに表示
If[き::コード;"BBB"]
フィールド設定[き::日時;V入力日時::TI]
フィールド設定[き::iPad名;V端末名::TE]
End If
うーーん、わかりにくいT_T
Offline
内容はさっぱりわかりませんが、値を消すんでなく作業者フィールドに入力するまで出れなくするのではだめ?
皆様、分かりにくくて申し訳ありません。
先輩方作成のスクリプトですが実際に毎日利用しております。
作業者フィールド入力するまで出れなくするとは?
入力完了が条件で、結果フィールドが入力出来れば良いのですが。
ああ、消すだけでいいのなら、スクリプトの最初に1行追加するだけでいいのでは。
フィールド設定[結果;Case(IsEmpty(作業者);""; 結果)]
他の値が既に入ってる場合は消えてしまうけど、そういうケースはないということですよね。
ああ、消すだけでいいのなら、スクリプトの最初に1行追加するだけでいいのでは。
フィールド設定[結果;Case(IsEmpty(作業者);""; 結果)]
他の値が既に入ってる場合は消えてしまうけど、そういうケースはないということですよね。
上記式を結果フィールドのスクリプトトリガ設定内容の一番上に追加しました。
しかし作業者フィールド(チェックボックス)が未入力でも、このスクリプトが走ってしまいます。
もしかして、結果フィールドの内容が変更された時に
作業者フィールドが空欄なら、結果フィールドを空欄にする(#3のスプリクトは実行しない)
作業者フィールドが入力されているなら、#3のスプリクトを実行(結果フィールドは入力された通り)
ということをしたいのでしょうか?
その場合は
If[IsEmpty(作業者)]
フィールド設定[結果;""]
Else
#3のスプリクト内容
End If
でできると思います。
ただ、結果フィールドにもともと値が入っていて作業者フィールドが空欄の場合は結果フィールドの内容が消えてしまいますし、
結果フィールドの値をクリアしたり変更したりした場合にも#3のスプリクトが実行されてしまいますので
運用によってはもう少し手直しが必要だとは思いますが。
Offline
もしかして、結果フィールドの内容が変更された時に
作業者フィールドが空欄なら、結果フィールドを空欄にする(#3のスプリクトは実行しない)
作業者フィールドが入力されているなら、#3のスプリクトを実行(結果フィールドは入力された通り)
ということをしたいのでしょうか?
その場合は
If[IsEmpty(作業者)]
フィールド設定[結果;""]
Else
#3のスプリクト内容
End If
でできると思います。ただ、結果フィールドにもともと値が入っていて作業者フィールドが空欄の場合は結果フィールドの内容が消えてしまいますし、
結果フィールドの値をクリアしたり変更したりした場合にも#3のスプリクトが実行されてしまいますので
運用によってはもう少し手直しが必要だとは思いますが。
スクリプト内容に結果フィールドの入力情報が必要なためです。
取り敢えずにしなな様の方法で対応しております。
Pages: 1
[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 521.8 KiB (Peak: 526.34 KiB) ]