0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バーコードリーダーコントロールの使い方について

Last updated at Posted at 2025-02-20

動画でも解説しています

動画【PowerApps】バーコードリーダーコントロール①使用方法

バーコードリーダーコントロールについて

廃止されたバーコードスキャナーコントロールの代わりに、高機能なバーコードリーダーコントロールが実装されています。
現在でも設定からバーコードスキャナーコントロールを使用することができますが、これから開発するのであればそれを使用する意味はありません。

左メニューの+アイコン➤メディア➤バーコードリーダーと選択すると、画面にバーコードリーダーコントロールが追加されます。
image.png
見た目は「バーコードリーダー」と書かれたボタンですが、ツリービューで見るとバーコードマークが付いています。

image.png
今のところ、プレビューで押してみてもモバイルアプリでないと警告が表示されて動作させることができません。
いちいち公開してモバイルアプリで動作確認しないといけないところが、このコントロールを使用した開発を難しくしている要因になっている気がします。

ScanningModeプロパティ(スキャン モード)

image.png

  • Automatically Scan
    バーコードを検出するとスキャンして元の画面に戻ります。いちいちボタンを押す必要がないので、素早くバーコードを読み込んで処理したい場合に適しています。

  • Select To Scan
    検出されたバーコードが枠で囲まれ、✅マークでスキャンします。
    複数のバーコードがある場合に、正しいバーコードを選択して読み取りたい場合に適しています。

  • Scan Multiple
    複数のバーコードを繰り返しスキャンして、Subimitボタンで送信。複数のバーコードを処理することができます。

例えばこのようなドロップダウンコントロールを配置して
image.png

ドロップダウンコントロールのOnChangeプロパティに以下のように記述

If(
    Self.SelectedText.Value = "Auto",
    UpdateContext({scan_type: 'BarcodeReader.ScanningMode'.AutomaticallyScan}),
    If(
        Self.SelectedText.Value = "Select",
        UpdateContext({scan_type: 'BarcodeReader.ScanningMode'.SelectToScan}),
        If(
            Self.SelectedText.Value = "multiple",
            UpdateContext({scan_type: 'BarcodeReader.ScanningMode'.ScanMultiple})
        )
    )
)

バーコードリーダーコントロールのScanningModeプロパティに

scan_type

変数「scan_type」を設定すれば、ユーザーが使用したいスキャンモードでスキャンすることが出来ます。

BarCodeReader.Barcodes

スキャンしたバーコードの情報は、BarCodeReader.Barcodesに以下のようなテーブル形式で
image.png
バーコードの種類とバーコードの内容が保存されています。
バーコードリーダーを起動した時点で保存された内容はクリアされるようです。

スキャンした内容をコレクションにする

バーコードリーダーコントロールのOnScanプロパティに以下のように記述

//スキャンしたコードをコレクション「col_code」に保存する
ClearCollect(
    col_code,
    BarcodeReader1.Barcodes
)

これで、スキャンしたらcol_codeに保存されます。
この場合はスキャンする度に前の内容はクリアされるので、
追加していきたい場合は、ClearCollectをCollectにしてください。

ギャラリーのアイテム検索に使用してみる

バーコードリーダーの活用例です。
以下のようなリストをギャラリーで表示しておいて
image.png

バーコードでスキャンして得られる値で、ギャラリーを絞り込みます。
複数スキャンした場合にも該当するアイテムを表示したいのでForAll関数を使用します。

ギャラリーのItemsプロパティに以下

ForAll(
    col_code,
    LookUp(
        リスト名,
        user_id = Value
    )
)

第1引数のcol_codeを繰り返し処理するので、複数バーコードをスキャンした場合は、バーコードの数分繰り返されます。
第2引数でリストからuser_idが現在のValueに一致するアイテムを取得します。
これでギャラリーにはスキャンしたバーコードに対応したアイテムが表示されることになります。

備品にバーコードを貼っておいて、アプリで貸し出しの管理をする。
などアイデア次第で活用できそうですね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?