Questo documento intende fornire all'utente dell'applicazione FM Driver POS le corrette indicazioni per creare e configurare al meglio lo script "Print receipt".
Questo script è lo strumento di riferimento per utilizzare le stampanti non fiscali ideate da Epson per il punto vendita.
Queste stampanti vengono utilizzate, ad esempio, per informare la cucina di un ristorante, per stampare in mobilità o per l'utilizzo di supporti particolari come, ad esempio, un rotolo di etichette.
Queste tipologie di stampanti si differenziano dai "Registratori Telematici" in quanto non esiste al loro interno una memoria adibita a storicizzare le stampe e, quindi, diventa possibile stampare ciò che si desidera nella forma in cui lo si desidera, ovvero con la formattazione ideale.
FM Driver POS permette di stampare testo con caratteristiche (formattazioni) diverse:
- Reverse (negativo)
- Underline (sottolineato)
- Width (dimensione larghezza - da 1 a 8)
- Height (dimensione altezza - da 1 a 8)
- Emphasized (neretto)
- Align (allineamento - left, center, right)
Ogni riga può avere la sua formattazione.
Lo script è suddiviso in 3 principali blocchi di informazioni: HEADER, BODY E FOOTER. Questo permette di facilitare la creazione del JSON da inviare a FM Driver POS utilizzando, ad esempio, 3 sole formattazioni di riferimento, valide per tutti i testi del blocco.
HEADER
Impostazione standard degli attributi del testo
- Set Variable [ $textHeaderReverse ; Value: "false" ]
- Set Variable [ $textHeaderUL ; Value: "false" ]
- Set Variable [ $textHeaderW ; Value: "2" ]
- Set Variable [ $textHeaderH ; Value: "2" ]
- Set Variable [ $textHeaderEM ; Value: "true" ]
- Set Variable [ $textHeaderAlign ; Value: "center" ]
Impostazione del valore di interlinea standard
- Set Variable [ $lineFeedHeader ; Value: "3" ]
Variabile che indica quante sono le righe di questo blocco (HEADER)
- Set Variable [ $messageHeaderCount ; Value: 3 ]
È possibile programmare un numero infinito di righe, ma io mi limiterei alle classiche righe di intestazione di uno scontrino (5/6). Si può utilizzare un portale con i dati di una tabella o inserire i valori direttamente nello script, aumentandone la "ripetizione"
# prima riga
- Set Variable [ $messageHeader ; Value: "Nodisorder Srl" ]
# seconda riga
- Set Variable [ $messageHeader[2] ; Value: "Via Bologna 220" ]
È possibile inserire dei valori di formattazione del testo per ogni riga, tralasciando i valori standard
- Set Variable [ $messageHeaderReverse[2] ; Value: "true" ]
- Set Variable [ $messageHeaderUL[2] ; Value: "true" ]
- Set Variable [ $messageHeaderW[2] ; Value: "2" ]
- Set Variable [ $messageHeaderH[2] ; Value: "2" ]
- Set Variable [ $messageHeaderEM[2] ; Value: "falso" ]
BODY
Anche il "Body" ha la possibilità di impostare dei valori standard per gli attributi del testo e per l'interlinea, sempre utilizzando alcune variabili
$textBodyReverse, $textBodyUL, $textBodyW, $textBodyH, $textBodyEM, $textBodyAlign e $lineFeedBody per l'interlinea standard del blocco
Nel BODY abbiamo fornito la possibilità di "intercettare" il valore di alcuni campi e impaginarne il contenuto come se fosse uno scontrino.
Prodotto uno € 5,00
Prodotto due € 4,00
Prodotto tre € 3,00
2 x € 2,00
Prodotto quattro € 4,00
Nello script viene spiegato come comportarsi nel caso i campi siano in un portale e come in sua assenza.
In caso di un portale bisogna inserire il nome dei campi e la quantità di righe del portale, utile per il ciclo (loop) sulle linee
- Set Variable [ $campo_portal1IdTestataDoc ; Value: GetFieldName (CAMPO RELAZIONE CON POR.) ]
- Set Variable [ $campo_descrizione ; Value: GetFieldName (CAMPO DESCRIZIONE) ]
- Set Variable [ $campo_quantita ; Value: GetFieldName (CAMPO QUANTITÀ) ]
- Set Variable [ $campo_prezzoUnitario ; Value: GetFieldName (CAMPO PREZZO UNITARIO) ]
- Set Variable [ $campo_messaggio ; Value: GetFieldName (CAMPO PER UN MESSAGGIO AGGIUNT.) ]
- Set Variable [ $campo_valoreSconto ; Value: GetFieldName (CAMPO SCONTO) ]
- Set Variable [ $messaggioSconto ; Value: "*** PROMOZIONE ***" ]
In assenza di un portale, si procede con il testo impostando la quantità di righe, un po' come succede con il blocco HEADER
- Set Variable [ $body1Count ; Value: 2 ]
# prima riga
- Set Variable [ $descrizione ; Value: CAMPO DESCRIZIONE ]
- Set Variable [ $quantita ; Value: CAMPO QUANTITÀ ]
- Set Variable [ $prezzoUnitario ; Value: CAMPO PREZZO UNITARIO ]
- Set Variable [ $messaggio ; Value: CAMPO PER UN MESSAGGIO AGGIUNTIVO ]
- Set Variable [ $valoreSconto ; Value: CAMPO SCONTO ]
- Set Variable [ $messaggioSconto ; Value: "*** PROMOZIONE ***" ]
# seconda riga
- Set Variable [ $descrizione[2] ; Value: CAMPO DESCRIZIONE ]
- ...
Abbiamo messo a disposizione anche la possibilità di inserire del testo libero, attraverso un portale o dei semplici campi.
- Set Variable [ $text ; Value: "Per creare il file CBI, segui questi passaggi:" ]
Se, in questa sezione, si crea una variabile $text2 si avrà un risultato particolare:
- $text = "Prodotto uno"
- $text2 = "€ 5,00"
- = "Prodotto uno € 5,00"
FOOTER
In questo blocco sono presenti le solite configurazioni standard ($textFooterReverse, $textFooterW...) e la possibilità di inserire attraverso un portale o semplici righe le informazioni sui pagamenti.
Pagamento contanti € 50,00
Esiste, infine, una sezione in cui riportare le ultime informazioni, con lo stesso criterio adottato con il blocco HEADER.
Commenti
0 commenti
Questo articolo è chiuso ai commenti.