7 返信 最新の回答 日時: Feb 1, 2017 10:45 PM ユーザー:user27645

    レイアウトにスクリプトトリガを実装した状態でも、ソートを保持しておく方法はありますか?

    user27645

      いつもお世話になっております。

      現在レイアウトにスクリプトトリガを設定し、ポータルに値を入れた際の合計計算や

      レイアウト起動時に、ズームを固定する処理を組み込んでおります。

       

      この状態で、ソートを行うと、その実行した時だけは、ソートされるのですが、

      異なるレイアウトに移動した際や、一度ファイルメーカーを終了させてから

      再度起動した場合、ソートが維持されずに、消えてしまいます。

      「ソートされた順位でレコードを保持」にチェックを入れても、消えてしまいました。

       

      パターン1

      異なるレイアウトに移動した後に、そのスクリプトトリガを実装したレイアウトに戻った場合

       

      パターン2

      ファイルメーカーを一度終了させた場合

       

      パターン1の場合は、ソート優先順位欄には、ソートした項目名は残っておりますが、レコードはソートされない状態でした。

      パターン2の場合は、ソート優先順位欄もクリアされ、レコードもソートされない状態でした。

       

      レイアウトにスクリプトトリガを実装した状態でも、レコードがソートされた状態を保持しておく方法はありますか?

       

      以上、よろしくお願い致します。

       

      環境

      サーバ:FileMaker Server ver15

      パソコン:FileMaker Pro ver15

      iPad:FileMaker  Go ver15

        • 1. Re: レイアウトにスクリプトトリガを実装した状態でも、ソートを保持しておく方法はありますか?
          user14047

          クライアントとして開いた場合は、再度ファイルを開き直すとソート状態は失われます。

          (FileMaker Server でホストされたファイルではなく、ローカルで開いて最後に保存された状態になります)

           

          レイアウト起動時のスクリプトというのを OnLayoutEnter スクリプトトリガで指定されたスクリプトと読み替えますが、

          そのスクリプトにソートスクリプトステップを入れてみてはいかがでしょうか?

          1 人中 1 人が役に立つと言っています
          • 2. Re: レイアウトにスクリプトトリガを実装した状態でも、ソートを保持しておく方法はありますか?
            user27645

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

             

            はい、パソコンのクライアント側と iPad の中に

            各端末毎にプログラムの fmp12 ファイルを置きまして

            各端末毎に各人がソートしております。

             

            データは、FileMaker Server に置いて、クライアント

            端末から参照しております。

             

            ローカルにプログラム用の fmp12 が置いてあるのですが

            そこでソートを実行し「ソートされた順位でレコードを保持」に

            チェックを入れても保持されないのでした。

             

            プログラムしか格納されていない fmp12 ファイルでは

            ソートを保持できない仕様なのでしょうか?

             

             

             

            >レイアウト起動時のスクリプトというのを OnLayoutEnter スクリプトトリガで指定されたスクリプトと読み替えますが、

            そのスクリプトにソートスクリプトステップを入れてみてはいかがでしょうか?

             

            その通りでした、OnLayoutEnter でズーム固定しておりました。

             

            起動時の OnLayoutEnter スクリプトトリガで使用しているスクリプトに

            ソートを組み込むしか、手はありませんでしょうか?

             

            どうぞよろしくお願いいたします。

            • 3. Re: レイアウトにスクリプトトリガを実装した状態でも、ソートを保持しておく方法はありますか?
              user14047

              ローカルにプログラム用の fmp12 が置いてあるのですが

              そこでソートを実行し「ソートされた順位でレコードを保持」に

              チェックを入れても保持されないのでした。

              ローカルにあるファイルなら、レイアウトに関連づけされたテーブルのデータソースがホストされたファイルであろうとソートは保持されるかと。

              スクリプトトリガで指定されたスクリプトのどこかでソートを解除するようなステップが入っていませんか?

              FileMaker Pro Advanced であれば、スクリプトデバッガで簡単に追えるですが...

               

              FileMaker Pro 15 ヘルプ : スクリプトのデバッグ ( FileMaker Pro Advanced )

              1 人中 1 人が役に立つと言っています
              • 4. Re: レイアウトにスクリプトトリガを実装した状態でも、ソートを保持しておく方法はありますか?
                user27645

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

                 

                >スクリプトトリガで指定されたスクリプトのどこかでソートを解除するようなステップが入っていませんか?

                 

                運用している他のパソコンと違い、私のパソコンは開発用に Advanced になっておりました。

                デバッガを使用できます。

                 

                レイアウト起動時に実行されるステップ内に「レコードのソート解除」というステップは無いのですが

                この解除以外にも、自動的にソートが解除される命令があるということでしょうか?

                 

                その起動時スクリプトでは、以下のスクリプトを実行しています。

                ユーザによる強制終了を許可オフ

                変数を設定

                ウィンドウの固定

                エラー処理オン

                検索モードに切り替え一時停止オフ

                レイアウト切替

                フィールド設定(ここで各人の担当分だけを表示するようにしています。)

                検索実行

                Get最終エラー

                全レコード表示(レコード無しの場合)

                ウィンドウのスクロールHome

                 

                このスクリプトを中断しながら、どの行でソートが解除となるのか、確認してみます。

                助言等、ありがとうございます。

                 

                また結果を書き込みたいと思います。

                • 5. Re: レイアウトにスクリプトトリガを実装した状態でも、ソートを保持しておく方法はありますか?
                  user14047

                  検索実行した段階でソート状態は解除されますよ。

                  これは手動で検索しても同じです。検索後に作成順になるのは仕様です。

                   

                  各人それぞれソート順が同じであれば、スクリプトにそのソート順を記憶させたスクリプトステップを追加。

                  もし、それぞれでソート順が異なるのであれば、なんらかの設定データからソートするフィールドへ移動して [レコードをフィールド順でソート] スクリプトステップをうまく使ってなんとかできませんかね?

                  FileMaker Pro 15 ヘルプ : レコードをフィールド順でソート(スクリプトステップ)

                  1 人中 1 人が役に立つと言っています
                  • 6. Re: レイアウトにスクリプトトリガを実装した状態でも、ソートを保持しておく方法はありますか?
                    user27645

                    検索実行」で、ソートが解除されました。

                     

                    各担当者で、絞り込みを行うことが必須仕様のため、「検索実行」をやらない訳にはいきませんでした。

                     

                    その場合、ソートを解除しないようなオプションが「検索実行」にはありませんので

                    少し前に回答いただいた助言にあるソートスクリプトステップを入れるしか

                    手はないと考えて良いのでしょうか?

                     

                    よろしくお願いいたします。

                    • 7. Re: レイアウトにスクリプトトリガを実装した状態でも、ソートを保持しておく方法はありますか?
                      user27645

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

                       

                      >各人それぞれソート順が同じであれば、スクリプトにそのソート順を記憶させたスクリプトステップを追加。

                      もし、それぞれでソート順が異なるのであれば、なんらかの設定データからソートするフィールドへ移動して [レコードをフィールド順でソート] スクリプトステップをうまく使ってなんとかできませんかね?

                       

                      今は、特定のコードでソートスクリプトを1行追加してみます。

                      「デフォルトでは、コード順で並びます。それ以外のソートを行いたい場合は、一回一回ソートを押して下さい。」という

                      操作をお願いしてみます。

                       

                      機能強化として、各人毎の設定を持ち、そのフィールド毎に並び替えが走る機能を提案してみます。

                       

                      何度も助言をいただき、ありがとうございました。

                      勉強になりました。