2 返信 最新の回答 日時: Dec 9, 2014 9:15 PM ユーザー:user14047

    変数名を動的に設定する方法

    shoko

      変数名が動的に設定できたら便利だなあ…と思ってネットで情報を探していたら、

       

      Koji Takeuchiさんのtwitterにたどり着いたのですが、

      英語がわからず、理解できませんでした…。

      https://twitter.com/nemoux/status/143032229340262400

       

      ものは試しと思い、スクリプトステップで

       

      変数を設定 $test :1 

      と設定した後に、

      計算結果を挿入 [選択:Evaluate ( Let ( $test =1;"$" & Get ( アカウント名) =1))] 

       

      としてみたのですが、$test の名称が変わることはありませんでした。

       

      どこが間違っているのでしょうか…?

        • 1. Re: 変数名を動的に設定する方法
          sago350@未来Switch

          変数を設定 [$変数名; 値:"$$hoge"]

          変数を設定 [$値; 値:350]

          変数を設定 [$Dummy; 値:Evaluate ( "Let (" & $変数名 & " = " & Quote ( $値 ) & " ;" & "\"\"" & ")" )]

           

          コレで、「変数名」という変数に好きな変数名を入れたら動的に変数が生成できるかと。

          例ではグローバル変数を定義しています。

          $Dummyといいう変数はLet文が実行できればなんでもいいです。フィールド設定でも。

           

          Let文内でスクリプト変数を定義できるので、それを応用したテクニックですね。

          その根本のテクニックを解りやすく書きました。実際使うとなるとリンク先の様なカスタム関数化した方がエレガントだと思います。

          • 2. Re: 変数名を動的に設定する方法
            user14047

            ちょっとだけ補足

            Evaluate ( Let ( $test =1;"$" & Get ( アカウント名) =1))

            この式の意味する所は、Let ( $test =1;"$" & Get ( アカウント名 ) =1) = 0 (アカウント名が1だったらtrueだけど…)を式として評価することになるので、Evaluate ( 0 ) と同義です。

            Evaluate 関数を使って、式を式として評価する場合は、"" で囲んでください。

            http://www.filemaker.com/help/13/fmp/ja/html/func_ref3.33.4.html

             

            #例えアカウント名が "1" であっても "$" & とあるので、"$1"  という文字列は 1 ではないのでどんな場合でも false ですね。