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

バージョン: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の特徴だと思います。