バーコード
5
GS1コード(バーコード)の読取りを行いたい
5
Biz/Browser HT ver1.4.0より、GS1コード読み取りに対応しました。
GS1対応バーコード読取エンジン
を選択して、バーコードスキャンを行うと
GS1コードが読み取れます。
【 使用方法 】
1.
GS1対応バーコード読取エンジンの利用登録がされたライセンス情報をインポートする。
※GS1対応バーコード読取エンジンは有償のオプション機能です。ご利用にはオプション機能のご契約が必要です。
2.
Runtime.ShowCodeScannerメソッド、もしくはCodeScannerView.StartCodeScannerメソッドのオプションでGS1対応バーコード読取エンジンを指定する。
【 GS1対応バーコード読取エンジンで追加された読取可能バーコード 】
Runtime.ShowCodeScannerメソッド/CodeScannerView.StartCodeScannerメソッドで共通して
使用できるバーコードです。
※他の定数と組み合わせることが可能です。
例: var format = Runtime.CODE_FORMAT_GS1_DATABAR +
Runtime.CODE_FORMAT_GS1_DATABAR_EXPANDED +
Runtime.CODE_FORMAT_GS1_DATABAR_LIMITED;
バーコード
CRSで指定する定数
GS1 DataBar
Runtime.CODE_FORMAT_GS1_DATABAR
GS1 DataBar Expanded
Runtime.CODE_FORMAT_GS1_DATABAR_EXPANDED
GS1 DataBar Limited
Runtime.CODE_FORMAT_GS1_DATABAR_LIMITED
GS1-128
Runtime.CODE_FORMAT_GS1_128
上記以外の読み取り可能なバーコードの一覧は
こちら
をご覧ください。
【 GS1対応バーコード読取エンジン向けのオプション 】
バーコード
説明
"DETECT_ENGINE"
バーコード検出エンジンを指定します。指定可能な値は下記の通りです。
・"ATAMI" : GS1コード対応エンジンを使用します
・(空値) : デフォルトのバーコード検出エンジンを使用します。
[使用例]
extraParams["DETECT_ENGINE"] = "ATAMI";
"GS1_GTIN_ONLY"
trueを指定すると、GS1合成シンボル中に含まれるGTINの情報だけを読取結果として返します。
"DETECTED_ENGINE"に"ATAMI"を指定した場合のみ使用できます。
GS1合成シンボルは読み取りに時間がかかりますが、GTINの情報だけが必要な場合はこのオプションを使用することで読取速度をあげることができます。
[ サンプルコード ]
CodeScannerView.StartCodeScannerメソッドを使用
Form BcdHT005_1{ Width = 408; Height = 766; CodeScannerView CodeScannerView1 { X = 13; Y = 388; Width = 383; Height = 214; Border = $TRUE; /* バーコードをスキャンした際に発生するイベント */ Function onCodeScanned(e) { var scan_format = e.Format; var scan_data = e.Data; /* EditBoxにスキャンした結果を表示 */ ^.EditBox1.Value = "Format:" + str(scan_format) + "、Data:" + scan_data + "\r\n" +^.EditBox1.Value; ^.Button2.Active = true; } } Label Label1 { X = 14; Y = 109; Width = 100; Height = 20; HorizontalAlign = $LEFT; VerticalAlign = $CENTER; Value = " バーコード種別"; FontFace = $BOLD; FontSize = 10; FgColor = $WHITE; BgColor = $339933; } CheckBox CheckBox1 { X = 14; Y = 132; Width = 380; Height = 192; BgColor = $WHITE; FontFace = $BOLD; TabIndex = 10; Number ItemWidth = 150; Number ItemHeight = 28; CheckItem:Number item1[18] { Layout = $BLANK; Width =^.ItemWidth; Height = 18; } item1[0] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 0; title = "ALL"; value = Runtime.CODE_FORMAT_ALL; } item1[1] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 0; title = "CODE128"; value = Runtime.CODE_FORMAT_CODE128; } item1[2] {X = ^.ItemWidth * 2; Y = ^.ItemHeight * 0; title = "CODE39"; value = Runtime.CODE_FORMAT_CODE39; } item1[3] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 1; title = "EAN13"; value = Runtime.CODE_FORMAT_EAN13; } item1[4] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 1; title = "EAN8"; value = Runtime.CODE_FORMAT_EAN8; } item1[5] {X = ^.ItemWidth * 2; Y = ^.ItemHeight * 1; title = "ITF"; value = Runtime.CODE_FORMAT_ITF; } item1[6] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 2; title = "QR_CODE"; value = Runtime.CODE_FORMAT_QR_CODE; } item1[7] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 2; title = "UPC-A"; value = Runtime.CODE_FORMAT_UPCA; } item1[8] {X = ^.ItemWidth * 2; Y = ^.ItemHeight * 2; title = "UPC-E"; value = Runtime.CODE_FORMAT_UPCE; } item1[9] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 3; title = "Codabar"; value = Runtime.CODE_FORMAT_CODABAR; } item1[10] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 3; title = "DataMatrix"; value = Runtime.CODE_FORMAT_DATA_MATRIX; } item1[11] {X = ^.ItemWidth * 2; Y = ^.ItemHeight * 3; title = "PDF417"; value = Runtime.CODE_FORMAT_PDF417; } item1[12] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 4; title = "Aztec"; value = Runtime.CODE_FORMAT_AZTEC; } item1[13] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 4; title = "GS1 DataBar"; value = Runtime.CODE_FORMAT_GS1_DATABAR; } item1[14] {X = ^.ItemWidth * 2; Y = ^.ItemHeight * 4; title = "GS1 DataBar Expanded"; value = Runtime.CODE_FORMAT_GS1_DATABAR_EXPANDED; } item1[15] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 5; title = "GS1 DataBar Limited"; value = Runtime.CODE_FORMAT_GS1_DATABAR_LIMITED; } item1[17] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 5; title = "GS1-128"; value = Runtime.CODE_FORMAT_GS1_128; } Value = 0; /* フォーマット形式を取得 */ Function getFormat() { if(item1[0].Selected) { return item1[0].Value; } else { var format1 = 0; var i; for(i=1; i < item1.length; ++i) { if(item1[i].Selected) { format1 += item1[i].Value; } } return format1; } } Function onTouch(e) { /* ALLが選択された場合、他を解除 */ if(e.from.index == 0) { var isActiveOtherItem = !e.from.selected; var i; for(i=1; i < item1.length; ++i) { item1[i].Active = isActiveOtherItem; item1[i].Selected = false; } } } } Label Label2 { X = 13; Y = 2; Width = 150; Height = 20; HorizontalAlign = $LEFT; VerticalAlign = $CENTER; Value = " バーコード検出エンジン"; FontFace = $BOLD; FontSize = 10; FgColor = $WHITE; BgColor = $339933; } Label Label3 { X = 13; Y = 21; Width = 270; Height = 34; Value = "GS1対応バーコード読取エンジン"; FontFace = $BOLD; FontSize = 14; BgColor = $WHITE; } Button Button1 { X = 15; Y = 336; Width = 91; Height = 40; Title = "カメラ開始"; TabIndex = 1; Function OnTouch( e ) { try { /* カメラを起動 */ ^.CodeScannerView1.ShowCamera(Runtime.SourceTypeRearCamera); ^.Button2.Active = true; ^.Button3.Active = true; ^.Button4.Active = true; this.Active = false; } catch (e) { //.MessageBox(e.Message); } } } Button Button2 { X = 111; Y = 336; Width = 91; Height = 40; Title = "スキャン開始"; Active = false; Function OnTouch( e ) { /* フォーマット形式の設定値 */ var format1 = ^.CheckBox1.getFormat(); /* 設定値格納用配列 */ var extraParams = new Array; /* 各設定値を配列に設定 */ extraParams["DETECT_ENGINE"] = "ATAMI"; /* 読取モード(単発)*/ extraParams["CONTINUOUS_MODE"] = 0; /*高精細画質モード*/ extraParams["MAX_RESOLUTION"] = true; /*読取りエリアマージン*/ extraParams["SCAN_AREA_MARGIN_TOP"] = 0.2; extraParams["SCAN_AREA_MARGIN_BOTTOM"] = 0.2; extraParams["SCAN_AREA_MARGIN_LEFT"] = 0.1; extraParams["SCAN_AREA_MARGIN_RIGHT"] = 0.1; try { /* スキャン開始 */ ^.CodeScannerView1.StartCodeScanner(format1, extraParams); ^.EditBox1.Value = "スキャンを開始しました。\n" +^.EditBox1.Value; ^.Button3.Active = true; this.Active = false; } catch (e) { //.MessageBox(e.Message); } } } Button Button3{ X = 207; Y = 336; Width = 91; Height = 40; Title = "スキャン停止"; Active = false; Function OnTouch( e ) { try { /* スキャンを停止 */ ^.CodeScannerView1.StopCodeScanner(); ^.EditBox1.Value = "スキャンを停止しました。\n" + ^.EditBox1.Value; ^.Button2.Active = true; } catch (e) { if(e.code == "46"){ ^.EditBox1.Value = "スキャンが開始されていません。\n"+^.EditBox1.Value; }else{ //.MessageBox(e.Message); } } } } Button Button4 { X = 304; Y = 336; Width = 91; Height = 40; Title = "カメラ停止"; Active = false; TabIndex = 2; Function OnTouch( e ) { try { /* カメラを停止 */ ^.CodeScannerView1.HideCamera(); //.MessageBox("カメラを停止しました。"); ^.Button1.Active = true; ^.Button2.Active = false; ^.Button3.Active = false; this.Active = false; } catch (e) { //.MessageBox(e.Message); } } } EditBox EditBox1 { X = 13; Y = 610; Width = 386; Height = 116; } Button Button5 { X = 270; Y = 731; Width = 119; Height = 26; Title = "クリア"; Function OnTouch( e ) { ^.EditBox1.Clear(); } } Label Label4 { X = 14; Y = 55; Width = 150; Height = 20; HorizontalAlign = $LEFT; VerticalAlign = $CENTER; Value = "実行メソッド"; FontFace = $BOLD; FontSize = 10; FgColor = $WHITE; BgColor = $339933; } Label Label5 { X = 14; Y = 74; Width = 270; Height = 34; Value = "StartCodeScannerメソッド"; FontFace = $BOLD; FontSize = 14; BgColor = $WHITE; } Function OnGetFocus( e ) { try { var obj = e.from.name; if(obj == "item1"){ /* 設定項目にフォーカスが当たったらカメラを停止 */ CodeScannerView1.HideCamera(); Button1.Active = true; Button2.Active = false; Button3.Active = false; Button4.Active = false; } }catch(e){ if(e.code != "46"){ //.MessageBox(e.Message); } } } }
[ サンプルコード ]
Runtime.ShowCodeScannerメソッドを使用
Form BcdHT005_2{ Width = 408; Height = 766; Label Label1 { X = 14; Y = 109; Width = 100; Height = 20; HorizontalAlign = $LEFT; VerticalAlign = $CENTER; Value = " バーコード種別"; FontFace = $BOLD; FontSize = 10; FgColor = $WHITE; BgColor = $339933; } CheckBox CheckBox1 { X = 14; Y = 132; Width = 380; Height = 192; BgColor = $WHITE; FontFace = $BOLD; TabIndex = 10; Number ItemWidth = 150; Number ItemHeight = 28; CheckItem:Number item1[18] { Layout = $BLANK; Width =^.ItemWidth; Height = 18; } item1[0] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 0; title = "ALL"; value = Runtime.CODE_FORMAT_ALL; } item1[1] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 0; title = "CODE128"; value = Runtime.CODE_FORMAT_CODE128; } item1[2] {X = ^.ItemWidth * 2; Y = ^.ItemHeight * 0; title = "CODE39"; value = Runtime.CODE_FORMAT_CODE39; } item1[3] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 1; title = "EAN13"; value = Runtime.CODE_FORMAT_EAN13; } item1[4] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 1; title = "EAN8"; value = Runtime.CODE_FORMAT_EAN8; } item1[5] {X = ^.ItemWidth * 2; Y = ^.ItemHeight * 1; title = "ITF"; value = Runtime.CODE_FORMAT_ITF; } item1[6] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 2; title = "QR_CODE"; value = Runtime.CODE_FORMAT_QR_CODE; } item1[7] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 2; title = "UPC-A"; value = Runtime.CODE_FORMAT_UPCA; } item1[8] {X = ^.ItemWidth * 2; Y = ^.ItemHeight * 2; title = "UPC-E"; value = Runtime.CODE_FORMAT_UPCE; } item1[9] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 3; title = "Codabar"; value = Runtime.CODE_FORMAT_CODABAR; } item1[10] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 3; title = "DataMatrix"; value = Runtime.CODE_FORMAT_DATA_MATRIX; } item1[11] {X = ^.ItemWidth * 2; Y = ^.ItemHeight * 3; title = "PDF417"; value = Runtime.CODE_FORMAT_PDF417; } item1[12] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 4; title = "Aztec"; value = Runtime.CODE_FORMAT_AZTEC; } item1[13] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 4; title = "GS1 DataBar"; value = Runtime.CODE_FORMAT_GS1_DATABAR; } item1[14] {X = ^.ItemWidth * 2; Y = ^.ItemHeight * 4; title = "GS1 DataBar Expanded"; value = Runtime.CODE_FORMAT_GS1_DATABAR_EXPANDED; } item1[15] {X = ^.ItemWidth * 0; Y = ^.ItemHeight * 5; title = "GS1 DataBar Limited"; value = Runtime.CODE_FORMAT_GS1_DATABAR_LIMITED; } item1[17] {X = ^.ItemWidth * 1; Y = ^.ItemHeight * 5; title = "GS1-128"; value = Runtime.CODE_FORMAT_GS1_128; } Value = 0; /* フォーマット形式を取得 */ Function getFormat() { if(item1[0].Selected) { return item1[0].Value; } else { var format1 = 0; var i; for(i=1; i < item1.length; ++i) { if(item1[i].Selected) { format1 += item1[i].Value; } } return format1; } } Function onTouch(e) { /* ALLが選択された場合、他を解除 */ if(e.from.index == 0) { var isActiveOtherItem = !e.from.selected; var i; for(i=1; i < item1.length; ++i) { item1[i].Active = isActiveOtherItem; item1[i].Selected = false; } } } } Label Label2 { X = 13; Y = 2; Width = 150; Height = 20; HorizontalAlign = $LEFT; VerticalAlign = $CENTER; Value = " バーコード検出エンジン"; FontFace = $BOLD; FontSize = 10; FgColor = $WHITE; BgColor = $339933; } Label Label3 { X = 13; Y = 21; Width = 270; Height = 34; Value = "GS1対応バーコード読取エンジン"; FontFace = $BOLD; FontSize = 14; BgColor = $WHITE; } Label Label4 { X = 14; Y = 55; Width = 150; Height = 20; HorizontalAlign = $LEFT; VerticalAlign = $CENTER; Value = "実行メソッド"; FontFace = $BOLD; FontSize = 10; FgColor = $WHITE; BgColor = $339933; } Label Label5 { X = 14; Y = 74; Width = 270; Height = 34; Value = "ShowCodeScannerメソッド"; FontFace = $BOLD; FontSize = 14; BgColor = $WHITE; } Button Button1 { X = 15; Y = 336; Width = 91; Height = 40; Title = "スキャン開始"; Function OnTouch(e) { try { /* 設定値格納用配列 */ var extraParams = new Array; /* リアカメラから読み取り */ var sourceType = Runtime.SourceTypeRearCamera; /* 全てのバーコードが読取対象 */ var code_format = Runtime.CODE_FORMAT_ALL; /* 各設定値を配列に設定 */ extraParams["DETECT_ENGINE"] = "ATAMI"; /* 読取モード(単発) */ extraParams["CONTINUOUS_MODE"] = 0; /*高精細画質モード*/ extraParams["MAX_RESOLUTION"] = true; /*読取りエリアマージン*/ extraParams["SCAN_AREA_MARGIN_TOP"] = 0.4; extraParams["SCAN_AREA_MARGIN_BOTTOM"] = 0.4; extraParams["SCAN_AREA_MARGIN_LEFT"] = 0.1; extraParams["SCAN_AREA_MARGIN_RIGHT"] = 0.1; /* 読取開始 */ var rtm = new Runtime; var result = rtm.ShowCodeScanner(sourceType, code_format, extraParams); /* 1件以上読取した場合 */ if(result.length > 0) { var txt = ""; var i = 0; /* 読取結果をEditBoxに表示 */ for(i = 0; i < result.length; i++) { txt += str(result[i].data) + " (format:" + str(result[i].format) + ")\n"; } ^.EditBox1.Value = "読取バーコード:\n" + str(txt) + "\n" + "読取数:" + str(result.length); } else { /* 読取キャンセル時 */ ^.EditBox1.Value = "読取はキャンセルされました"; } } catch (e) { //.MessageBox(e.Message); } } } EditBox EditBox1 { X = 12; Y = 418; Width = 386; Height = 116; } }
管理番号:BcdHt_005
Biz-Collections Bizの宝箱 トップへ
Biz/Browser HT・Biz/Browser SmartDevice・Biz/Browser AI TIPS集 トップへ