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を指定します。

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

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

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

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

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

2. libqrencode を使う方法

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

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

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

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

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

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

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

2014/8/27追記

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

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

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

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

あとは、上のスクリプトを実行すれば 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 を開く処理を指定します。

"QRdeCODE://fmp://$/" & Get ( ファイル名 ) & "?script=scan_qrdecode&param="
  • 「QRdeCODE」は QRdeCODE の URL スキーム名です
  • 「fmp」は FileMaker Go 12 の URL スキーム名です
  • 「scan_qrdecode」は コールバックスクリプト名を指定します

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

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

2. pic2shop を使う方法

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

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

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

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

サンプルアプリ

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

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

photo credit: Fabrice de Nola via photopin cc


【ご相談・お見積もり無料】お気軽にご相談ください!

株式会社フェアマインドではFileMakerを活用した各種業務を手がけています。

  • 業務系システム開発
  • iPhone/iPad向けアプリ開発
  • 基幹系システムと連動したサブシステム開発
  • 業務改善ITコンサルティング

お問い合わせはこちらからどうぞ!

SNSでもご購読できます。