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関数についてまとめてみました

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

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

リレーションを設定してポータルに一覧表示させる

バージョン:FileMaker Pro 18 Advanced

この記事では

f:id:tsumurashinya:20200626094853p:plain ポータルを使ってデータを一覧表示する方法を解説します。

ポータルって?

f:id:tsumurashinya:20200626094857p:plain 関連レコードを一覧表示するのに便利です。 大きさや位置を自由に作ることができます。 今回は顧客データをポータルで表示させます。

表示させたい顧客データはこんな感じ

f:id:tsumurashinya:20200626094901p:plain 顧客のフリガナと氏名が入っています。

レイアウトモードでポータルを作成する

f:id:tsumurashinya:20200626094905p:plain レイアウトを作るために、ポータル表示専用のテーブルを作成します。 顧客表示テーブルと名付けますが、表示するだけなのでレコードは1つのみです。 レイアウトモードにしてポータルを作成してみますが、このままではポータルに表示するデータとして「顧客テーブル」を指定できません。 リレーションを設定して関連付けないと、ポータルで参照できないため、リレーションを設定します。

リレーションを設定する

リレーションを設定するには、顧客テーブルと顧客表示テーブルにフィールドを加え、それぞれを関連づけます。

顧客テーブルには「顧客表示IDf」フィールドを作成し、中身はすべて同じ値を設定します。 すなわち、「"1"を自動入力」「値変更不可」「グローバル」です。 「データベースの管理」でフィールドをダブルクリックして現れる「フィールドのオプション」ダイアログの、「入力値の自動化」と「データの格納」のタブでそれぞれ設定できます。 値はなんでもいいのですが、とりあえず"1"にします。

顧客表示テーブルには「顧客表示ID」フィールドを作成し、同じように値を"1"にします。 1つのレコードしか作らないため、「主キー」などテーブル作成時に自動で追加される5つのフィールドは削除します。

「リレーションシップ」タブを選択し、「顧客」TOの「顧客表示IDf」と、「顧客表示」TOの「顧客表示ID」を線で結びます。 f:id:tsumurashinya:20200626095419p:plain

改めてレイアウトに戻ると、ポータルで顧客データを設定できるようになりました。 レイアウトを終了させてブラウズモードに戻れば、ポータルに顧客データが表示されていると思います。

まとめ

この記事では、ポータルでデータを一覧表示する方法を解説しました。 一覧表示は、ブラウズモードでの「リスト形式」「表形式」でもできますが、ポータルで表示すると自由にレイアウトできる点が優れていると思います。

入力ミスをユーザに知らせる

バージョン:FileMaker Pro 18 Advanced


この記事では

f:id:tsumurashinya:20200525173312p:plain FileMakerで、入力されたフィールドが不適切だった場合に、ユーザに知らせて修正を促す方法を解説します。 具体的には、販売された商品の数量フィールドに自然数以外が入力された場合に、「間違っている」と言うダイアログを表示し、対象のフィールドを赤くします。

自然数かどうかを判定する

まず入力された値が自然数かどうかを判定します。 入力された値にFilter関数を使い整数のみにします。 フィルターに掛ける値を0から9までの数字のみにすると、マイナスや小数点やテキストなどの文字などは取り除かれ整数のみになります。 f:id:tsumurashinya:20200525173317p:plain ただこのままではゼロ自体も含まれるため、自然数とは呼べません。 そこで、ゼロではないと言う条件を加えることで、自然数と判断します。 なおSelf関数を使うことで他のフィールドにもそのまま適用できる形にしておけば、式の使い回しができて便利です。

警告ダイアログを表示する

f:id:tsumurashinya:20200525173321p:plain 警告ダイアログを表示させる方法ですが、「管理」メニュー「データベース」から設定をするフィールドをダブルクリックして、「入力値の制限」と言うタブを選択します。 「計算式で制限」のところの「指定」をクリックすることで、条件式を入力することができますので、先ほど作った条件式をここに入力します。 ダイアログにメッセージを表示させますが、「制限値以外の入力値にカスタムメッセージを表示」にテキストを入力することで、メッセージが表示されます。 このダイアログでは「はい」をクリックすると、入力値は修正されず、そのままになります。 「いいえ」をクリックするとフィールド入力前の状態に戻り、入力のやり直しができるようになります。 この「はい」「いいえ」が自然になる文章を考えると、「現在〜〜と言う値が入力されていますがこのままでいいですか?」と言う文脈にする必要があります。 また、「レコード復帰」というボタンがありますが、これをクリックすると「このレコードに対するすべての処理を最後に入力された状態に戻しますか」ダイアログが表示され、「キャンセル」「復帰」と言うボタンが出てきます。 「キャンセル」を押すと何も修正されずそのままとなり、「復帰」を押すとフィールドの値が前に入力されていたものに自動的に戻されます。 この、修正されずそのままになっている状態でもユーザに警告を表示させるため、フィールドを赤くする設定を紹介します。

フィールドを赤くする

フィールドを赤くする方法ですが、「条件付き書式」を使います。 「書式」メニューの「条件付き」を選択すると、条件付き書式のダイアログが表示されます。 「追加」ボタンを押し、「値が」「計算式が」のポップアップで「計算式が」を選択し、「指定」をクリックして、出てくる画面で式を記述することができます。 「計算式の指定」画面を表示させず、直接式を入力することもできますが、表示させると「≠」が入力しやすかったり、関数のヒントが表示されるため、非常に便利です。 f:id:tsumurashinya:20200525173326p:plain自然数でなければフィールドの色を赤くする」の条件式を設定しますが、「入力値の制限」では自然数だけを通すように設定するため、自然数の条件をつけます。条件付き書式では自然数以外の時に赤くする必要があるため、入力値の制限の条件とは反対になります。 そのため、入力値の制限に「not」を付けることで、フィールドを赤くする条件にすることができます。 ただこれだけでは、新規レコードを作成した場合など、未入力でも赤くなってしまうため、未入力の場合には赤くしない条件を追加する必要があります。 自然数または未入力でなければ赤くなるようにするため、notの中に未入力の条件を加えれば、未入力の場合には赤くならないようにすることができます。 なお、未入力かどうかというのはIsEmpty関数を使うと取得できます。

まとめ

今回は、FileMakerで間違って入力した場合の処理について解説しました。 人間が入力する以上、どうしても間違った値が入力される可能性がありますので、視覚的にユーザに注意を促す処理を作るのが簡単にできるのもFileMakerの特徴だと思います。

コントロールスタイルで値一覧を可視化する

4つのコントロールスタイル

f:id:tsumurashinya:20191220094934p:plain 値一覧を使用した選択肢の表示方法には4つのスタイルがあります。 すなわち、ラジオボタンセット・チェックボックスセット・ドロップダウンリスト・ポップアップメニューです。 この記事では、それぞれのスタイルについて解説していきます。

ラジオボタンセット と チェックボックスセット

f:id:tsumurashinya:20191220094937p:plain この2つのコントロールスタイルは、クリックして選択するタイプです。 選択肢分のスペースが必要になるため、 選択肢の数に対してスペースが小さいと、表示しきれない選択肢がでてきます。 表示領域から外れてしまった選択肢は選択できません。

ラジオボタンセット

f:id:tsumurashinya:20191220094941p:plain 選択部分が丸型になっているコントロールスタイルです。 一度に選択できるのは1つのみになります。

コントロールスタイルは全て、インスペクタの「データ」タブにてオプションを設定することができます。 設定できるオプションはコントロールスタイルごとに異なっており、 ラジオボタンセットでは「他の値の入力を許可」オプションのみが設定可能となっています。

「他の値の入力を許可」オプション

f:id:tsumurashinya:20191220094946p:plain もともとの選択肢に無い項目を追加できるようにするためのオプションです。 オプションをオンにすると、「その他…」の項目が追加され、値の追加がその場でできるようになります。 ただし追加した内容は、「その他...」をクリックしてみないと分かりません。

チェックボックスセット

f:id:tsumurashinya:20191220094951p:plain 選択部分がラジオボタンセットの丸型に比べて、四角になっています。 1つしか選択できないラジオボタンと違い、一度に複数を選択できます。

「他の値の入力を許可」オプション

f:id:tsumurashinya:20191220094954p:plain ラジオボタンセットと同じく、「他の値の入力を許可」オプションが使用できます。

「アイコン」オプション

f:id:tsumurashinya:20191220094959p:plain チェックボックスにチェックを入れた時のアイコンを、2種類選ぶことができます。

「×」を選択するとバツマークになります。 デフォルトで表示されるのはこちらになります。 日本人の感覚からすると、チェックにこれを使うのは違和感を感じるかもしれません。

「√」はルートの文字が当てはめられてますが、チェックマークです。 バツマークよりも、こちらがしっくりくると思います。

ドロップダウンリスト と ポップアップメニュー

f:id:tsumurashinya:20191220095003p:plain この2つのコントロールスタイルは、クリックすると、選択肢が一列にずら〜っと並んで出てきます。 省スペースで済み、選択肢の数をあらかじめ考慮する必要はありません。 ただし、あまり多すぎると選択しづらくなるため注意が必要です。

ドロップダウンリスト

f:id:tsumurashinya:20191220095006p:plain クリックすると、下に選択肢が出てきます。

「一覧の表示切り替え用矢印を表示」オプション

f:id:tsumurashinya:20191220095011p:plain ハンドルが表示され、そのハンドルをクリックすることで、下に選択肢リストが出てくるようになります。 ちなみに、ハンドル以外をクリックすると、リストは表示されず直接入力になります。 また見た目として、編集ボックスではなく、ドロップダウンリストとしての区別がつくという役割も果たします。

このオプションがオフの場合だと、ハンドルは表示されていません。 その場合には、1回目のクリックでリストが表示され、2回目のクリックで直接入力になります。

「値一覧の編集を許可」オプション

f:id:tsumurashinya:20191220095017p:plain 値一覧を、「値一覧の管理」を開かずに、その場で編集できるようになります。 f:id:tsumurashinya:20191220095021p:plain ただし、このオプションは「カスタム値」の値一覧を使用している場合にのみ有効になります。 「カスタム値」ではなく「フィールドの値」を使用している場合は使えません。

「値一覧を使用してオートコンプリート」オプション

f:id:tsumurashinya:20191220095025p:plain オートコンプリートとは、入力中に候補が表示されるものです。 たとえば「平核無」を選びたい場合、「平」と一部入力するだけで、「平核無」と値一覧からの候補を上げてくれるために、入力作業が楽になります。 ただし、オートコンプリートが適用できるのは、値一覧がテキストフィールドの場合のみになります。 f:id:tsumurashinya:20191220095030p:plain すなわち、値一覧の種類が「カスタム値を使用」の場合はオートコンプリート可能ですが、 「フィールドの値を使用」の場合は、 キーフィールドが無く、1番目のフィールドが名称フィールド(テキスト)の場合にオートコンプリート可能となり、 1番目のフィールドがキーフィールド(数字)、2番目のフィールドが名称フィールド(テキスト)の場合にはオートコンプリートは不可となります。

ポップアップメニュー

f:id:tsumurashinya:20191220095033p:plain 下にのみ選択肢が出てくるドロップダウンリストに対して、クリックすると上下に選択肢が出てくるタイプです。

「一覧の表示切り替え用矢印を表示」オプション

f:id:tsumurashinya:20191220095037p:plain 編集ボックスではないとの認識をユーザにさせることができるため、分かりやすくなります。 ドロップダウンリストと違い、このオプションでの挙動は特に違いはありません。

「他の値の入力を許可」オプション

f:id:tsumurashinya:20191220095041p:plain ラジオボタンセット・チェックボックスセットと同様、一覧に無い項目を臨時に入れることが可能です。 ラジオボタンセット・チェックボックスセットでは「その他...」と表示されるだけですが、ポップアップメニューは中身まで表示されます。

「値一覧の編集を許可」オプション

f:id:tsumurashinya:20191220095045p:plain ドロップダウンリストと同じく、カスタム値の値一覧を使用しているとき、値一覧をその場で編集できるようになります。

「値一覧でデータ書式を上書き」オプション

使用している値一覧が2つ以上のフィールドを持っている時に、表示をコントロールするためのオプションです。 値一覧が2つ以上のフィールドを持っている場合というのは、1番目がキーフィールド(数字)、2番目が名称フィールド(テキスト)となるのが一般的だと思われますが、このオプションをオンにすることで、ポップアップメニューのクリック時・通常時の表示を合わせることができます。 ちなみに値一覧のフィールドが1つのみの場合でも選択はできますが、選択してもしなくても特に違いはないようです。

値一覧「2番目のフィールドの値のみを表示」オプションをオフにしている場合

f:id:tsumurashinya:20191220095049p:plain 選択肢として、1番目のフィールドと2番目のフィールドを両方表示させる形になります。 そのとき、「値一覧でデータ書式を上書き」がオンになっていると、 クリック時と通常時共に、最初のフィールドと2番目のフィールドの値が表示されます。

一方、「値一覧でデータ書式を上書き」がオフの場合には、 クリック時に最初のフィールドと2番目のフィールドの値が表示され、 通常時には最初のフィールドの値のみが表示されます。 クリック時には表示されていた選択肢の名称が、通常時には消えてしまうことになります。

値一覧「2番目のフィールドの値のみを表示」オプションをオンにしている場合

f:id:tsumurashinya:20191220095053p:plain 1番目のフィールドは表示されず、2番目の選択肢名称のみが表示されます。 2番目のフィールドのみ表示させた方が、選択肢としてはスッキリしていると思います。

このとき「値一覧でデータ書式を上書き」がオンの場合だと、クリック時と通常時で表示が変わらず、選択肢名称のみが表示されます。

一方で値一覧「2番目のフィールドの値のみを表示」オプションをオフにしている場合だと、クリック時に2番目のフィールドの値のみ表示され、通常時に最初のフィールドの値のみ表示されます。

まとめ

最後に、それぞれのコントロールスタイルとオプションの関係を表にするとこんな感じになります。 f:id:tsumurashinya:20191220095057p:plain

あらかじめだいたい決まっている情報を手早く入力する方法

バージョン:FileMaker Pro 18 Advanced

この記事では、FileMaker での選択肢の作り方について解説します。 入力作業って、時間がかかりますよね。 それを短縮するのが選択肢です。 「あらかじめだいたい決まっている情報」を選択肢として設定することで、データ入力にかかる時間を短くすることができます。

内容

  • 選択肢を使って手早く入力する
  • 選択肢の作り方

選択肢を使って手早く入力する

あらかじめだいたい決まっている情報とは?

f:id:tsumurashinya:20191023232257p:plain売店で扱っている商品のように、それほど頻繁に変更されるわけではないものを、「あらかじめだいたい決まっている情報」として、手早く入力する方法をご紹介します。 ここでは、仮に果物屋さんを例にとっていきます。

編集ボックスに毎回手入力するのは、手間がかかりすぎる

f:id:tsumurashinya:20191023201802p:plain 注文があった時に、その注文内容を入力するとします。 いつもいつも同じ内容を、注文のたびにいちいち手入力するのは面倒な作業になります。 しかも、うっかりの打ち間違いをしてしまい、そのまま気づかないこともあるかもしれません。

一覧から選択するだけの方が断然カンタンで速い

f:id:tsumurashinya:20191023201806p:plain こういう場合には、商品の情報をあらかじめ選択肢として用意し、データ入力時には選択するだけにしておくと便利です。 選択するだけなので、手入力するよりも素早く入力できますし、名称の統一もできます。

選択肢の作り方

「値一覧」の作り方

それでは、選択肢の作り方を見ていきましょう。f:id:tsumurashinya:20191023201840p:plain FileMakerでは、選択肢は「値一覧」というものを使います。 値一覧にはいくつか種類がありますが、ここでは、その値一覧の中でも「動的な値一覧」というものの作成方法をご紹介します。 これは、選択肢用のテーブルを作り、値一覧でそれを参照するもので、あとで選択肢名を変更してもデータの一貫性が保つことができるなど、柔軟性が高いためおすすめです。

「動的な値一覧」の作り方

まず、選択肢用のテーブルを作成します。f:id:tsumurashinya:20191023230044p:plain 1. テーブルには選択肢を識別するための値欄(キーフィールド)と、選択肢の名称欄(名称フィールド)を用意してください。選択肢のデータを入力していきます。 キーフィールドの値は被らないように注意してください。

次に、作成した選択肢テーブルを値一覧として使用するための設定をしますf:id:tsumurashinya:20191023201819p:plain 2. 「ファイル」-「管理」-「値一覧...」を選択します
3. 「値一覧の管理」というウィンドウが表示されますので、「新規...」をクリックします。
4. 「値一覧の編集」というウィンドウが表示されますので、「値一覧名」に名称を入力し、5. 「フィールドの値を使用」を選択します。

f:id:tsumurashinya:20191023201823p:plain 6. 「最初のフィールドの値を使用」で値一覧に使用するテーブルを指定し、7. テーブルの中で値として使用するフィールド(キーフィールド)を選択します。8. 「2番目のフィールドの値も表示」にチェックを入れ、9. ここで名称フィールドを選択します。10. 「2番目のフィールドの値のみを表示」を選択肢、11. 「OK」をクリック、
12. 再度「OK」をクリックしてウィンドウを閉じます。

レイアウトに入力フィールドを作成します。
f:id:tsumurashinya:20191023213703p:plain 13. 上部のツール群から「ラジオボタンセット」を選びます。
14. ラジオボタンセットを配置したい範囲でドラッグさせます。
15. 「フィールド指定」ウィンドウが開きますので、データとして使用するフィールドを選択し、16. 「OK」をクリックします。
f:id:tsumurashinya:20191023214400p:plain 17. 右側にあるインスペクタで最右の「データ」タブを選び、18. コントロールスタイルを「ラジオボタンセット」、19. 値一覧で使用する値一覧を選びます。
20. これで、商品を選択できるようになりました。

選択肢を変更する必要が出てきたときには

f:id:tsumurashinya:20191023201832p:plainたとえば商品名を後で変更することになったとしても、選択肢テーブルの名称フィールドを変更すれば、自動的に反映されます。 データとして保存されるのは1番目のキーフィールドのみのため、2番目の名称フィールドを後で変更したとしても、データ上は問題になることはありません。

選択肢の付随情報を表示させる

f:id:tsumurashinya:20191023230104p:plain選択肢の情報を表示させることも可能です。 たとえば選択した商品の価格を表示させている場合、選択を変更すれば、それに合わせて表示も変わります。

まとめ

この記事では、選択肢としての値一覧の作り方、さらにリレーションを利用した値一覧の作り方までを解説しました。 値一覧は入力作業を手早く行うのに便利なアイテムです。 皆さんが値一覧を活用するにあたって、この記事が参考になれば幸いです。

顧客が今まで注文した商品を一覧表示させる

ある顧客の注文状況から、その顧客が今まで注文した商品を一覧表示するポータルを作ります。

なお、これは「FileMaker Training Series 応用編」アクティビティ9.2 を自分なりに分かりやすく整理するために作成しました。

f:id:tsumurashinya:20181115110012p:plain

 

テーブルオカレンス同士のリレーションシップはこうなってます。

f:id:tsumurashinya:20181115110016p:plain

 

まずは「顧客」テーブルオカレンスをベースにしたレイアウトを作成します。

f:id:tsumurashinya:20181115105837p:plain

 

次に「注文」テーブルオカレンスからのポータルを作成し、田中さんが注文した一覧を表示するようにします。

f:id:tsumurashinya:20181115105832p:plain

 

さらに「単位品目」テーブルオカレンスからのポータルを作成し、商品ごとの注文内容をポータルで表示します。

f:id:tsumurashinya:20181115105827p:plain

 

分かりやすいように、注文内容を商品でソートしたものを、さらに右側に表示してみました。田中さんは巨峰を2回購入されてますので、2回表示されてます。これを、1回のみの表示にするため、「単位品目」の代わりに「商品」テーブルオカレンスをポータルで表示させます。

f:id:tsumurashinya:20181115110018p:plain

 

そうすると、商品ごとに表示されるため、巨峰の表示は1回のみになります。

f:id:tsumurashinya:20181115112916p:plain

 

試しに、途中で作成した「注文」と「単位品目」のポータルを削除してみます。削除しても、元のテーブルオカレンスのリレーションが失われるわけではないため、「商品」ポータルの表示に変更はありません。

f:id:tsumurashinya:20181115105819p:plain

当初の目的のためには途中の「注文」「単位品目」ポータルは作成する必要はありませんけれども、今回は階層を段階的に把握するために作成しました。

長すぎるポップアップメニューを、カテゴリー分けして短くする

f:id:tsumurashinya:20180818161546j:image

長すぎるポップアップからカテゴリー分けをして選びやすくする方法をまとめました。


例えばポップアップメニューから商品を選ぶ場合

f:id:tsumurashinya:20180818165443j:image

ダイレクトに結んだ形です。
これでもいいのですが、商品の数が多いと選ぶのも大変になってしまいます。

 

カテゴリーを作成する

このような場合、商品をカテゴリー分けにすると選び易くなります。

間に「商品分類」というテーブルを作成し、

f:id:tsumurashinya:20180818161853j:image

値一覧で「次のテーブルから関連レコードの値のみ含める」を選択し、対象となるテーブルとして「商品分類」を選びます。

f:id:tsumurashinya:20180818161943j:image

商品にも、それぞれどの商品分類に属するのか入力しておきます。

f:id:tsumurashinya:20180818162020j:image

 

すると、先に「商品分類」でカテゴリーを選べば、次の「商品」ではそのカテゴリーに属するものしかポップアップに表示されないため、非常に選びやすくなります。

f:id:tsumurashinya:20180818162105j:image
f:id:tsumurashinya:20180818162110j:image

イチゴの品種のみが選べるようになりました♪

 

データが反映されない…

ただ、このようにすると一つ問題が発生します。

f:id:tsumurashinya:20180818162142j:image

イチゴの単価はそれぞれ違うはずなのですが、それが反映されていないのです。
これは、
「商品単価」で「商品」テーブルの情報が保存されていないため、FileMakerがどれを反映させていいか分からず、カテゴリーを選択した時点で、同一カテゴリーの最初の商品IDの値が反映されているのです。
しかし「商品」よりも「商品分類」を「単位品目」側に繋げないと、カテゴリーからの商品選択ができない…


これを解決するには、
実際の情報オカレンスとは別に、一覧選択専用のオカレンスを作成することです。
リレーションシップを表示して「商品」テーブルを選択し、ウィンドウ左下の

f:id:tsumurashinya:20180818162225j:image

で複製することでオカレンスを生成します。
作ったオカレンスをダブルクリックして

f:id:tsumurashinya:20180818162254p:image

と名前を変更します。
そして、作ったオカレンスを「商品分類」テーブルに繋ぎ、元の「商品」テーブルは「単位品目」テーブルと直接つなげてしまいます。

f:id:tsumurashinya:20180818163612j:image

 

この状態でブラウズモードに戻れば、小計がきちんとそれぞれの商品の金額に反映されるようになります。

f:id:tsumurashinya:20180818162145j:image

 ただ、値一覧も修正しておく必要があります。

「商品分類からの商品一覧」値一覧を開き、「商品」を「商品 一覧用」に変更します。

f:id:tsumurashinya:20180928110109p:plain

そうしないと、新しくレコードを作成してデータを入力しようとしたときに、うまく選択できなくなってしまいます。