見出し画像

FileMaker Add on : バーコードジェネレーター

Claris FileMaker 19.1 では 9 つの JavaScript アドオンが追加されました。その中の一つ、バーコードジェネレーターについて記事にしていきます。

このアドオンを利用することにより、オブジェクトフィールドにさまざまな種類のバーコードを作成できるようなりました。

基本的な機能の紹介と、応用した例の記事になります。基本的なことは大丈夫!という人は、スキップして応用例をご覧ください。

基本的な機能

アドオンを配置して、コンフィギュレータで各種設定をします。

ソースとオブジェクトフィールドを指定する。
バーコード形式と線の色、値を表示させるかどうか指定
背景の色、ボタンを非表示するオプション
青いボタンを押すと、オブジェクトフィールドにバーコードが挿入される。



応用例


基本的な例では、「Web ビューア内のボタンを押す」という行為によって、オブジェクトフィールドにバーコードが挿入されることを示しました。

応用例では、スクリプトトリガなどでテキストが Save されたら、オブジェクトフィールドに値が入るようにしてみます。

スクリプトは、「BarcodeGenerator Advanced」を利用します。

このスクリプトを利用することによって、Web ビューアをクリックすることなく、スクリプトからバーコードを作成することができます。

このまま「BarcodeGenerator Advanced」スクリプトを実行すると、オブジェクトフィールドに黄色い文字で「advanced」というバーコードが生成されるのがわかります。

何も変更していない「BarcodeGenerator 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 などで大量のレコード上でバーコードを大量に生成しようとすると、ひとつ前のレコードの情報などが、バーコードとして保存される可能性があるので、ひとつひとつのレコードで作成するようにしたほうがいいと思っております。

この記事が気に入ったらサポートをしてみませんか?