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 )
)
ただただもらう。
使い方
スクリプトの中で使う
計算式の中で使う場合は↑の計算式のような感じで入れる。
セットしたものを使う場合は
計算式でもこんな感じ。
グローバル変数の一覧
を見たければ、データビューアで見るか、適当なデータベースを作り
こうすると、ばくっと見やすい。
失敗例
Valueの一覧もあるしぃ~って、思ってこれをすると、改行入りのvalueがある場合に、はぅ!となるので。
で、抜くのが安全である。
なお、キーが改行入りで出来るかどうかは見てないが、そんな事はしないと思ってる。
メテオ
誰かが
$$Glb_Json = ""
なんてしちゃうと、オワル。
ま・・・共同でやってて、決まりを守らん人がおるとか。
怖い時はこの変数名を難解なものにしておくといいかもね!!
(使うのはカスタム関数内か、一覧表示の時ぐらいだしね!)
glbとglbsetにわけてるのは、使う時に余計な計算をしたくないからで。
小規模だとそんなみみっちい事は気にしなくてもよく?一緒にしてもいいかもね!
この記事が気に入ったらサポートをしてみませんか?