みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも勉強させていただいています。
早速ですが、質問です。
現在、あるファイルメーカーをキックするために
空のファイルメーカーファイルを作成しました。
キックする側をファイルA、キックされる側をファイルBとします。
このファイルAに『起動』という名前で以下のようなスクリプトを
組みました。
スクリプト:
ファイルを開く[ファイルB]
ファイルを閉じる[現在のファイル]
さらにこれを『ファイルオプション』の『このファイルを開く時』の
『実行するスクリプト』に設定しました。
実行すると、動き自体はこちらの意図したとおりに動いてくれたので
良かったのですが、ここで一つ問題が。
それはファイルAの中身が全く見れなくなってしまったということです。
ファイルAを起動するとスクリプトが動いてしまってファイルBを開いてしまいます。
そうすると、ファイルAは閉じてしまうので見れません。
アクセスだと、『Shift』を押しながらファイルをクリックすると起動時のオプションを
無効にして起動できるんですが、ファイルメーカーにはそういった機能はないのでしょうか?
当方の環境は、
OS:Win7
FM:ファイルメーカー11Pro
です。
一応、ファイルAのバックアップは取ってあるのでそれを上書きしてしまえばいいのですが
何かいい方法があればお教えいただきたいと思います。
ファイルBをどこか別の場所にうつせばファイルAのスクリプトがファイル指定ダイアログを出すでしょう。
ダイアログをキャンセルするとスクリプト続行のダイアログが出るので続行しなければ次のステップにいかず閉じるを回避できるでしょう。
(未検証なので悪しからず
Offline
戻ってきたので検証結果を。
上の投稿で書いた方法でスクリプトを止められますのでファイルA開くことはできます。
ただし、
・エラー処理[オン]
・ユーザによる強制終了を許可[オフ]
のいずれかが[ファイルを開く]より前に入っていたらこの方法はだめです。
※FileMaker Pro 11 Advanced をお持ちならスクリプトデバッガを使えば面倒なことをせずスクリプトを止められます。
Offline
Moz様、返信ありがとうございます。
戻ってきたので検証結果を。
上の投稿で書いた方法でスクリプトを止められますのでファイルA開くことはできます。
ただし、
・エラー処理[オン]
・ユーザによる強制終了を許可[オフ]
のいずれかが[ファイルを開く]より前に入っていたらこの方法はだめです。※FileMaker Pro 11 Advanced をお持ちならスクリプトデバッガを使えば面倒なことをせずスクリプトを止められます。
なるほど。一応方法はあるようですね。ちなみに『Advanced』は所有していません。
ただ、この方法は当方では使えないと思います。
まず第一に、Moz様もお書きになったように『エラー処理[オン]』と『ユーザによる強制終了を許可[オフ]』を
使用しています。
第二に、ファイルはファイルメーカーサーバー上にあるのでどこかに持っていくということができません。
スイマセン。最初に詳しく書いとけばよかった。
でも、そうなると有効にしないようにするにはどうしたらいいのでしょうか?
スクリプトにIFでも仕込んで閉じないようにする方法しかないのかな?。
FileMaker Server でも Admin Console から ファイルB を閉じれば同じようにエラーは起こせます。
が、今回のケースでは[エラー処理][ユーザによる強制終了を許可]のためボツ案ですね。
ファイルAを開かずファイルAの設定を変更する方法はないので
FileMaker Pro 11 Advanced が無いとすると"詰んだ"かも知れません(汗)
Offline
エスケープ用にスクリプトをもうひとつ
If[Code ( Get (トリガキー入力) = 27 )]
全スクリプト終了
End If
これをフィールドのスクリプトトリガOnObjectKeystrokeに指定します。
元のスクリプトの最初に
フィールド移動(上記のフィールド)
スクリプト一時停止[1秒?]
を加えます。
スクリプト停止中にescキーを押すとスクリプトが終了します。
気に入らないかな・・
Last edited by チポ (2016-02-09 13:44:42)
Offline
あれ。。。
もしかして私勘違いをしていてファイルAを開いてスクリプトを修正できる状態ですか?
Offline
ん?
私が勘違いしていますか?
ファイルAを開いたまま止めることができない?
Offline
チポさんのを見て思いつき、ファイルBに[全スクリプト終了]だけのスクリプトを作って
ファイルBのファイルオプションで[実行するスクリプト]に設定するとファイルB開いた瞬間にファイルAを閉じるがキャンセルされますね。
【補足】
ファイルAが開いたと同時に[実行するスクリプト]で閉じてしまって手が加えられなくなった状態を
FileMaker Pro 11 Advanced なしで何とかする方法のアイデアです。
Last edited by Moz (2016-02-09 13:50:45)
Offline
私のアイデアは、
以後の運用でエスケープする方法です。
Offline
チポ様、Moz様返信ありがとうございます。
私の説明が下手なせいでお二人を混乱させてしまったようで
申し訳ありません。
うまく説明できるかわかりませんが、
ファイルAはローカルに置きファイルBはサーバー上に置きます。
やりたいことは、
1.ローカルにあるファイルAを起動するとサーバー上のファイルBが起動する。
2.ファイルBが起動したらファイルAを閉じる。
です。
スクリプト自体はすぐに組めて1・2実現も簡単でした。
しかし、ファイルAはテストで作ったためまだ起動画面やスクリプトの整理が
終わっていないので改めて中を整理しようと思ってクリックしたら
当然、ファイルオプションに設定されているとおり動いてしまって
中の整理ができなくなってしまった。
この時、気づいたのは
『今後、この起動画面を修正したりするときに中身が見れない』ことでした。
それで『Shiftかなんか押してスクリプトの起動が無効にできないかな?』と
いう質問になったわけです。
そのことは最初のMoz様とのやり取りでできないことが判明しましたので
最初に作ったファイルはバックアップと入れ替えて新たにエスケープする方法を
模索する必要になったわけです。
で、その方法はチポ様のアイディアをそのままいただくことにしまして
組み込んだところ成功しました。
これなら、BIOSの設定を開くみたいにできるので動きとしては望ましいです。
ですので、この方法で行こうと思います。
お二人にはお手数をお掛けしました。ありがとうございました。
Pages: 1
[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 540.5 KiB (Peak: 561.04 KiB) ]