FileMakerでiPad miniのバーコードリーダーを2行で作る

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

iPadのカメラとFileMaker Pro11を使ってバーコードリーダーを数ステップで開発する

■目的

FileMaker11で開発したDB(.fp7ファイル)を、iOS(iPhone, iPadシリーズ, iPod Touch)で動かし、標準カメラでバーコードを読み取って、備品管理や書籍管理とかやってみる。ための簡単なチュートリアル。

FileMaker13以降だとバーコードのスキャニングを標準で持っているのですが、Ver.11では非対応なので。

■ポイント

  • 本体のカメラを使う(別途外付けのバーコードリーダーなどを使わず、ビルトインのカメラを使う)
  • ここではiPad miniで動かす場合を想定していますが、iPhoneやiPod Touchでも動きます。
  • スクリプトは全部で2行!

■必要なもの

  • FileMaker Pro11 or それ以上
    PC用DB開発アプリで、主な開発に必要です。高めですが、これがあることが前提です。
    メーカーサイト
  • FileMaker Go11 for iPad
    FileMakerのDB(.fp7ファイル)をiPad上で動かすのに必要なiOSアプリです。これは有償ですが、FileMaker Pro12を持っている人は無料のFileMaker Go12をiPadにインストールしてください。(※)
    メーカーサイト
  • pic2shop -Barcode Scanner and QR Reader
    iOS用のバーコードリーダーアプリ。iPad(HD)版は有償でiPhone版は無料(広告付き)です。iPhone版をiPadにインストールしても問題なく動くので、まずは無料版を入れます。iPhone用画面なので画面が小さいですが「2x」ボタンであらかじめ倍のサイズにしておけば問題ないです。
    メーカーサイト
  • iTunes
    開発したデータベースをiPadに転送するのに必要です。面倒な場合は、メールに添付したり、ドロップボックスからFileMakerGoで開いても大丈夫です。

※キャンペーン中に購入したので2千円弱でしたが、正規でも3~4千円です。バーコードリーダーを新たに購入すると考えたら安いもんじゃないでしょうか。

■バーコードの基礎の基礎

バーコードリーダー対応の開発というと敷居が高くなる気がしますが、バーコード・リーダーがUSB接続であろうがBluetooth接続でろうが、機械としては「外付けのテンキーやキーボードみたいなもの」と考えると楽になります。

フォームなどの入力画面で、選択中のフィールド(入力欄)にテンキーやキーボードでタイプしたデータが入力されるのと同じで、タイプする代わりに「ピ」と読み込んだデータが、選択中のフィールド(カーソルのある位置)に流れ込みます。

「ピ」とやる直前に、流しこみたいところにフォーカス(カーソル)をJavasriptなどで当てておくことさえ注意できれば、WEBベースの開発にも活用できます。

この記事では、バーコード・リーダーのアプリにバーコードを読み込ませて、そのデータを入力させます。

また、雑誌や本以外に、備品などにバーコードを貼りたい場合は、バーコードそのものを作るとなると規格が複数あるので大変ですが、プリンタドライバの機能・Word・テプラなどの、データを渡すだけでバーコードにしてくれる機能を使って印刷(作成)するのが楽です。

主な流れ

ボタンを押したらバーコードアプリが立ち上がり、バーコードを読んだ後、そのデータを返してくるようにする。

下記はいささか説明がくどいですが、スクリプトは合計で2行です。

■具体的な流れ

開発

  1. 新規データベースを作成する
    普通にまっさらなDBを新規作成します。とりあえず”BarcodeTest”と名前を付けて保存します
  2. バーコード読み取り実行ボタンを作成する
    これも普通にフォームの編集でボタンを設置します。
  3. 読み取りボタン用のスクリプトを作成する
    フォームを編集状態のまま、上記で設置したボタンを右クリックで「スクリプト実行」から新規スクリプトを追加します。スクリプト名を”Open pic2shop app”にして下記スクリプトを記入します。実際には、スクリプト名はぶっちゃけ何でも構いません。
  4. 読み取ったデータを受け取り、そのデータを処理するスクリプトを作成する
    上記の”Open pic2shop app”スクリプトがバーコードを読み取った後に実行するスクリプトを作成します。
    まず、、スクリプト名を”Scan”にして、とりあえず(スクリプト引数で)受け取ったデータをダイアログ表示するスクリプを記述します。(下記参照)
    実際には、この受け取ったデータをフィールドに入れたり、検索に使ったりします。
  5. 開発終了
    DBを保存してFileMakerを終了しましょう。

“Open pic2shop app”の内容

「その他」の「URLを開く」で

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

上記は下記と同じで、URLエスケープしています。

pic2shop://scan?callback=fmp7script://$/BarcodeTest?script=Scan&param=EAN

上記の内容ですが、”pic2shop://scan”の部分でバーコードリーダー・アプリである”pic2shop”にスキャンするようにリクエストしています。

これは、同じiOS(iPhoneやiPad)内の別のアプリをリンクで呼び出す(リクエストする)URLスキームと言う手法です。パソコンのブラウザ上でiOSアプリのリンクをクリックするとiTunesが立ち上がることがありますが、同じ仕組みです。

具体的には、一般的なURLのプロトコル(”http://”や”ftp://”のかわり)にアプリ名指定しするとアプリが呼び出されます。例えばリンクのURLを”music:///”にすると「ミュージック」アプリが起動します。

また、起動したアプリに情報を渡したい場合は、一般的なWEBサービス同様、クエリに渡したい情報(引数)を指定します。

ここでは”callback=”以降で、実行後に読み取ったデータを返す先の情報を指定してクエリとして渡しています。

渡すのは、FileMakerGoのURLスキーマ(”fmp7script://”)、FileMakerGo内のDB名(“BarcodeTest“)、渡した後に実行するスクリプト名(“Scan“)、そして”param=”でバーコード・アプリが読み込むバーコード・タイプ(“EAN“)を指定しています。

これらの引数はアプリごとに仕様が違うので、アプリの仕様にそって渡します。

FileMakerPro12+FileMaker Go12の場合

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

“Scan”スクリプトの内容

「その他」の「カスタムダイアログを表示」で

"EAN=" & Get(スクリプト引数)

■DBのインストール

  1. iPadをiTunesにつなげ、アプリ画面にある”FileMakerGo”に(1)で作成した”BarcodeTest.fp7″をアップロードして、iPadを取り外します。
  2. iPad上で”FileMakerGo”を起動して登録されたDB(“BarcodeTest”)を選択し、おもむろにボタンを押します

どうでしょう?簡単でしょ?

参考文献

関連記事

Filemakerで15分区切りで時刻を切り上げ翌日にも反映させる... 時間単位で切り上げる計算式(翌日にも反映) タイムカードのように、打刻した時間を15分区切りで時間を切り上げ、24時をまわったら翌日にも反映させたい場合の計算式というかポイント(コツ)です。 ■ポイント 指定した日時を、日付と時刻に一度分ける 時刻を15分区切りで切り上げる タイム...
FileMakerのIWP(インスタントWEB公開)で使われるCSSの保存場所... InstantWebPublishing(IWP)のデフォルトCSSの保存場所 FileMakerPro11のインスタントWEB公開では、外部CSSを利用できないのですが、デフォルトの設定はどこかしらと思って調べてみました。 C:Program FilesFileMakerFile...
Filemakerでレイアウトのサイズにウインドウを自動調整+センタリング... FileMakerでウインドウ内のレイアウト描画領域を取得せずにウインドウサイズをフィット(自動変更)させる Filemakerで、ウインドウを開いた時、サイズをピッタリとレイアウトの領域に合わせたかったのですが、最初はGET()関数で「Get ( ウインドウ高さ )」とか「Get ( ウイン...

スポンサーリンク
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク
レクタングル(大)広告