Skip to content

Barcode

Aktiviert die Geräte-Kamera zum Scannen von Barcodes und QR-Codes. Die erkannten Werte werden in einer Tabelle zurückgeliefert; je nach Konfiguration werden Einzel- oder Mehrfach-Scans unterstützt.

Designer-Attribute

AttributBeschreibungDefault
controlIdEindeutige IDautomatisch generiert
textButton-TextScan
iconSAP-Iconsap-icon://bar-code
multipleScanMehrere Codes pro Scan-Vorgang erfassenfalse
preferFrontCamFrontkamera bevorzugt verwendenfalse
enabledKomponente aktivtrue
visibleSichtbartrue
spanS / spanM / spanL / spanXLGrid-Layout12

ABAP-API

Zugriff über me->get_barcode( '<controlId>' ).

MethodeZweck
GET_VALUESTabelle der gescannten Werte (STANDARD TABLE OF string)
SET_PREFER_FRONT_CAMFrontkamera bevorzugen
GET_PREFER_FRONT_CAMLiefert aktuelle Einstellung
INITSetzt die Wertetabelle zurück

Geerbte Methoden: siehe Control.

Beispiel: /mobbuild/cl_ex_barcode

Das Beispiel zeigt drei Patterns: Einzel-Scan in ein Eingabefeld, Mehrfach-Scan in eine ComboBox und das Umschalten der Kamera per Switch.

abap
METHOD on_pai.

  CASE me->get_event( )->get_event_key( ).
    WHEN 'ScanSingle'.      me->handle_scan_single( ).
    WHEN 'ScanMultiple'.    me->handle_scan_multiple( ).
    WHEN 'ScanPreferFront'. me->handle_scan_prefer( ).
    WHEN 'PreferFront'.     me->handle_prefer_front( ).
  ENDCASE.

ENDMETHOD.

Einzel-Scan

abap
METHOD handle_scan_single.

  DATA(lt_value) = me->get_barcode( 'btnScanSingle' )->get_values( ).

  IF lines( lt_value ) > 0.
    me->get_input( 'txtScanSingle' )->set_value( lt_value[ 1 ] ).
  ENDIF.

  me->get_barcode( 'btnScanSingle' )->init( ).

ENDMETHOD.

Mehrfach-Scan

abap
METHOD handle_scan_multiple.

  DATA(lt_value) = me->get_barcode( 'btnScanMultiple' )->get_values( ).

  me->get_combo_box( 'cbScanMultiple' )->remove_all_items( ).

  LOOP AT lt_value INTO DATA(lv_value).
    me->get_combo_box( 'cbScanMultiple' )->add_item(
      iv_key  = lv_value
      iv_text = lv_value ).
  ENDLOOP.

  me->get_barcode( 'btnScanMultiple' )->init( ).

ENDMETHOD.

Kamera dynamisch umschalten

abap
METHOD handle_prefer_front.

  me->get_barcode( 'btnScanPreferFront' )->set_prefer_front_cam(
    me->get_switch( 'switchPreferFront' )->get_state( ) ).

  me->get_input( 'txtPreferFront' )->init( ).

ENDMETHOD.

Init nach Scan

Nach dem Auswerten der Werte sollten Sie init() auf dem Barcode-Control aufrufen. Sonst bleibt der zuletzt gescannte Wert in der View erhalten und würde beim nächsten PAI erneut geliefert.

Events im Designer

EventAuslöser
onScanSuccessScan erfolgreich (Wert(e) erkannt)
onScanFailScan fehlgeschlagen / abgebrochen

Nächste Schritte

  • Input – Aufnahme einzelner Scan-Werte
  • ComboBox – Mehrfachauswahl aus gescannten Werten