FileMaker

お役立ちブログ

グローバル変数について

今回は前回に引き続き変数についてです。グローバル変数についてやその使い方を紹介します。

まずは変数とは何ぞやのおさらいからです。

変数を設定

ローカル変数またはグローバル変数を指定値に設定します。

オプション

  • [名前] は作成する変数の名前です。ローカル変数の場合は「$」、グローバル変数の場合は「$$」の接頭語を名前に使用します。接頭語を追加しない場合は「$」が自動的に名前の先頭に追加されます。
  • [] は変数の設定後の値です。テキストを入力するか計算式を指定することができます。
  • [繰り返し] は作成する変数の繰り返し数 (索引) です。繰り返しが指定されていない場合デフォルトは 1 です。

変数は接頭語によって有効範囲が異なります。
これを理解し使い分けることで、無駄なく効率的なスクリプトが記述できます。

変数を定義するときに、変数名の前に接頭語を追加することでその変数の有効範囲を指定できます。

有効範囲

接頭語

アクセス

関数

なし

variableName

変数が定義された関数内のみ

ローカル

$

$variableName

変数が定義されているスクリプト内のみ (サブスクリプトからは使用不可)、スクリプト終了時に消去される

グローバル

$$

$$variableName

変数が定義されたファイル内の任意の場所、ファイルを閉じると消去される

我々がスクリプトを記述する際には基本的には接頭語はローカル変数 “$” を使用します。
接頭語なしの変数にすることはまずないです。

グローバル変数 “$$” は例えばこのようなタイミングで活用することができます。

・サブスクリプトでも使用したい時
 (スクリプトが終わるときにきちんとクリアしておかないとトラブルになる可能性があるので、
  サブスクリプトに変数を渡すときはJSON引数をうまく活用するほうが賢明)

・スクリプトが終了してからも数値を活用したいとき

・レイアウト表示をグローバル変数で切り替えしたい時
 ($$map=1 の時だけ地図を表示する、等)

・ファイルを開いたときになんらかの情報を初期値として保持しておきたいとき

グローバル変数はそのファイルを開いている限り消去されないので便利な反面、気をつけなければいけないこともあります。

例えば、リストに表示されているあるレコード数をスクリプト上で算出して $$レコード数 というグローバルフィールドに収めて、リストの右上に表示していたとします。

別のリストレイアウトに切り替える際には $$レコード数 をリセットして再計算を行わないと、別のレイアウトにとっては誤った数値が表示されることになります。

置き換えるつもりが別のスクリプトでは $$レコード総数 になっていて表示が変わらない…なんてミスも起こりかねないので、デバックでしっかりと確認しながらお付き合いしていくのがおすすめです。

FileMaker開発記事

栽培管理システム

栽培管理システム とは、植物工場 での野菜栽培において、膨大なデータを一括管理できるシステムです。高品質な野菜を栽培するために必要なあらゆる情報を見える化し、業務効率向上を図ります。

受発注システム [EC-CUBE連携]

受発注業務をEC-CUBEと連携する事により、顧客情報と受注情報それぞれの入力を自動化。その後の各種事務手続(伝票作成・郵送業務・売上レポート作成等)すべても同時に効率化するツールです。

修理受付システム

修理受付から請求までの業務を一元管理。Web予約連動、クレジット請求連動などの業務を効率化します。ほか顧客履歴、部品在庫管理、発注リストなどあらゆる関連業務に対応しています。

墓掃除システム

墓地管理、墓地清掃、供花管理など、定期的な作業を標準化。煩雑な業務作業の見える化を可能にするシステムです。

その他の記事

関数 Abs について

マイナスの値が出るような計算式でもマイナスを表記したくない際に、Abs関数を用いて表示することができます。