見出し画像

FileMakerでQRコードを作成

FileMakerでQRコードを作りたい!!!

バーコードはアドオンを使用すれば簡単に作成可能ですが、
QRコードの作成はできない…
ということで色々調べてみました。

結論・・・WEBビューアを使用すればQRコードの作成が可能

こちらの記事を参考にさせていただきました。
参考記事ではHTMLを別ファイルで保存していましたが、今回はWEBビューアに埋め込む形で作成します。



概要

以下、手順でQRコードを作成します。
<FM>・・・FileMaker
<JS>・・・JavaScript

  1. WEBビューアにJavaScriptを埋め込んだHTMLを読み込み<FM>

  2. [WEBビューアでJavaScriptを実行]を使用しQRコードを作成<JS>

  3. QRコードをBase64形式に変換<JS>

  4. Base64→画像に変換しオブジェクトフィールドに設置<FM>


レイアウト作成

レイアウト作成
  • WEBビューア:QRコード作成に利用(オブジェクト名をつける画像赤枠)

  • オブジェクトフィールド:作成したQRコードを画像として設置

  • URL:QRコードへ変換したいものを入力

  • HTML:WEBビューアで使用するHTMLを入力

WEBビューア設定

WEBアドレスにはHTMLを入力しているフィールドを指定
※HTMLを直接入力することも可能
[JavaScriptによるFileMakerスクリプトの実行を許可]にチェックをいれる


スクリプト作成

HTML・スクリプトの解説は参考記事をご確認ください。

HTML

<!DOCTYPE html>
<html>
<head>
   
<meta charset="UTF-8">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>
</head>

<body>
    <div id="qrcodeCanvas"></div>
    <script>
        async function makeQR(codingText) {
            const div = document.getElementById("qrcodeCanvas");
            while (div.lastChild) {
                div.removeChild(div.lastChild);
            }
            await jQuery('#qrcodeCanvas').qrcode({ text: codingText });
            const canvas = document.getElementsByTagName('CANVAS')[0];
            const png = canvas.toDataURL();
            FileMaker.PerformScriptWithOption('QRcopy', png, 0);
        }
    </script>
</body>
</html>

FileMakerスクリプト

スクリプト名:QR作成
※引数として変数を渡すので、複数フィールドを指定可能です
※オブジェクト名はWEBビューアに設定した名前を指定します

変数を設定 [ $変換値 ; 値: QR::URL ]
Web ビューアで JavaScript を実行 [ オブジェクト名: "wv" ; 関数名: "makeQR" ; 引数: $変換値 ]

スクリプト名:QRcopy
※JavaSrciptで使用しているため変更禁止です

変数を設定 [ $QR ; 値: GetValue ( Substitute ( Get ( スクリプト引数 ) ; "," ; "¶" ) ; 2 ) ]
フィールド設定 [ QR::QRコード QR::QRコード ; Base64Decode ( $QR ; "QR.jpg" ) Base64Decode ( $QR ; "QR.jpg" ) ]

テスト

動作検証1
  1. 変換ボタンに[スクリプト:QR作成]を設定

  2. HTMLに上記HTMLを入力

  3. URLにQRコードへ変換したい値を入力 ※URL以外も可能

  4. 変換ボタンをクリック

動作検証2

無事QRコードの表示ができました!!

念のためQRコードを読み取り(iPhone標準アプリを使用)

QRコード読み込み
URL読み込み完了

まとめ

FileMakerでもQRコードを作成することができました。

今回は後から見直すことを想定して、QRコードをオブジェクトフィールドに入力しました。
一度きりの表示 または 毎回QRコード作成でも問題なければWEBビューアへの表示のみで問題なさそうです。

URLをQRコードへ変換したのであればiPhone標準アプリで読み込めば自動的に標準ブラウザで表示してくれます。
しかし、数字・文字などを変換した際はFileMakerでQRコード読み込みアプリを作成した方がよさそうです。

他にもGetLiveTextAsJSONを使った記事を投稿しているので興味があれば読んでいただけると幸いです。

ご一読いただきありがとうございました!!!


おまけ

URLではなく数字のみを実施(見積番号などを想定)

数字のみQRコードに変換
iPhone標準アプリで読み込み
FileMakerのデバイスから挿入で読み込み

数字・文字を入力する場合はFileMakerアプリで読み込みを行う方が良さそうです。


おまけ2

WEBビューアの謎の下線を消したい!!

WEBビューア

WEBビューアの設定画面にて以下チェックを外すことで非表示にすることができます。(下画像赤枠)

  • 進捗バーの表示

  • ステータスメッセージの表示

WEBビューアの設定


設定変更後

WEBビューアの枠のみ表示されるようになりました!!!

いいなと思ったら応援しよう!