みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM Serverとクライアントの13Proを階の異なる2フロアで計10台ほど稼働している環境です。
全クライアントが操作できる、複数のスプリクトを連続して実行するボタンが3つあります。
各ボタンの処理時間が5分~15分程度掛かってしまうため、スプリクトの重複実行を避けるために
実行者以外のクライアントがこれらのボタンを見たときに実行中であることを分かるようにしたいです。
イメージとしては、
実行者以外のクライアントがそれらのボタンがあるレイアウトを開いたままにしていても
「実行中」などの文字で各ボタンが隠されてそれらのボタンは押せなくなる、という感じです。
(終了後は「実行中」の文字が消えて全クライアントがボタンを押せる状態に戻る)
以上、ご指導いただければ幸いです。
サーバーサイドスクリプトで処理可能な範囲でしたら、楽に作れますね。
スクリプトの中で、例えばどこかのグローバルフィールドに実行中、というフラグを立てておきます。それを、そのスクリプトの中でオンオフします。それを各クライアントのボタンに表示し、さらに、サーバーサイドスクリプトを実行、を制御します。
ただし、ボタンの表示は、レイアウトの再表示等が行われないと更新されないので、あまり意味が無いかもしれません。他のクライアントにこの状態を通知する事は、ちょっと難し鴨。とりあえずボタンは押させて、ダイアログでアラート、というのが実用的でしょう。
もう一つ、そのスクリプトがエラーで途中で停止すると、グローバルフィールドのリセットが出来ませんので、これも要注意です。
そのスクリプトの内容にもよりますが、クライアントからは、動作を予約する、という動作のみを行い、サーバーのスケジュールで予約があれば実行する、という動きにされればより簡単かもしれませんよ。私の開発中のものは、ちょっと違う運用ですが、別のシステムとのデータのやり取りで、相手の都合でマニュアルでのテキストの出力しか出来ませんので、ファイルを書き出して、FMS の Document フォルダーへファイルをコピーする事を予約条件にして、スケジュールで読み込ませています。(スクリプトの中で、処理が終了すればファイルは自動消去)もし、そのスケジュールが動く前に新しいファイルが来れば、上書きして、新ファイルを読み込ませる事になっています。
Offline
Shinさんは、お仕事でFM制作を行っているのですか?
素朴な疑問ですが。
FMSでグローバルフィールド設定しても、クライアントにはその値反映されないっしょ。
もし反映されるとしたら、それはグローバルフィールドではないかと。
うっかりしてた。
グローバルフィールドではなく、それ用のテーブルを作り、1レコードのみを作成、その中のフィールドで設定しましょう。
Offline
Pages: 1
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 509.08 KiB (Peak: 516 KiB) ]