Erscheinungsbild
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
| Attribut | Beschreibung | Default |
|---|---|---|
controlId | Eindeutige ID | automatisch generiert |
text | Button-Text | Scan |
icon | SAP-Icon | sap-icon://bar-code |
multipleScan | Mehrere Codes pro Scan-Vorgang erfassen | false |
preferFrontCam | Frontkamera bevorzugt verwenden | false |
enabled | Komponente aktiv | true |
visible | Sichtbar | true |
spanS / spanM / spanL / spanXL | Grid-Layout | 12 |
ABAP-API
Zugriff über me->get_barcode( '<controlId>' ).
| Methode | Zweck |
|---|---|
GET_VALUES | Tabelle der gescannten Werte (STANDARD TABLE OF string) |
SET_PREFER_FRONT_CAM | Frontkamera bevorzugen |
GET_PREFER_FRONT_CAM | Liefert aktuelle Einstellung |
INIT | Setzt 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
| Event | Auslöser |
|---|---|
onScanSuccess | Scan erfolgreich (Wert(e) erkannt) |
onScanFail | Scan fehlgeschlagen / abgebrochen |