みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
クライアント:Win10 FMPro2023
サーバ:WinServer2019 FMServer2023
の環境下で作業しております。
"メニュー画面から、ボタンを押すと別DBのその内容に絞り込んだ別ウィンドウで開く" 動作のスクリプトがあります。
クライアント上では正常に動作しているのですが、
FMServerにアップロード後、"この検索条件に一致するレコードがありません" と出るようになりました。
スクリプトデバッガを掛けたところ、以下2:の検索レイアウトの切り替え 時にチェックがかかっていました(=検索実行でエラー?)
また、ステップインで一つずつ進めると、正常に展開される事が多かったため、
動作速度的なもので値の受け渡しが上手く行っていないのではないかとは思います。
どうか知恵をお貸しいただけませんでしょうか。
対象のスクリプト↓
1: 大元のボタンがある メニュー画面上のスクリプト
ファイルを開く [非表示の状態で開く:オフ; 「品目一覧」]
スクリプト実行 [指定:一覧から;[種別01一覧表示],ファイル「品目一覧」;引数:"" ]
ウィンドウを選択[名前: "品目一覧"]2: 実際にウィンドウを開く、品目一覧.fmp12のスクリプト[種別01一覧表示]
検索モードに切り替え[一時停止:オフ]
フィールド設定 [種別;"01"]
フィールド設定 [品番;"02"]
検索実行[]
レイアウト切替[表示用レイアウト;アニメーション:なし]
レコードのソート [記憶する;ダイアログあり:オフ]
レコード/検索条件/ページへ移動 [最初の]関係ないとは思いますが、2のスクリプトでレイアウト切り替えを最初にしてないので、検索実行するレイアウトが不定になるってことはないですか?
「非表示で開く」場合にファイルオプションのレイアウトが適用されるのかどうか?
関係ないとは思いますが、2のスクリプトでレイアウト切り替えを最初にしてないので、検索実行するレイアウトが不定になるってことはないですか?
「非表示で開く」場合にファイルオプションのレイアウトが適用されるのかどうか?
ファイルオプションのレイアウト指定は行っていません
(同様の動きをするスクリプトが他にも3つあるためで(種別・品番に指定する値の違いと、表示レイアウトが異なる)、全部Server上では同様のエラーが発生します)
また、2のレイアウト切り替えを一番頭に持ってきましたが、同様にエラーが発生しました。
見間違いでした。
>[非表示の状態で開く:オフ
だから非表示ではないんですね。
それなら「ファイルを開く」ステップは必要ないはずですが 動作とは関係ないですね。
しいて言えば、
>フィールド設定 [種別;"01"]
ここにテーブル名がないのが変ですね。
エラーで止まったあと「検索条件を変更」で確認して、意図した条件が設定されてますか?
しかし、このスクリプトでは特に「受け渡す」ものはないので、謎ですね。。。
レイアウト切替[表示用レイアウト;アニメーション:なし]
を最初にもっていってみればいかがでしょう
Offline
>フィールド設定 [種別;"01"]
ここにテーブル名がないのが変ですね。
すいません、ここは意図的に省略しておりました。テーブル名::種別 のようになっております。
正確に記載するべきでした、申し訳ありません。
>エラーで止まったあと「検索条件を変更」で確認して、意図した条件が設定されてますか?
はい、検索モード上の条件に値が設定されておりました。
色々検証してる最中に、試しに検索モード切替の前に、スクリプト一時停止/実行 (2秒)を入れたところ、10回程試してもエラーが発生しなくなりました(外すと再度発生します)
解決したはしたようなのですが、腑に落ちないです。
これは要するに処理の追い越しが発生していたようなのでしょうか?
エラー→"検索条件を変更"の時点で
検索項目に値が設定されていたので、設定自体は動作していたように思えたのですが
う~~ん、条件が設定されてるなら、そのまま検索実行してみるとどうなりますか?
それでエラーが出ても出なくても、ちょっとサーバ特有のバグ?としか思いつかないけど...
Shinさんからも指摘がありましたが、
>ファイルオプションのレイアウト指定は行っていません
であれば、ファイルを開いたあと何か処理を始める前に「レイアウト切り替え」を入れないと、対象レイアウトが不定になってしまいます。
(アップロード前に最後に閉じたウィンドウのレイアウトが使われると思います。あ、開くときに実行するスクリプトがあれば、別ですね...)
ただ、レイアウトが意図と違っても、テーブルが同じなら検索条件の設定も検索も支障なく動くはずなので
条件だけ設定されてて検索結果が違うというのはちょっと理由が思いつきません。
ああ、行き違いになってしまった。
最初に一時停止すると現象が消える、、、謎ですね。
あとは、呼び出しスクリプトの
>ファイルを開く [非表示の状態で開く:オフ; 「品目一覧」]
をなくしてみるとか...
別のファイルのスクリプトを実行する前にそのファイルを明示的に開く必要はないです。
でも「ファイルを開く」ヘルプの例では、そういう風に書いてありますね。
https://help.claris.com/ja/pro-help/con … -file.html
「開いたときに動作するように設定されているスクリプトは実行されます」なので、あとはそれがあるのかどうか、その内容。
FM20で複数ファイルのスクリプト同時実行が実装されたとかありましたっけ?
私はまだFM20はほとんど使ってません...
>>あとは、呼び出しスクリプトの
>>>ファイルを開く [非表示の状態で開く:オフ; 「品目一覧」]
>>をなくしてみるとか...
無効にしても確かに開かれましたが、一時停止を外した状態だと同様にエラーになりました。
>>「開いたときに動作するように設定されているスクリプトは実行されます」なので、あとはそれがあるのかどうか、その内容。
ファイル自体に指定されている、開いた時のスクリプトはありませんでした。
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 575.96 KiB (Peak: 592.87 KiB) ]