こんにちは!
今回のテーマは「2種類のグローバル変数を使いこなす」です。
グローバル変数は1種類でしょ?
そんな風に思われた方も多いと思いますが、グローバル変数自体は1種類ですが、使い方が大きく分けて2種類あるということです。今回は「2種類」を意識して使うと、FileMakerアプリ開発に幅が広がるというところを紹介していきます。
変数のキホン
まず、変数にはローカル変数と、グローバル変数の2つがあります。実際には、Let関数でも使用している変数が少し扱いが違ったりもしますので、3種類ともいえますが、ローカル変数の一緒なので、それは置いておきます。
ローカル変数とは、主にスクリプト内で使用されるもので、そのスクリプト内でしか有効ではないものです。別のスクリプトからは使用できませんので、一時的に格納しておきたい情報を管理するのが、ローカル変数です。
グローバル変数とは、ローカル変数とは違い、どこからでも参照できる変数です。一度設定すると、そのクライアントがアプリを閉じない限り保存されます。
どちらの変数もクライアントごとに設定され、別のクライアントが直接参照したりはできません。
グローバル変数の使い方①
グローバル変数はスクリプトが終了しても、ローカル変数のようには消えないので、レイアウト上に可変的な情報を表示したいときにも使用することができます。

グローバル変数はレイアウト上に上記のようにすると表示できます。
「<<$$検索条件>>」の部分がグローバル変数です。
この例では、クライアントが行った検索条件を変数に格納し、レイアウト上に表示することで、何を検索した結果の対象レコードなのかを明示することができます。これによって、クライアントが今どんなデータを表示しているかを視覚的にわかりやすくすることができます。
グローバル変数の使い方②
もう一つは、レイアウトの表示しないような情報の保持です。
例えば、役職などの権限によって、スクリプトの動作を変えたり、表示するデータを変えたり、編集できないフィールドを設定したりするときに使用するものです。
アプリの起動時に役職などをグローバル変数に保持しておき、「次の場合にオブジェクトを隠す」を使用してフィールドを隠したり、表示させたりするといった使い方です。これについての詳細は、また後日紹介していきます。
それ以外にも、Get関数では取得できないような、ユーザー名や今何の作業をしているかを保存しておき、それによってスクリプトの動作を変えるといったこともできます。
ポータルのフィルタリング
ポータルは通常リレーションによってその表示する内容を決めますが、もう一つ決める要素としてフィルタがあります。
このフィルタにグローバル変数を利用することで、クライアントが指定した条件によってポータルに表示する内容を変えたりすることもできます。
このように、グローバル変数の使い方は大きく分けて2種類あり、これを意識していくことで、アプリの開発の幅が広がっていきます。

