7 返信 最新の回答 日時: Mar 11, 2016 9:03 PM ユーザー:parc_box

    対象レコードの拡大の使い方について。

    parc_box

      お世話になっております。

      当方、Windows7、FileMakerPro14環境です、

       

      普段、ファイルメーカーで作成した日報の中で、一つの製品の賞味期限は「賞味期限1」~「賞味期限9」で記録してます。

       

      ──で、製品名と賞味期限から検索を掛ける際に次の様に動作するスクリプトを用意できればラクだろうなと思い立ち、検索モードに切り替えた後、製品名を入力し、別途用意した「賞味期限検索」フィールドに日付を入力して、次の様に動作する【検索実行】スクリプトを組んでみました。

       

      ①検索モードに切り替え←これで1個のボタンを設置

       

      ②/* 手動でポチポチと検索条件を設定 */

       

      ③/* 検索実行スクリプトの中身 */

      if isEmpty(賞味期限検索)

      検索を実行

      スクリプトを終了

      Else if isValid(賞味期限検索)

      切り取り (賞味期限検索)

      対象レコードの拡大[記憶する:賞味期限1=]

      貼り付け (賞味期限1)

      対象レコードの拡大[記憶する:賞味期限2=]

      貼り付け (賞味期限2)

      対象レコードの拡大[記憶する:賞味期限3=]

      貼り付け (賞味期限3)

      対象レコードの拡大[記憶する:賞味期限9=]

      貼り付け (賞味期限9)

      検索を実行

      スクリプトを終了

      /* ここまで */

       

      ──とこのように組み立てました。

       

      結果はフィールド「賞味期限検索」が空欄の時は【検索実行】は正常に動作したのですが、「賞味期限検索」に適当な日付を入れて【検索実行】を行ったら、最初のレコードの製品の「賞味期限1」~「賞味期限9」がフィールド「賞味期限検索」に入力した日付に書き換わってしまいました。

       

      「対象レコードの拡大」の自分の理解がヘンテコになってるのでしょうが、どのようにすれば良いのか教えて頂けますでしょうか?

        • 1. Re: 対象レコードの拡大の使い方について。
          user14047

          FileMaker Pro Advanced ならスクリプトデバッガで、Pro なら、スクリプト一時停止を随所に入れて状況を確認しながら動かしてみてください。

          対象レコードの拡大スクリプトステップが実行された時は、ブラウズモードになっていることがわかると思います。

          ブラウズモードでフィールドに貼り付けているので…

          • 2. Re: 対象レコードの拡大の使い方について。
            parc_box

            user14047 さん

            返信、ありがとうございます。

            ブラウズモードに戻ってるということは、対象レコードの拡大の前に「新規検索の追加」を加えるべきだったのかな〜とか、そのようなことを考えます。


            未だにスクリプトで検索をかけるときの考え方をよく理解してないのだなあと、がっくりしていました。

            あとで試してみます。ありがとうございました^^。

             

             


            • 3. Re: 対象レコードの拡大の使い方について。
              parc_box

              一一で、やっとこ実験開始。結果は

               

              「新規検索条件」を挿入してその次に「対象レコードの絞り込み」を実行させたらそこでブラウズモードに切り替わってしまう。

               

              という結果になってしまいました。

               

              次に「新規検索条件」を挿入して次の「対象レコードの絞り込み」を外した場合。


              ブラウスモードに戻らず新規検索条件の追加まではコチラが希望したとおりに動作してるのですが、「賞味期限検索」を貼り付けた次に検索実行をさせたら、呼び出して欲しいレコードと一緒に、もう一つの条件を満たしてるレコードがすべて表示されてしまうという結果になりました。

               

              なにがどう足りないのか、対象レコードに関するスクリプトステップでこの辺の工夫をするのだろうなという見当だけが付いてる状態です。

               

              一一対象レコードの「拡大」ではなく「絞り込み」を選ぶべきでした。狙いどおりの動作にたどり着けていませんが><。

              • 4. Re: 対象レコードの拡大の使い方について。
                fukky

                [検索実行]

                [対象レコードの拡大]

                [対象レコードの絞り込み]


                いずれのスクリプトステップも検索を実行するスクリプトステップです。

                つまり実行後にブラウズモードに切り替わります。

                 

                [検索実行]は現在の対象レコードと新たな検索条件に合致するレコードを置換。

                →新しい検索条件に合致するレコードが現在の対象レコードと関係なく表示されます。

                 

                [対象レコードの拡大]は対象レコードに新たな検索条件に合致するレコードを追加。

                →新しい検索条件に合致するレコードが現在の対象レコードに追加されます。

                 

                [対象レコードの絞り込み]は対象レコードから新たな検索条件に合致するレコードを抽出。

                →現在の対象レコードから新しい検索条件に合致するレコードのみ表示されます。

                 

                現在の対象レコードに新しい検索条件に合致するレコードを追加したい場合、

                [検索モードに切り替え]

                〜検索条件を設定するステップ群

                [対象レコードの拡大]

                 

                とすれば良いでしょう。

                • 5. Re: 対象レコードの拡大の使い方について。
                  parc_box

                  >fukkyさん

                   

                  返信、ありがとうございます。

                  いずれのスクリプトステップも検索を実行するスクリプトステップです。

                  そうだったのですね!!ありがとうございます。

                  で、修正してみたのですが、製品略名というフィールドでの検索は出してるのですが、賞味期限での絞り込みができない結果に。

                  WS000128.JPG

                  こんな感じなのですが、どこかおかしいハズなので探し始めてます。

                  • 6. Re: 対象レコードの拡大の使い方について。
                    fukky

                    正しく分岐できているかデバッグしていますか?

                     

                    また図に至るまでのステップが不明なので推測になりますが、

                    [検索モードに切り替え]で検索モードに切り替わっているのであれば、

                    [切り取り]対象のフィールドがグローバル格納でなければ値が取得できません。

                     

                    クリップボードに頼った運用はリスクが高いので変数に取得するなどに変更されると良いでしょう。

                    • 7. Re: 対象レコードの拡大の使い方について。
                      parc_box

                      スクリプトデバッガつかって再度確認しました。

                      正しく分岐はできています。

                       

                      他の項目で検索をかけた際には正常に動作してます。

                      賞味期限だけが検索させると前述の様な動作となってしまうので

                      現在は、クイック検索を使うように案内してます。

                       

                      製品略名と賞味期限での検索をためした場合を例に上げると、

                      製品略名フィールドへの検索文字列の入力と各賞味期限1~9に日付が入力されてるとこも確認できました。

                       

                      切り取り対象の「賞味期限検索」フィールドをグローバルに切り替えて試してみましたが、今の組み方だと【検索を始める】スクリプトを実行させた後に「賞味期限検索」フィールドに探したい日付を入力することができません。

                      (一一ので現在はグローバル格納を外してます)

                       

                      質問160312.png

                       

                      >クリップボードに頼った運用はリスクが高いので変数に取得するなどに変更されると良いでしょう。


                      初めて知りました;

                      一一勉強になります。変数、苦手なのです。

                      最近、Let関数をようやく理解できた?ってなものでして……。