Self関数についてまとめてみた

この記事では、 FileMakerのSelf関数について説明します。

Self関数について 何となく分かるものの どことなくモヤっとしていたんですが、 Self関数の使用ケースが全部で6つしかないとのことなので、 1つ1つ調べて まとめてみました。

バージョン:FileMaker Pro 18 Advanced


www.youtube.com

Self関数とは?

自分自身を返す関数

まずSelf関数とは何か? ですが、 文字通り自分自身を返す関数 として・・ どんなときに有効か? どんなときに使えるのか?

もっとも有効なのは、 設定のコピーではないかと考えています。

たとえば、Aというフィールドで 自分自身の値を使いたいとき、

20210803230411

式の中でそのまま"A"と書けばいいのですが、 その場合、 今度別のフィールドBでも使いたいとなったときに、 式をそのまま持っていっても、 "A"の部分を"B"に書き換える必要がでてきてしまいます。

20210803230331

これを"A"ではなく最初から"Self"にしておけば、

両方Self

式の内容には手を加えず そのままフィールドBで使用しても ちゃんとBを返してくれるようになります。

実際に使ってみます

FileMaker では、 フィールドの値に応じてフィールドの色を変えることができます。

例えば、「単価」の数値が100から500の間なら、フィールドを青くするというのを Self関数を使ってやってみます。

20210803230221

  1. レイアウトモードにする
  2. 「書式」メニューから「条件付き...」を選択
  3. 「値が」を「計算式が」に変更
  4. 「Self≧100 and Self≦500」と記述(文字列ではなく数値を入れるため、ダブルクォーテーション「"」は削除)
  5. 「塗りつぶし色」を青に
  6. 「OK」をクリック
  7. 「レイアウトの終了」をクリック

さらにこれを、他のフィールドに適用する

「小計」フィールドに持っていってみましょう。

  1. コピー元の計算式を開きコピー
  2. コピー先の計算式を開いてペースト

これで「単価」と「小計」で同じ式になりました。 同じ式を使っているが、値が異なっているため、結果も異なります。 値が100から500の間にある「単価」は青くなり、 それから外れている「小計」は青くなりません。

20210803230228

Self関数を使わないとどうなるか・・

「単価」フィールドで、「Self」の部分を「単価」に変えてみましょう。 それを「小計」にコピペします。

20210803230202

すると 「小計」が100から500の間にはないのに青くなっちゃってます。 それは「小計」ではなく「単価」の値を反映しているからです。 「単価」を「小計」に書き替えればSelfを使った場合と同じになりますが めんどくさいですよね。 さらに別のフィールドにも適用する可能性がある場合だと、 ますますSelfを使った方が手間が省けます。

ちなみに、Self関数を再利用する方法はもう一つあります

フィールドを複製し、データ元を変更する方法です

20210803230208

  1. レイアウトモードで、「編集」メニューで「複製」をしてフィールドを複製
  2. 「データ」タブ「データを表示」右横の鉛筆ボタンをクリック
  3. 「フィールド指定」でフィールドを指定

1つのフィールドに対して複数の設定をしてある (「条件付き書式」と「インスペクタオプション」を両方設定しているなど) ならば、 こちらの方が便利です。

Self関数が使える6つのケース

Self関数が使えるのは、 1. 条件付き書式 2. ポップアップヘルプ 3. プレースホルダテキスト 4. インスペクタオプション 5. アクセシビリティインスペクタオプション 6. フィールド定義計算

の全部で6つのケースです。

条件付き書式

条件付き書式とは

条件を設定し、その条件を満たしたときにフィールドの見た目を変えるものです。

20210803225455

変えられるものは、 - フォント - 色 - 太字 - 下線 - フィールドの色(塗りつぶし色)

など

条件付き書式を設定すると、目印として、 レイアウトモードでの表示にしたとき、フィールドの右下隅にカラフルなダイヤのマークが付きます。 マウスカーソルをそのまま置いておくと、式の内容を表示してくれます。

条件付き書式の設定方法

  1. 「書式」メニューで「条件付き…」を選択
  2. 表示された「〇〇の条件付き書式」ウィンドウで、「条件」で見た目を変える条件を設定し、「書式」でどう見た目を変えるのかを設定

条件付き書式でのSelf関数の使い方

条件で「計算式が」を選ぶと、自動的に自分のフィールドの値のことをSelfと書かれた式が出来上がっています。 つまり、計算式で自分のフィールドの値を指定するときは、 Self関数を使うのが普通ということです。

別のフィールドに同じ条件を設定したいときでも、 Self関数を使っておけば、 条件式をそのままコピー&ペーストするだけでいいので便利です。

ポップアップヘルプ

ポップアップヘルプとは

フィールドにマウスポインタを合わせて少しそのままにしておくと、浮かぶような形で小さくテキストを表示するものです。

20210803225446

主にヘルプなどの補足情報を表示するのに使用されます。

目印として 「T」のマークが付きます。

ポップアップヘルプの設定方法

  1. インスペクタの「位置」タブ「位置」セクション
  2. 「ポップアップヘルプ」の欄に入力するか、右の鉛筆ボタンをクリックして計算式を入力

ポップアップヘルプでのSelf関数の使い方

データの内容に対してフィールドが小さくて 内容をすべて表示しきれないときに、 計算式としてSelfを指定するだけで、 ポップアップヘルプにフィールドの全内容を表示することが可能です。

プレースホルダテキスト

プレースホルダテキストとは

データがまだ入力されていないフィールドに、テキストを薄く表示させることができます。

20210803225442

主に - 何のフィールドなのか - 何を入力すればいいのか

といった、データ入力時のヒントをユーザに知らせるために使用することができます。

データを入力すると消えます。

目印として 「…」のマークが付きます。

プレースホルダテキストの設定方法

  1. インスペクタの「データ」タブ「フィールド」セクション
  2. プレースホルダテキスト」の欄に入力するか、右の鉛筆ボタンをクリックして計算式を入力

プレースホルダテキストでのSelf関数の使い方

自分のフィールド名を表示させたい場合に、 「GetFieldName( Self )」と入力すると、 フィールド名をいちいち手入力することなく 表示させることができます。

  • フィールド名がそのままラベル・ヒントとなる場合
  • 特にレイアウト上フィールドラベルを入れるスペースがない場合

に有効です。

インスペクタオプション

インスペクタオプションとは

フィールドを隠すことができます。

20210803225429

条件を設定し、その条件を満たすとフィールドが消えます。

フィールドが消えると、値を入力することはできなくなります。

目印として 目のマークが付きます。

インスペクタオプションの設定方法

  1. インスペクタの「データ」タブ「動作」セクション
  2. 「次の場合にオブジェクトを隠す」欄に入力するか、右の鉛筆ボタンをクリックして計算式を入力

インスペクタオプションでのSelf関数の使い方

ただ数値を入力するだけだと、「入力した数値が0で表示、0以外で非表示」となるだけなので、 フィールドの値を条件として設定するには、Self関数を使って設定してやる必要があります。

アクセシビリティインスペクタオプション

アクセシビリティインスペクタオプションとは

画面を読み上げる機能です。

20210803225425

目が不自由な方でも操作を可能とするものです。

今カーソルがどこにあるか、そこが何のフィールドかを読み上げてくれます。

アクセシビリティインスペクタオプションの設定方法

  1. 「表示」メニューで「インスペクタ」から「アクセシビリティインスペクタ」を選択
  2. 表示された「アクセシビリティインスペクタ」ウィンドウで「ラベル」「タイトル」「ヘルプ」を設定

アクセシビリティインスペクタオプションでのSelf関数の使い方

詳しく設定せずにただ有効にしただけでは、フィールドの中身は読み上げてくれますが、 フィールドのことを「テキストフィールド」と言うのみで、何のフィールドかは分かりません。

そこでSelf関数を用いて設定することで、フィールド名も読み上げさせることができます。

フィールド定義計算

フィールド定義計算とは

  1. 入力値の自動化
    • あらかじめデータを自動で入力してくれるよう設定できます。
    • それによって入力の手間を省くことができます。
  2. 入力値の制限
    • 間違った値・条件に合わない値を入力した場合に、ダイアログを表示させ入力者に注意を促すことができます。

20210803225438

フィールド定義計算の設定方法

  1. 「ファイル」メニューで「管理」から「データベース...」を選択
  2. 表示された「〇〇のデータベースの管理」ウィンドウで、「フィールド」タブを選択
  3. 該当のフィールドをダブルクリック
  4. 表示された「フィールド〇〇のオプション」ウィンドウで、「入力値の自動化」タブ、または「入力値の制限」タブを選択

フィールド定義計算でのSelf関数の使い方

  1. 入力値の自動化
    • 「計算値」でSelf関数を使用可能です。
    • 入力された値を、式に従って強制的に書き換えることができます。
    • 間違った値が入力された場合に、強制的に修正することができます。
  2. 入力値の制限
    • 「計算式で制限」でSelf関数を使用可能です。
    • 自分自身を計算式の中で表す時にSelf関数を使用できます。

まとめ

以上、Self関数についてまとめてみました

使用シーンを一つ一つ見ていったことで 自分の頭の中も 整理できたように思えます。

今のところ書式のコピー&ペーストやスタイルでは 計算式までは反映されませんが、 それができればもっと便利に使えると思います。