FileMakerでQRコード作成やQRコード読み取りをするいくつかの方法

QRコード

FileMaker でQRコードを作成したり、読み取りをしたりといった機能を作る機会があったので、そのときに試した方法をいくつかご紹介してみたいと思います。

QRコード生成について

テキストフィールドに入力された文字列から QR コードを表示させます。

FileMaker には商用ソフトで QR コード作成プラグインもあったりしますが、今回はお金のかからない方式で考えてみました。

なお、開発環境は下記の通りです。

  • Mac OSX
  • FileMaker Pro 12

1. Google Chart API を使う方法

Google Chart API を利用する方法です。既存の公開 API を利用するだけなので、一番手っ取り早い方法かと思います。

レイアウトにテキストフィールドとWebビューアを配置して、下記のようなURLを指定します。

[text]
"http://chart.apis.google.com/chart?cht=qr&chs=200×200&chl=" & テーブル名::フィールド名
[/text]

これで、テキストフィールドを変更するたびに、Web ビューアに QR コードが表示されます。

当たり前ではありますが、Google Chart API を使うにはインターネットに接続された環境であることが前提となります。

この方式は HTTP リクエストを実行するだけなので、例えば QR コードを返す Web アプリを作ってしまえば、閉じられたネットワーク環境でも同様のことはできます。

PHP であれば、この辺りのライブラリを利用して QR コードが結構簡単に作れてしまいます。

2. libqrencode を使う方法

オープンソースの QR コード生成ライブラリ libqrencode を使う方法です。

まず、 qrencode という実行コマンドをインストールしておきます。

[shell]
# wget http://fukuchi.org/works/qrencode/qrencode-3.4.2.tar.gz
# ./configure
# make
# make install
[/shell]

FileMaker では、下記のように AppleScript から qrencode を実行するスクリプトを指定して、QR コード画像ファイルを生成します。

[text]
"do shell script \"cd " & $apppath & ";/usr/local/bin/qrencode -o output.png " & テーブル名::フィールド名 & "\""
[/text]

あとは、「ピクチャを挿入する」スクリプトで画像ファイルをオブジェクトフィールドに表示させます。

ちなみに、 Windows 環境であれば、同サイトから qrencode-win32 というライブラリをインストールすると qrcode.exe という実行ファイルができるので、それを実行する形で同様な仕組みができます。

2014/8/27追記

Windows 環境での qrencode-win32 の使い方について、お問い合わせを頂きましたので追記しておきます。

※ qrencode-win32 はこちらからダウンロードして「C:\Program Files\QRCodeGui\qrcode.exe」にインストール済みとします。

スクリプトの「Event を送信」でオプションの計算式に、以下のような文字列を指定します。

[text]
"\"C:\Program Files\QRCodeGui\qrcode.exe\" -o \"C:\path\to\output.png\" "
& テーブル名::フィールド名
[/text]

あとは、上のスクリプトを実行すれば C:\path\to\output.png に画像ファイルが作成されます。

QRコード読み取りについて

FileMaker Go から QR コードリーダーアプリを起動して、 QR コードを読み取る処理を試してみました。

ネットで評判の良かった幾つかのアプリを試してみたうち QRdeCODE、pic2shop で確認が取れたやり方となります。

開発環境は下記の通りです。

  • Mac OSX
  • FileMaker Pro 12
  • ( QR コード読み取り時)FileMaker Go 12

1. QRdeCODE を使う方法

QR コードの開発元であるデンソーから提供されている QR コードリーダーアプリです。読み取り能力は高いし、高速だし、¥170円で十分元が取れるアプリだと思います。

まずFileMaker で、任意のスクリプトを作成し、次のような URL を開く処理を指定します。

[text]
"QRdeCODE://fmp://$/" & Get ( ファイル名 ) & "?script=scan_qrdecode&param="
[/text]

  • 「QRdeCODE」は QRdeCODE の URL スキーム名です
  • 「fmp」は FileMaker Go 12 の URL スキーム名です
  • 「scan_qrdecode」は コールバックスクリプト名を指定します

このスクリプトを実行すると、QRdeCODE アプリが起動します。

また、scan_qrdecode という名前でスクリプトを作成します。 scan_qrdecode の中で「Get ( スクリプト引数 )」を指定すれば、 QRdeCODE の読み取り結果を取得することができます。

2. pic2shop を使う方法

ネット上でも FileMaker との連携実績をよく見かけるアプリです。こちらは無料アプリです。読み取る位置にバーが表示されるのが、なかなか使いやすいリーダーです。

QRdeCODE と同様に次のような URL を開くスクリプトを作成します。このスクリプトを実行すると pic2shop が起動します。

[text]
"pic2shop://scan?callback=fmp%3A//%24/" & Get ( ファイル名 ) & "%3Fscript%3Dscan_pic2shop%26param%3DQR"
[/text]

あとは、 scan_pic2shop という名前のスクリプトを作成し、「Get ( スクリプト引数 )」で QRdeCODE の読み取り結果を取得できるのは一緒です。

サンプルアプリ

上記の処理が動作するサンプルアプリは、githubに公開してますのでご自由にお試しください。

他にも色々方法があると思いますが、皆さんのオススメの方法などありましたらぜひ教えてください!

photo credit: Fabrice de Nola via photopin cc