第32話 フィールドオプション 続き2

お世話になっております。エヌ・ケイ・カスタマイズの沖田です。前回フィールドオプションの設定にて入力値の自動化についての記載でありましたが、フィールドオプションには他にも、さまざまな設定がありますので、引き続き学習していきたいと思います。

フィールドオプション:入力値の制限
入力を制限することもあります。フィールドオプションの「入力値の制限」は、ある一定の範囲や文字だけの制限だけではありません。例えば、必ず入力して欲しいフィールドを空のままにできないようにメッセージを表示して、ユーザがうっかり入力しないままになることを防ぐことも可能です。

 入力値の制限は[フィールドオプション]ダイアログの[入力値の制限]タブでおこないます。設定は、フィールドごとにおこないます。おもにチェックボックスをクリックして設定をおこないます。

 『ユーザの入力をきちんと制限しよう!』と思ったら、決めなければならないことがいくつかあります。入力値の自動化より少し複雑です。1 つずつ、どのようなことを決めるか確認します。 下図にフィールドオプションの設定画面を表示しておりますので、確認していきます。

[フィールドオプション]ダイアログの「入力値の制限」タブ

(1)なにを
 どのフィールドに設定しようとしているか、です。 図でいうと、”タスク”というフィールドに対してのオプションになります。

(2)いつ
 「このフィールドの入力値を制限する」は、制限に合致しているかどうかを、いつ評価するかです。
 データ入力の経路はいくつかあります。次のどちらで制限するべきかを考えます。

  常時: データ入力時に加え、インポートやスクリプトでの設定時も制限します。
  データの入力時のみ: ブラウズモードで入力されるときのみ制限されます。

(3)どの程度
 制限されるべきタイミングでは、FileMaker Pro Advanced がユーザに警告メッセージを出します。[データの入力時にユーザによる上書きを許可する]がオンの場合、その警告を無視する選択ができます。確実に制限するにはチェックをオフにします。

(4)どの条件で
 具体的な制限の内容を指定します。いくつかのオプションがあります。オプションによって他のレコードと比較がおこなわれるため、警告メッセージが表示されるタイミングが異なります。 下図参照。

(5)どのように
 制限されるべきタイミングで表示される警告メッセージの内容を独自の文言で指定することができます。[制限値以外の入力時にカスタムメッセージを表示]のチェックをオンにして、最大255 文字までのメッセージを入力します。

警告のメッセージ表示される内容とボタン
設定内容により、どのような内容で表示されるかを次図を確認してください。通常のメッセージ、カスタムメッセージどちらも同じ選択肢と結果になります。

 [データの入力時にユーザによる上書きを許可する]チェックがオン
  ・はい: 入力されているデータ(制限値以外のデータ)の入力をおこないます
  ・いいえ: レコードは確定されずにフィールドが編集中の状態に戻ります。
  ・フィールド復帰: 入力されているデータが元に戻ります。
 [データの入力時にユーザによる上書きを許可する]チェックがオフ
  ・OK: レコードは確定されずにフィールドが編集中の状態に戻ります。
  ・フィールド復帰: 入力されているデータが元に戻ります。

図 入力値の制限のメッセージ(標準メッセージとカスタムメッセージ)

フィールドオプション:データの格納
フィールドには入力されたデータが「格納」されています。通常、フィールドは入力されたデータをレコード(フィールド)ごとに格納します。独特の格納方法もオプションとして用意されています。

格納の設定は[フィールドオプション]ダイアログの「データの格納」タブでおこないます。設定は、フィールドごとにおこないます。

グローバル格納
[グローバル格納(すべてのレコードに1 つの値)を使用する]のチェックがオンのフィールドは「グローバルフィールド」とも呼ばれます。集計タイプのフィールド以外のすべてのタイプに設定できます。

グローバル格納フィールドに入力されたデータは、すべてのレコードで共有されます。レコード数に関係なくデータを格納する特別な存在です。そして、非関連のテーブルもデータを表示することが可能です。使いどころはさまざまです。設定箇所は、下図で囲っている箇所になります。
 ●グローバルフィールドの使用箇所例
 ・ 自社名などすべての場面で共通なデータを入れる
 ・ 一時的なユーザの選択したデータを格納してスクリプトで処理する
 ・ リレーション先を絞り込みするための元フィールドとして指定する
 ・ 検索画面等の検索用入力欄のフィールドとしての利用

オブジェクトデータの外部保存
オブジェクトタイプのフィールドでは、表示される内容が変わります。オブジェクトタイプのフィールドのデータをどこに保存するか指定します。外部に保存するとファイルのサイズが肥大せず効率の高いバックアップや共有が可能になります(合わせて「セキュア格納」を指定すると暗号化がなされます)。 設定箇所は、下図で囲っている箇所になります。

その他:繰り返し
繰り返しフィールドを多用するのは避けた方が無難です。他のリレーショナルデータベースに無い独特のデータの持ち方をするので格納されたデータの用途によっては苦労することがあるためです。
参照用としてカレンダー表示等に使用する場合が私はあります。また印刷用の帳票レイアウト時での使用など。

まとめ
 入力値の制限は、上記で記載したようにフィールドオプションの設定で行うことにより、事前に誤った内容が入力されるのを防ぐことができます。
もちろん今回説明したフィールドオプションで入力値の制限ではなく、スクリプトでの記述による制限も可能です。その際は、スクリプトトリガ等を利用することになります。

作成するカスタムAppの仕様により、実装方法はその都度、変わってきますが、今回記載したフィールドオプションの動きを理解しておくと、実装スピード、メンテナンス性共に向上してくのではと思っております。

今回は以上になります。今年も引き続き、毎週更新予定としておりますので、どうぞよろしくお願い致します。

Follow me!