現在地: Visual LANSA を使用したWeb アプリケーション > 14. ウィジェットとサードパーティ統合 > 14.6 LANSA モバイル・アプリケーション・ウィジェット > 14.6.6 xDeviceBarcodeScanner ウィジェット

14.6.6 xDeviceBarcodeScanner ウィジェット

デバイス上のカメラを利用して 1 つまたは複数のバーコードをスキャンします。

プロパティ

ScanMultiple

複数のバーコードのエントリーを受け付けるか、1 つのバーコードをスキャンするかを示すブール値です。

AllowDuplicates

複数のバーコードのエントリーが許可されることを示すブール値です。ScanMultiple に True が設定されている時のみ有効です。

ScannerEngine

バーコード処理エンジンを示す列挙値です。有効なオプションは次の 3 つです: Default、System (iOS のみ)、Google

メソッド

AddBarcodeType

バーコード・スキャナーのタイプを追加します。

名前

タイプ

必須

説明

Type

列挙値

はい

サポートされる各スキャナー・エンジンのバーコード・タイプです。

Default:

UPCA、CODE128、QRCODE、CODE39、ITF14、CODABAR、UPCE、CODE93

Google:

UPCA、CODE128、QRCODE、CODE39、ITF14、CODABAR、UPCE、CODE93、DATAMATRIX、PDF417、AZTEK

System:

UPCA、CODE128、QRCODE、CODE39、ITF14、UPCE、CODE93、DATAMATRIX、PDF417、AZTEK

 

RemoveBarcodeType

バーコード・スキャナーのタイプを削除します。

名前

タイプ

必須

説明

Type

列挙値

はい

有効な値: UPCA、CODE128、QRCODE、CODE39、ITF14、CODABAR、UPCE、CODE93、DATAMATRIX、PDF417、AZTEK

 

ClearBarcodeTypes

現在のバーコード・スキャナー・タイプのリストをクリアします。

ActivateScanner

スキャナーを有効にします。

GetScannedValue

スキャン値を取得します。Completed イベント内でこのメソッドを呼び出し、スキャンされたバーコードの値を取得します。

名前

タイプ

必須

説明

Index

整数

はい

スキャン値リスト内のバーコード値を検知するためのインデックスを指定します。

 

イベント

Completed

バーコード・スキャンが終了すると起動されます。

名前

タイプ

説明

Status

列挙値

状態コードを参照してください。

BarcodeCount

整数

スキャンされたバーコード数

Message

文字列

 

 

サンプル・コード

Define_Com Class(#xDeviceBarcodeScanner) Name(#BarcodeScanner)

Evtroutine Handling(#COM_OWNER.Initialize)
  Clr_List Named(#BarcodeTypes)
  #STD_TEXTS := 'upca'
  Add_Entry To_List(#BarcodeTypes)
  #STD_TEXTS := 'code128'
  Add_Entry To_List(#BarcodeTypes)
  #STD_TEXTS := 'qrcode'
  Add_Entry To_List(#BarcodeTypes)
  #STD_TEXTS := 'code39'
  Add_Entry To_List(#BarcodeTypes)
  #STD_TEXTS := 'itf14'
  Add_Entry To_List(#BarcodeTypes)
  #Scanner.Enabled := false
Endroutine

Evtroutine Handling(#BarcodeScanner.Initialize)
  #Scanner.Enabled := true
Endroutine

Evtroutine Handling(#Scanner.Click)
  Define Field(#vrccItemCount) Type(*INT)
  Define Field(#vrccIx) Type(*INT)

  #BarcodeScanner.ScanMultiple := (#ScanMultiple.ButtonState = Checked)
  #BarcodeScanner.AllowDuplicates := (#AllowDuplicates.ButtonState = Checked)

  #BarcodeScanner.ClearBarcodeTypes()
  For Each(#item) In(#BarcodeTypes.Items)
    If (#item.Checked = Checked)
      Get_Entry Number(#item.Entry) From_List(#BarcodeTypes)
      #BarcodeScanner.AddBarcodeType( #STD_TEXTS )
    Endif
  Endfor

  #BarcodeScanner.ActivateScanner()
Endroutine

Evtroutine Handling(#BarcodeScanner.Completed) Status(#lStatus) Barcodecount(#lCount) Message(#lMessage)
  Define Field(#vrbcIx) Type(*INT)

  If (#lStatus = OK)
    Begin_Loop Using(#vrbcIx) From(0) To(#lCount - 1)
      #STD_TEXTL := #BarcodeScanner.GetScannedValue( #vrbcIx )
      Add_Entry To_List(#ScannedValues)
    End_Loop
  Endif
Endroutine