初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-12-05 16:36:56

sora
Guest

スクリプトトリガの実行条件

FM12 Go12です。
以前相談しまして、結果フィールド(ラジオボタン)の入力条件に作業者フィールドに入力していることでを条件として、入力値の自動化で式を
Case(IsEmpty(作業者);"";Self) にしました。

今回、結果フィールドにスクリプトトリガ設定をしましたので、この式は使えなくなりました。
このスクリプトの前にどの様に条件付けをすればよいのか、ご指導願います。

#2 2014-12-05 17:19:05

旅人
Member

Re: スクリプトトリガの実行条件

どんなスクリプト内容ですか?

Offline

#3 2014-12-08 14:07:44

sora
Guest

Re: スクリプトトリガの実行条件

旅人 wrote:

どんなスクリプト内容ですか?


リレーションは
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

#4 2014-12-08 17:59:32

旅人
Member

Re: スクリプトトリガの実行条件

うーーん、わかりにくいT_T

Offline

#5 2014-12-09 12:24:40

tim
Guest

Re: スクリプトトリガの実行条件

内容はさっぱりわかりませんが、値を消すんでなく作業者フィールドに入力するまで出れなくするのではだめ?

#6 2014-12-10 15:26:30

sora
Guest

Re: スクリプトトリガの実行条件

皆様、分かりにくくて申し訳ありません。
先輩方作成のスクリプトですが実際に毎日利用しております。

作業者フィールド入力するまで出れなくするとは?
入力完了が条件で、結果フィールドが入力出来れば良いのですが。

#7 2014-12-10 15:43:47

saver
Guest

Re: スクリプトトリガの実行条件

ああ、消すだけでいいのなら、スクリプトの最初に1行追加するだけでいいのでは。
フィールド設定[結果;Case(IsEmpty(作業者);""; 結果)]
他の値が既に入ってる場合は消えてしまうけど、そういうケースはないということですよね。

#8 2014-12-18 14:23:45

sora
Guest

Re: スクリプトトリガの実行条件

saver wrote:

ああ、消すだけでいいのなら、スクリプトの最初に1行追加するだけでいいのでは。
フィールド設定[結果;Case(IsEmpty(作業者);""; 結果)]
他の値が既に入ってる場合は消えてしまうけど、そういうケースはないということですよね。

上記式を結果フィールドのスクリプトトリガ設定内容の一番上に追加しました。
しかし作業者フィールド(チェックボックス)が未入力でも、このスクリプトが走ってしまいます。

#9 2014-12-19 10:35:31

にしなな
Member

Re: スクリプトトリガの実行条件

もしかして、結果フィールドの内容が変更された時に
作業者フィールドが空欄なら、結果フィールドを空欄にする(#3のスプリクトは実行しない)
作業者フィールドが入力されているなら、#3のスプリクトを実行(結果フィールドは入力された通り)
ということをしたいのでしょうか?
その場合は
If[IsEmpty(作業者)]
  フィールド設定[結果;""]
Else
  #3のスプリクト内容
End If
でできると思います。

ただ、結果フィールドにもともと値が入っていて作業者フィールドが空欄の場合は結果フィールドの内容が消えてしまいますし、
結果フィールドの値をクリアしたり変更したりした場合にも#3のスプリクトが実行されてしまいますので
運用によってはもう少し手直しが必要だとは思いますが。

Offline

#10 2014-12-25 10:02:14

sora
Guest

Re: スクリプトトリガの実行条件

にしなな wrote:

もしかして、結果フィールドの内容が変更された時に
作業者フィールドが空欄なら、結果フィールドを空欄にする(#3のスプリクトは実行しない)
作業者フィールドが入力されているなら、#3のスプリクトを実行(結果フィールドは入力された通り)
ということをしたいのでしょうか?
その場合は
If[IsEmpty(作業者)]
  フィールド設定[結果;""]
Else
  #3のスプリクト内容
End If
でできると思います。

ただ、結果フィールドにもともと値が入っていて作業者フィールドが空欄の場合は結果フィールドの内容が消えてしまいますし、
結果フィールドの値をクリアしたり変更したりした場合にも#3のスプリクトが実行されてしまいますので
運用によってはもう少し手直しが必要だとは思いますが。

スクリプト内容に結果フィールドの入力情報が必要なためです。
取り敢えずにしなな様の方法で対応しております。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 520.63 KiB (Peak: 525.16 KiB) ]