初心者のFileMaker pro Q&A

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

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


#1 2020-11-20 11:10:59

ren
ゲストユーザー

[解決] サーバー上のスクリプト実行について

◆FM18ProAddvance
◆Win10

お世話になります。
サーバー上のスクリプト実行についてに質問です。
直接スクリプトを実行した際には問題ないのですが、サーバー上のスクリプト実行から行うと思った通りの動作になりません。
動作としてはレコードの並び替えを「任意割り当てている番号:番号A」で行いたいのですが、任意のレコードではない箇所同士で並び替えが起こってしまいます。
前後で並び替えをしたいのですが、離れた位置同士で並び替えが発生してしまいます。
何か原因、解決方法があればお教え頂きたいのでよろしくお願いします。

スクリプトは以下の通りになっています。
====================================================================================
動作:各レコードに振ってある番号Aの入れ替え,番号A順のソート
====================================================================================
サーバー上のスクリプト実行[一覧から「並び替えスクリプト」;引数:Get(レコード番号);終了するまで待つ:オン]

エラー処理「オン」
レイアウト切替「目的レイアウト」
レコード/検索条件/ページ移動[ダイアログ:オフ;Get(スクリプト引数)]
変数を設定[$並び替え番号①; 値:番号A]
レコード/検索条件/ページ移動[前の;最後まで来たら終了:オン]
変数を設定[$並び替え番号②; 値:番号A]
フィールド設定[目的レイアウト:番号A: $並び替え番号①]
レコード/検索条件/ページ移動[次の;最後まで来たら終了:オン]
フィールド設定[目的レイアウト:番号A: $並び替え番号②]
レコードのソート
====================================================================================

#2 2020-11-20 11:27:48

Shin
メンバー

Re: [解決] サーバー上のスクリプト実行について

クライアントでは、ソートされた状態でスクリプトを呼び出していますね、ソートを解除した状態で同じスクリプトを走らせればどうなるか、確認してみてください。正しく動くはずです。
レコード番号は相対的なものですので、外部のスクリプトを呼び出す際には使わない方がいいです。

ざっとみたところでは、サーバーサイドで実行しないといけないようなスクリプトでは無いですが。

編集者 Shin (2020-11-20 11:32:49)

オフライン

#3 2020-11-20 11:30:43

Moz
メンバー

Re: [解決] サーバー上のスクリプト実行について

2つのレコードの「番号A」はどちらも "番号A" が入りますから、「番号A」だけでソートしたら作成順になります。
「並び替え番号1」にも「並び替え番号2」にも "番号A" を入れています。

[レコードのソート]の中身が分からないので実際はどのようなソート順なのか分かりませんが、
正しく動作する内容になっていると仮定して書きます。

[サーバー上のスクリプト実行]はファイルを開くところからスタートします。
つまりクライアント側でレコードが絞り込まれていて、そのうち2レコードを並び変えたい場合でも
[サーバー上のスクリプト実行]ではレコードは絞り込まれていません(全レコード)、
引数でレコード番号を与えたとしても、クライアントで見ている際とは異なるレコードになります。

クライアントで表示している状態の続きを[サーバー上のスクリプト実行]で実行したいなら
クライアントで表示している状態を[サーバー上のスクリプト実行]で作る必要があります。

編集者 Moz (2020-11-20 11:31:12)

オフライン

#4 2020-11-20 11:43:46

ren
ゲストユーザー

Re: [解決] サーバー上のスクリプト実行について

ご回答ありがとうございます。

お二人の言う通り、レコードソートの関係でした。
>スクリプト実行がサーバー上である必要はないのですが、処理として時間がかかってしまっていたためどちらの方が早いのかを検証したくてしていました。
>引数でのレコード移動の前に、ソートをかけてあげるとサーバー上のスクリプト実行でも動作するようになりました。
>レイアウトやレコードの指定は調べてすぐわかったのですが、ソートについては見落としていたため助かりました。ありがとうございます。

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer