11 返信 最新の回答 日時: Feb 20, 2012 11:48 PM ユーザー:jintakatomoz

    Evaluateが動かない?

    jintakatomoz

      タイトル

      Evaluateが動かない?

      フォーラムに投稿

      上手く動いてくれず

      どこがおかしいのか分りません

      データビューワでは問題なく動いています

      Evaluate (Quote(
      Case(
      b::数量_残= 0;1;
      b::数量_残<0;2
      ))
      ;[d::数量])

       

      OSX10.6

      FMP11Adv

        • 1. Re: Evaluateが動かない?
          hiro_

           Quoteは「"」のエスケープで「\"」のことですが、問題の式では「"」が使われて無いので無意味です。以下の式でお試し下さい。

           Evaluate (
            "Case(
              b::数量_残= 0; 1;
              b::数量_残<0; 2
            )”
           ; d::数量)

          • 2. Re: Evaluateが動かない?
            jintakatomoz

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

            Quoteを外して動きましたが...

            詳しく説明すると

            ファイルAのシリアルでリレーションをつないだファイルBの「数量B」フィールドのSumとの差

            つまり「数量_残A」は

            数量A - Sum(ファイルB::数量B)

            なのですが

            ファイルBの「数量B」が変化したら

            ファイルA「フラグA」数字フィールドの計算で

            Evaluate (
              "Case(
                数量_残A= 0; 1;
                数量_残A<0; 2
              )”
             ;数量_残A)

            と、目論んだのですが

            ファイルA「数量A」が変化すると計算されますが

            ファイルB「数量B」が変化しても計算されません

            スクリプトで「フラグA」に入力する場面があるので、数字フィールドなのですが

            解決方法をご伝授下さいm(_ _)m

            • 3. Re: Evaluateが動かない?
              hiro_

               集計値はEvaluateの起動トリガに利用できません。

              ならば、「フラグ」計算フィールドの式を以下にしてお試しください。

              Evaluate("
              Let(
              数量_残A=数量A - Sum(ファイルB::数量B);
              Case(数量_残A= 0; 1;数量_残A<0; 2)
              )
              "; [数量A; ファイルB::数量B]
              )

              この式では、「ファイルA::数量A 」か「ファイルB::数量B」に変化があった場合に、フラグ値の再計算・更新がなされます。
              運用的にそれ以外の自動更新が必要な場合は適用できません。
              また式は、両フィールドが空欄のときを処理をしていません。この式を実装される場合は処理を追加してください。

              • 4. Re: Evaluateが動かない?
                jintakatomoz

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

                「集計値はEvaluateの起動トリガに利用できません。」成る程...

                上記の式を試しました

                数量A の変更ではフラグに計算されます

                ファイルB::数量B の変更では計算されませんでした (T_T)

                • 5. Re: Evaluateが動かない?
                  hiro_

                   変ですね、こちらのテスト設定環境ではOKでした。

                  こちらは、ファイルAにファイルBを外部データソースとしてテーブルBを取り込み、ファイルA内でリレーション設定や関連レコード操作をしています。

                  ついては、ファイルB::数量B の変更も、実際はファイルA内のテーブルB::数量B を変更しています。この場合ならOKのはずです。

                  • 6. Re: Evaluateが動かない?
                    jintakatomoz

                    何故だろう...

                    動かないデス

                    FileMakerが壊れているのか?

                    • 7. Re: Evaluateが動かない?
                      hiro_

                      こちら何度テストファイルを作り直して再テストしても全く問題なく動作しています。

                      トラブルの99.9%は人為ミスです。先のこちらの説明どおりの設定環境で試してみてください。
                      出来ないのであれば、どこかに相違点があるはずです。
                      それでも原因が分からなければ、jintakatomozさんの環境構成・設定の詳細説明を書いてください。

                      • 8. Re: Evaluateが動かない?
                        jintakatomoz

                        下記の様に設定しています 宜しくお願い致します

                        リレーション設定(ファイルAに設定)

                        ファイルA::pk = ファイルB::fk

                        ファイルAのフィールド

                        pk (数字)シリアル自動

                        数 (数字)

                        残 (計算)非保存 数 - Sum(ファイルB::数)

                        フラグ (数字)計算式 

                        Evaluate("
                        Let(
                        残=数 - Sum(ファイルB::数);
                        Case(残= 0; 1;残<0; 2)
                        )
                        "; [数; ファイルB::数]
                        )

                        ファイルBのフィールド

                        fk (数字)

                        数 (数字)

                         

                        MacOSX10.6.8

                        FileMakerPro11Advanced v4

                        【現象】

                        ファイルAの「数」フィールドを変更すると正しく「フラグ」フィールドは動きます

                        ファイルBの「数」フィールドを追加や変更しても「フラグ」フィールドが動かない

                        • 9. Re: Evaluateが動かない?
                          hiro_

                           多分、外部関連テーブルBの設定が違うのではとおもいますが、一応こちらのテストファイルをアップしておきますので、
                          動作検証・設定比較してみてください。3種類のレイアウトテーブルから数量Bを変更して、すべて自動更新されるのを確認下さい。

                          テストサンプル「Evaluate自動更新.zip」→ 
                          https://box.yahoo.co.jp/guest/viewer?sid=box-l-wrzigljgijanaf6iasnwzj4tde-1001&uniqid=ccc9dc9c-3048-46b1-aba4-6ca6d09a4acb&viewtype=detail

                          • 10. Re: Evaluateが動かない?
                            jintakatomoz

                            サンプルまで作って頂き ありがとう ございます

                            問題ないですね

                            何が悪かったのか不思議です

                            重ね重ねありがとうございます

                            しかし、同じ様に作り直すと動かないので

                            FileMaker Preferences を削除しようと思ったら見当たらない?

                            • 11. Re: Evaluateが動かない?
                              jintakatomoz

                              原因が解りました

                              情けなくて書けません...