Cerca nel blog

martedì 21 febbraio 2023

ABAP: Uso QR Code in Smartforms

 

Uso QR Code in Smartforms


Per creare un QR Code in SAP, richiamare la transazione SE73.

Selezionare l’opzione “Codici a barre sistema” e premere il pulsante modifica.

Nella schermata successiva premere il pulsante nuovo

Selezionare il Pulsante NVO.

Verrà visualizzata la schermata dove inserire il nome del codice a barre che stiamo creando

Nella schermata successiva selezionare QR code 2005


Inserire i seguenti parametri:



Creare un stile da usare nello smartforms e che richiama il QR installato in precedenza.

Richiamare la transazione SMARTFORMS e creare lo stile ZSTYLE_QRCODE.

Create un paragrafo standard, se non esiste:

Selezionate Formati Paragrafo, tasto dx -> Creare Nodo, ed inserite il paragrafo che volete creare ad esempio P1



Inserire il parametro di testata, fare doppio click sulla cartella Dati Testata ed inserite i seguenti parametri

Selezionate Formati Carattere, tasto dx -> Creare Nodo, ed inserite il formato carattere  che volete creare ad esempio BE, e selezionate il codice a barre creato in precedenza


Salvate e attivate il tutto.

Creiamo lo smartforms che conterrà il nostro QR Code.

Richiamare la transazione SMARTFORMS e creare il modulo ZQR_TEST

Nella cartella “Attibuti modulo” inserisco lo stile che abbiamo creato in precedenza: ZSTYLE_QRCODE

Nella cartella “Interfaccia modulo” inserisco il parametro di input allo smartforms che conterrà il codice che deve essere convertito in QR Code

Create una Window (QR_Code)

Creiamo un campo testo nella window QR_CODE


Scrivere il seguente programma per testare il QR Code

*&---------------------------------------------------------------------*
*& Report Z_QRCODE_SMARTFORMS
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_qrcode_smartforms.

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_codst TYPE char20 OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bl1.

START-OF-SELECTION.

  PERFORM execute_smartform.

END-OF-SELECTION.

*&---------------------------------------------------------------------*
*&      Form  EXECUTE_SMARTFORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM execute_smartform .

  DATA: lv_formname(30),
        lv_functionname(30),
        ioutput             TYPE ssfcompop,
        output              TYPE ssfcresop,
        control             TYPE ssfctrlop,
        ls_ssfcrescl        TYPE ssfcrescl,
        ls_display_par      TYPE ssfpp.

* Nome dello smartforms
  lv_formname = 'ZQR_TEST'.
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname           = lv_formname
*     VARIANT            = ' '
*     DIRECT_CALL        = ' '
    IMPORTING
      fm_name            = lv_functionname
    EXCEPTIONS
      no_form            = 1
      no_function_module = 2
      OTHERS             = 3.

  CLEAR control.

  CALL FUNCTION lv_functionname
    EXPORTING
      control_parameters = control
      output_options     = ioutput
      user_settings      = ''
      w_name             = p_codst
    EXCEPTIONS
      formatting_error   = 1
      internal_error     = 2
      send_error         = 3
      user_canceled      = 4
      OTHERS             = 5.

ENDFORM.

 

Eseguiamo il report inserendo un valore per il codice QR code

Ecco il risultato ottenuto