【FileMaker】来場者チェックをQRコードでやろう

コロナ禍の昨今ではもっぱらオンラインセミナーが主流ですが、会場で開催するイベントでは入場者チェックが欠かせないと思います。
チケットに触るのはスタッフも来場者も気にすると思うので、この際一気にスマホ等に保存したQRコードで来場者チェックを行うというのが進んで欲しいですね。

割と鉄板ネタですが、FileMaker GoでもバーコードやQRコードが読み取れるので、今回はQRコードで来場者チェックをやってみたいと思います。

# FileMaker バージョン
QRコードの読み込みは、バージョン13以降で実装可能です。

# 動きについて
動きはこんな感じです。
提示されたQRコードを読み取り、リストアップしている来場者から検索し、該当したら来場チェックをする、というものです。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">今日はこんなの作ってました。<a href="https://twitter.com/hashtag/filemakergo?src=hash&amp;ref_src=twsrc%5Etfw">#filemakergo</a> で、QRコード読み取り。<br>来場者チェックはもう紙を卒業しましょう。<a href="https://twitter.com/hashtag/filemaker?src=hash&amp;ref_src=twsrc%5Etfw">#filemaker</a> <a href="https://t.co/TUW2SiLzD3">pic.twitter.com/TUW2SiLzD3</a></p>&mdash; Guppy Web Service (@GuppyWebService) <a href="https://twitter.com/GuppyWebService/status/1335588168347787265?ref_src=twsrc%5Etfw">December 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# QRコードの作成
今回はQRコードが作成され、すでに来場者に渡っているところからのスタートなので実装部分は省略します。
こちらのサンプルがわかりやすいです。
[fmgo.jp : QR コードを FileMaker Go で作成 【fmQRcode】](https://fmgo.jp/detail.php?recid=577)

FileMakerで作らなくてもいい場合は、無料のQRコード作成サイトで十分かと思います。

# 実装
## データベース構成
そんなにフィールドを必要としていないです。
QRコードを読み取るフィールドと、来場者を管理しているテーブルのみです。
リレーションシップも特にありません。
![スクリーンショット 2020-12-06 22.42.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/f7c3f565-9b3d-c83f-ac98-468e0f40652d.png)

今回はQRコードを読み取る機能として、スマホのカメラを使いますので、撮影したQRコードを認識するオブジェクトがあれば十分です。
![スクリーンショット 2020-12-06 22.42.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/09c80609-35a3-36ab-5779-8cc5f11e5e32.png)

来場者テーブルは、QRコードに埋め込む番号と出血を確認するチェックフィールドがあれば十分です。
![スクリーンショット 2020-12-06 22.42.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/c719db24-2662-a4cc-f50e-37c4198f4281.png)

## レイアウトとスクリプト
### QRコードを読み取るレイアウト
QRコードを読み取るオブジェクト（カメラ起動部分）と、そのカメラを起動するボタンを配置します。
![スクリーンショット 2020-12-06 22.50.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/66154f69-3bbd-21b6-4b6e-2719550430a2.png)

レイアウトは、QRコード読み込みオブジェクトに以前の画像が貼り付けられていたら情報漏洩に繋がるので、レイアウトが表示されたらこのフィールドをクリアするスクリプトを設定しておきます。
![スクリーンショット 2020-12-06 18.59.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/28f202f1-2f8f-11e6-c743-2a23ed0adb66.png)
スクリプトは、フィールドをクリアするのみです。
![スクリーンショット 2020-12-06 18.59.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/237d87fe-522c-d6c2-08a4-62ce77b9f2c8.png)

「QRコード読み取り」ボタンは、２つの機能を果たしています。
まずは、「[デバイスから挿入](https://help.claris.com/ja/pro-help/content/insert-from-device.html)」でカメラからQRコードを読み取り、その読み取った文字列を変数(＄番号）に保存します。
その後、読み取った番号を引数にして、出欠確認をします。
![スクリーンショット 2020-12-06 18.58.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/92183606-855f-4a68-46d2-8e0db945241e.png)

来場者チェックをするスクリプトでは、番号をキーに検索しています。
![スクリーンショット 2020-12-06 19.03.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/30fb3ed7-ce58-5a37-2356-a554f19c793e.png)


## 来場者リスト
来場者リストは、チェック項目つきで表示するので、チェックボックスで設定する値を、値一覧で定義しておきます。
![スクリーンショット 2020-12-06 22.59.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/bd865099-ecf0-be5d-5013-3b411acf3f69.png)

レイアウトは、各行のフィールド枠を表示しておきたい（このほうがきれいに揃ってる感がありますが、個人差なのでやらなくてもいいです）ので、チェックを外しておきます。
![スクリーンショット 2020-12-06 19.07.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/becc64dd-c632-39af-6a27-d8993fdb238d.png)

リストは、見た目普通ですが、、、
![スクリーンショット 2020-12-06 18.59.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/33d3c66f-07f9-1cdf-d129-2398060b68fc.png)

実はチェックがつくと背景が濃くなります。
![スクリーンショット 2020-12-06 23.03.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/d25fa9ce-7b1a-fc9d-478b-9bd1c7b2a16a.png)

これは、出欠フィールドの非表示設定をしていて、チェックが着いていない状態では表示されないようになっています。
![スクリーンショット 2020-12-06 23.04.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60538/a9c62cfe-815f-3baf-75df-ed8f4d3801a8.png)


FileMakerの実装はこんなところです。

# もう紙を卒業しよう
IT業界のカンファレンスでも、割と「紙に印刷してもってこい」とか「お名刺を２枚添えて、、、」と言われますが、もうそういうことを卒業しましょう。
そして、来場者チェックはFileMaker Goでピッとするだけにしましょう。