FileMaker Add on : バーコードジェネレーター
Claris FileMaker 19.1 では 9 つの JavaScript アドオンが追加されました。その中の一つ、バーコードジェネレーターについて記事にしていきます。
このアドオンを利用することにより、オブジェクトフィールドにさまざまな種類のバーコードを作成できるようなりました。
基本的な機能の紹介と、応用した例の記事になります。基本的なことは大丈夫!という人は、スキップして応用例をご覧ください。
基本的な機能
アドオンを配置して、コンフィギュレータで各種設定をします。
応用例
基本的な例では、「Web ビューア内のボタンを押す」という行為によって、オブジェクトフィールドにバーコードが挿入されることを示しました。
応用例では、スクリプトトリガなどでテキストが Save されたら、オブジェクトフィールドに値が入るようにしてみます。
スクリプトは、「BarcodeGenerator Advanced」を利用します。
このスクリプトを利用することによって、Web ビューアをクリックすることなく、スクリプトからバーコードを作成することができます。
このまま「BarcodeGenerator Advanced」スクリプトを実行すると、オブジェクトフィールドに黄色い文字で「advanced」というバーコードが生成されるのがわかります。
このスクリプトの中の一部を変更すれば、色々応用できます。このスクリプトの中で Web ビューアを利用しているので、レイアウト上に 1 pt でも、Web ビューアが表示されている必要があります。
スクリプトの中身を変更
#
# /##
#
#
# EXAMPLE OF how to completely customize the barcode options
#
# @param {string} AddonUUID
#
# #/
エラー処理 [ オフ ]
ユーザによる強制終了を許可 [ オフ ]
#
#
#
レコード/検索条件確定 [ ダイアログあり: オフ ]
#
変数を設定 [ $json ; 値: Get ( スクリプト引数 ) ]
#
#
変数を設定 [ $AddonUUID ; 値: JSONGetElement ( $json ; "AddonUUID" ) ]
変数を設定 [ $SourceField ; 値: JSONGetElement ( $json ; "SourceField" ) ]
変数を設定 [ $LineColor ; 値: JSONGetElement ( $json ; "LineColor" ) ]
変数を設定 [ $BarcodeDisplayValue ; 値: JSONGetElement ( $json ; "BarcodeDisplayValue" ) ]
変数を設定 [ $Format ; 値: JSONGetElement ( $json ; "Format" ) ]
変数を設定 [ $FieldName ; 値: JSONGetElement ( $json ; "FieldName" ) ]
#
#
スクリプト実行 [ 指定: 一覧から ; 「BarcodeGenerator Get WebViewer Object Name」 ; 引数: $AddonUUID ]
変数を設定 [ $WebViewerName ; 値: Get ( スクリプトの結果 ) ]
#
#
変数を設定 [ $text ; 値: Evaluate ( $SourceField ) ]
変数を設定 [ $options ; 値: JSONSetElement ( "" ; [ "lineColor" ; $LineColor ; JSONString ] ; [ "format" ; $Format ; JSONString ] ; [ "displayValue" ; $BarcodeDisplayValue ; JSONString ] ; [ "fieldName" ; $FieldName ; JSONString ] ) ]
#
#
Web ビューアで JavaScript を実行 [ オブジェクト名: $WebViewerName ; 関数名: "BarcodeGenerator_Generate" ; 引数: $text, $options ]
#
引数には、次の JSON を渡します。AddonUUID については、レイアウトに配置してある、Web ビューアのオブジェクト名を参照して指定してください。
スクリプト引数
JSONSetElement (
"" ; [
"AddonUUID" ;
"C3718E1A-6CE7-4D69-A9D4-22D1B57C577C" ;
JSONString
] ; [
"SourceField" ;
GetFieldName (
バーコードジェネレーター::テキスト
) ;
JSONString
] ; [
"LineColor" ;
"Black" ;
JSONString
] ; [
"BarcodeDisplayValue" ;
true ;
JSONBoolean
] ; [
"Format" ;
"CODE39" ;
JSONString
]; [
"FieldName" ;
GetFieldName ( バーコードジェネレーター::バーコード ) ;
JSONString
]
)
完成
無事、値が変わるとバーコードも変更されるようになりました。
サンプルファイル
サンプルファイルをダウンロードして試してみてください。( バージョンは 19.1 以降で利用してみてください。 )
注意点
Loop などで大量のレコード上でバーコードを大量に生成しようとすると、ひとつ前のレコードの情報などが、バーコードとして保存される可能性があるので、ひとつひとつのレコードで作成するようにしたほうがいいと思っております。
この記事が気に入ったらサポートをしてみませんか?