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

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

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

You are not logged in.

Announcement

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


#1 2013-11-25 04:23:55

cusk
Guest

フィールドがアクティブになっている状態を自動で解除したい

お世話になっております。

Mac FM11、FMserver11
6台ほどのMacでファイルメーカーを開いているのですが、フィールドがアクティブになったままの状態で放置されていることがあり、VPNなので外部からメンテナンスをしようとすると「使用中のため変更できません」となることがあります。
特定のフィールドであれば、OnTimerScriptなどでフィールドアウトさせることができたのですが、フィールドが60近くあるファイルの場合、全部にScriptをつけることができません。開かれているファイルが自動で(例えば30秒後に)全てのフィールドからフィールドアウトさせることはできないでしょうか?
何とぞよろしくお願いいたします。

#2 2013-11-25 14:30:10

Shin
Member

Re: フィールドがアクティブになっている状態を自動で解除したい

レイアウトモードで、フィールドを複数選択した状態でトリガーの設定を行うと、同時に設定が可能ですよ。

Offline

#3 2013-11-26 05:46:27

cusk
Guest

Re: フィールドがアクティブになっている状態を自動で解除したい

Shinさん

ありがとうございます。
やはりスクリプトをフィールド1つずつ仕掛けるしかないでしょうか。

#4 2013-11-26 08:46:02

keima
Member

Re: フィールドがアクティブになっている状態を自動で解除したい

コマンド+A ですべてのフィールドを選択してから右クリックでトリガにすれば。

Offline

#5 2013-11-26 08:57:15

Layouter
Guest

Re: フィールドがアクティブになっている状態を自動で解除したい

他の目的でそのトリガを使いたいフィールドがある場合は、ちょっとめんどうかも。まあしょうがないでしょう。

無条件にonTimerでGet(開いているレコード数)を監視するといいかな?
でも閉じたのが検出できないか。

#6 2013-11-26 09:41:59

keima
Member

Re: フィールドがアクティブになっている状態を自動で解除したい

Shift を押しながらフィールドをクリックすれば、解除/選択 できますよ。
レイアウト側のトリガでできないんでしょうか・・。

Offline

#7 2013-11-26 10:32:47

Layouter
Guest

Re: フィールドがアクティブになっている状態を自動で解除したい

閉じたのは、onRecordCommitとRevertで検出できますね。
あとはGet(レコードID)で同じレコードを開き続けてる場合だけ自動解除(レコード復帰)にすればいいかな。

自動解除用のスクリプトを二度と直さないならいいんですけどね。
どれが別のスクリプトを設定してあるのか一目でわからないし、分かったとしても解除漏れしてしまったり...

#8 2013-11-26 11:07:05

チポ
Member

Re: フィールドがアクティブになっている状態を自動で解除したい

検証不足ですが、、


スクリプト
  OnTimer スクリプトをインストール[]
  If [Get( アクティブフィールド名) = $$変数 ]
   レコード確定
   $$変数 = ""
  Else
   $$変数 = Get( アクティブフィールド名)
  End If
  OnTimer スクリプトをインストール[このスクリプト ; 間隔:30]

これをトリガ
OnRecordLoad
で実行。

途中でフィールド移動したときには、その後30秒以上になっちゃいますが、
目的は達成できるかと。。


また、トリガ
  OnLayoutExit
で、
  OnTimer スクリプト
を止めればいいですね。

Offline

#9 2013-11-27 04:57:27

cusk
Guest

Re: フィールドがアクティブになっている状態を自動で解除したい

> みなさま

ありがとうございました。
実は恥ずかしながらレイアウトトリガとして仕掛ける「OnRecord」を知らず(ずっとOnObjectだけ使っておりました)、
フィールド数が結構あるので面倒だなあと思っておりました(^^;;)
チポさんの投稿で実行いたします。
またこれは仕様なのと、一部動きに反するところがあるのでしょうがないのでしょうが、「空欄不可」のフィールドがあっても
そのままフィールドアウトが実行されてしまうので、空欄不可のフィールドも空欄になってしまいますね。
ここで「空欄がある」旨のメッセージが出ればいいのでしょうが、そうすると結局フィールドアウトしない状態になってしまいますね(^^;;)

本当にありがとうございました。

#10 2013-11-27 06:53:37

wader
Member

Re: フィールドがアクティブになっている状態を自動で解除したい

レコード確定でなくレコード復帰にすればいいのでは。他のフィールドで未確定だった分も破棄されますが。

Offline

#11 2013-11-27 09:29:31

チポ
Member

Re: フィールドがアクティブになっている状態を自動で解除したい

状況が分かりませんが、
新規レコードの場合、
レコード確定で「入力値の制限を無視」
としていなければ、入力値の制限は効きますよ。

Offline

#12 2013-11-27 09:52:00

Layouter
Guest

Re: フィールドがアクティブになっている状態を自動で解除したい

フィールドアウトしないと意味ないので、未確定の入力は全部破棄するしかないのかな。
エラー処理[オン]
レコード確定[ダイアログなし]
If[Get(最終エラー)]
レコード復帰[ダイアログなし]
EndIf
とすれば、少しはまし?

中途半端に確定させるのがいいのかどうか、利用者とよく相談しないと

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 564.52 KiB (Peak: 579.8 KiB) ]