FileMaker
お役立ちブログ
グローバル変数について
今回は前回に引き続き変数についてです。グローバル変数についてやその使い方を紹介します。
まずは変数とは何ぞやのおさらいからです。
変数を設定
ローカル変数またはグローバル変数を指定値に設定します。
オプション
- [名前] は作成する変数の名前です。ローカル変数の場合は「$」、グローバル変数の場合は「$$」の接頭語を名前に使用します。接頭語を追加しない場合は「$」が自動的に名前の先頭に追加されます。
- [値] は変数の設定後の値です。テキストを入力するか計算式を指定することができます。
- [繰り返し] は作成する変数の繰り返し数 (索引) です。繰り返しが指定されていない場合デフォルトは 1 です。
変数は接頭語によって有効範囲が異なります。
これを理解し使い分けることで、無駄なく効率的なスクリプトが記述できます。
変数を定義するときに、変数名の前に接頭語を追加することでその変数の有効範囲を指定できます。
有効範囲 | 接頭語 | 例 | アクセス |
関数 | なし |
| 変数が定義された関数内のみ |
ローカル | $ |
| 変数が定義されているスクリプト内のみ (サブスクリプトからは使用不可)、スクリプト終了時に消去される |
グローバル | $$ |
| 変数が定義されたファイル内の任意の場所、ファイルを閉じると消去される |
我々がスクリプトを記述する際には基本的には接頭語はローカル変数 “$” を使用します。
接頭語なしの変数にすることはまずないです。
グローバル変数 “$$” は例えばこのようなタイミングで活用することができます。
・サブスクリプトでも使用したい時
(スクリプトが終わるときにきちんとクリアしておかないとトラブルになる可能性があるので、
サブスクリプトに変数を渡すときはJSON引数をうまく活用するほうが賢明)
・スクリプトが終了してからも数値を活用したいとき
・レイアウト表示をグローバル変数で切り替えしたい時
($$map=1 の時だけ地図を表示する、等)
・ファイルを開いたときになんらかの情報を初期値として保持しておきたいとき
グローバル変数はそのファイルを開いている限り消去されないので便利な反面、気をつけなければいけないこともあります。
例えば、リストに表示されているあるレコード数をスクリプト上で算出して $$レコード数 というグローバルフィールドに収めて、リストの右上に表示していたとします。
別のリストレイアウトに切り替える際には $$レコード数 をリセットして再計算を行わないと、別のレイアウトにとっては誤った数値が表示されることになります。
置き換えるつもりが別のスクリプトでは $$レコード総数 になっていて表示が変わらない…なんてミスも起こりかねないので、デバックでしっかりと確認しながらお付き合いしていくのがおすすめです。
FileMaker開発記事
その他の記事