様々な方からご覧いただいている、「ユーザマスタからログインする定番な方法」、コメントでお題をいただきましたので、続編として掲載します。
このファイル、まだあるのかな〜?と思ってフォルダを検索したら、まだありました。
えらい、私。
FileMaker 13バージョンで作成しましたが、MacOSをアップデートしたら新しいOSで13バージョンが起動できなくなったので、14にてお送りします。
お題は、「ログインしたユーザ情報を表示したい」です。
では、先のページのファイルに追加していきます。
というか、すでに追加されてました。
その後、編集したらしい私、ますますえらい。
動き
FileMakerにログインした際、ダイアログボックスにログインユーザ名とともにwelcomeメッセージを表示し、表示したレイアウトにログインユーザ名を表示する、という流れです。
実装
では、実装を見ていきます。
ログイン後のユーザ情報を保存するフィールドを、ユーザマスタにグローバルフィールドで設定します。
ちなみに、必ず同じユーザマスタでないとだめ、ということはありません。
システムでログインしているユーザ情報をいくつか持ち歩く必要がある場合は、別にテーブルを作った方が見やすいし管理しやすいと思います。
表示したいレイアウトに、マージフィールドなどで新規追加したユーザ情報のフィールドを配置します。
単にフィールドを配置したまま、入力可能な状況になっている場合は、改ざんされてしまう可能性が高いので、いじられたくないフィールドは、入力不可にするか、マージフィールドを使うといいですよ。
ログイン時に起動するスクリプトに、ログイン情報を保存する処理を入れます。
作成したスクリプトを、ファイルオプションのスクリプトトリガのOnFirstWindowOpenで指定します。
このトリガは、最初にファイルを開いたときに動くスクリプトを指定するので、ログイン直後になります。
もし、最初に表示したいレイアウトがある場合は、同じくレイアウトも指定します。
これは、メニュー画面を表示するときなど、システムの入り口にしたい場合に設定すると、見られたくない作業中のレイアウトなどを見られずに済みます。
その他思ったこと
FileMakerのセキュリティ管理を使ったログイン管理は、やり方の一つです。
関数も用意されているので、容易に実装できます。
ただ、システムを使用するユーザが増えると、セキュリティ管理にたくさんの名前がズラーっと並ぶことになり、セキュリティ管理とユーザマスタの管理が煩雑になるかもしれません。
やり方によっては、セキュリティ管理を最小限に使ったやり方などもあり、FileMakerから提供されいている機能を使って頭をフル回転させると、「あぁ、こういうやり方もあるね!」とアハ体験ができます。
皆さんもぜひ、ログインのやり方に限らず、やりたいことの実装方法を多方面からみて実装してみてくださいね。(私含む)