見出し画像

FileMaker-グローバル変数を一括管理

クライアント16 サーバー18 開発17でやってます。

key=valueでやろうとも思ったが、json関数使ったら再帰しなくていいし、ちょろかったという話。

ファイルメーカーで、グローバル変数の一覧が見たいと思ったが、探しきれず。(なんか見れるのあるんかな)
行方知れずになるのが不安。
って事は、一個に全部入れてしまえばいいな?となる。

$$Glb_Json というグローバル変数に配列で片づけていこう。
ファイル名いれてもいいなとも思ったが、必要ないなと判断。

なお、json関数賢くて。改行も:もデータとして入ってた。

カスタム関数 GlbSet("key","value")

//$$Glb_Json にセットする
Let(
[
//形作り
$$Glb_Json=If($$Glb_Json="";"{\"dami\":\"dami\" }";$$Glb_Json);
//セットする
$$Glb_Json=JSONSetElement ($$Glb_Json ; Key  ; Value ; 1);
//消す
$$Glb_Json=If(Value="";JSONDeleteElement ($$Glb_Json ; Key);$$Glb_Json);
dami=""];
"")

つまり、消したい時は GlbSet("key","")

カスタム関数 Glb("key")

//$$Glb_Jsonからキーで呼び出す

Let(
//形作り
$$Glb_Json=If($$Glb_Json="";"{\"dami\":\"dami\" }";$$Glb_Json);

JSONGetElement ( $$Glb_Json ; Key )
)

ただただもらう。

使い方

スクリプトの中で使う

画像5

計算式の中で使う場合は↑の計算式のような感じで入れる。

セットしたものを使う場合は

画像6

計算式でもこんな感じ。

グローバル変数の一覧

を見たければ、データビューアで見るか、適当なデータベースを作り

画像1

こうすると、ばくっと見やすい。

画像2

失敗例

画像3

Valueの一覧もあるしぃ~って、思ってこれをすると、改行入りのvalueがある場合に、はぅ!となるので。

画像4

で、抜くのが安全である。
なお、キーが改行入りで出来るかどうかは見てないが、そんな事はしないと思ってる。

メテオ

誰かが 

$$Glb_Json = ""

なんてしちゃうと、オワル。

ま・・・共同でやってて、決まりを守らん人がおるとか。

怖い時はこの変数名を難解なものにしておくといいかもね!!
(使うのはカスタム関数内か、一覧表示の時ぐらいだしね!)

glbとglbsetにわけてるのは、使う時に余計な計算をしたくないからで。
小規模だとそんなみみっちい事は気にしなくてもよく?一緒にしてもいいかもね!


この記事が気に入ったらサポートをしてみませんか?