Release
Manuale
5.20
Tecnico
REGISTRATORI DI CASSA
Collegamento del registratore di cassa passivo
Documentazione ad uso esclusivo dell’installatore della procedura
Questa parte del manuale utilizza un linguaggio prettamente tecnico, di non facile
comprensione per i non addetti ai lavori; fornisce specifiche relative alla configurazione del
registratore di cassa.
La procedura è predisposta per la configurazione e l’utilizzo di Registratori di Cassa per la
stampa degli Scontrini Fiscali, dando la possibilità di scegliere tra modelli già preimpostati, o
lasciando piena libertà d’installazione di nuovi modelli non previsti al momento dell’uscita del
prodotto.
Rel. 5.20 – Aggiornato al 31/12/2013
2 – Manuale Tecnico
Indice degli argomenti
1
SCELTA DEL REGISTRATORE DI CASSA ....................................................................... 3
1.1
Esempio di file ECRconfig.ini per il registratore DITRON_ZIP ..................................... 5
1.1.1
1.1.1.1
1.1.1.2
1.2
Esempio di file ECRconfig.ini per il registratore SWEDA ............................................. 8
1.2.1
1.2.2
1.3
Aspetti tecnici della classe KngRegCass .................................................................... 12
Aspetti funzionali ......................................................................................................... 13
Esempio di file ECRconfig.ini per il registratore SAREMA SUPREMA ........................ 14
1.3.1
1.4
1.5
1.6
1.7
Interfacciamento con registratore di cassa DITRON_ZIP ............................................. 6
Settaggio protocollo XON-XOFF ................................................................................... 6
Settaggio formato importi .............................................................................................. 7
Aspetti funzionali ......................................................................................................... 20
Interfacciamento con registratore di cassa NCR2190i ................................................ 21
Interfacciamento con registratore di cassa Target ...................................................... 22
Specifiche per la certificazione di nuovi registratori di cassa ....................................... 23
Esempio di file ECRconfig.ini per interfacciamento con il driver universale RTS WPOS1
24
1.7.1
1.7.2
Configurazione file ECRconfig.ini per WPos1 ............................................................. 24
Configurazione per l’utilizzo RTS Wpos1 in modalità Desktop Remoto ..................... 25
REGISTRATORI DI CASSA: Collegamento - 3
1 Scelta del registratore di cassa
Il procedimento di configurazione prevede l’utilizzo di alcuni file contenuti nella directory
“DRIVERECR”, della cartella d’installazione della procedura. Tali files, che hanno tutti lo stesso
nome (ECRconfig.ini), sono posizionati nella seguente struttura:
Nella directory “DRIVERECR” sono contenute tante cartelle quanti sono i registratori di cassa
implementati: quindi in ogni cartella è contenuto il file ECRconfig.ini predefinito per quel tipo di
registratore di cassa.
Nel menù Archivi
Parametri
Parametri della Società, è presente la cartella Codici a
Barre e Dispositivi Collegati che consente la selezione e la configurazione del modello di
registratore di cassa desiderato.
Indicando l’esistenza di un registratore di cassa, si attiva il campo Tipo di registratore di
cassa associato al pulsante di ricerca per l’apertura delle liste.
4 – Manuale Tecnico
Il pulsante anziché aprire una lista, apre la finestra di dialogo con la quale ricercare il file
ECRconfig.ini:
La finestra si posiziona direttamente sulla cartella “DRIVERECR” che, come già visto, è
contenuta nella directory di lavoro dell’applicazione. L’operazione da compiere è la selezione
della cartella corrispondente al tipo di registratore, in uso presso l’utente, che si intende
interfacciare: all’interno selezionare il file ECRconfig.ini. Così facendo la “routine open
registratore”, che si effettua all’apertura della maschera Caricamento Scontrini Fiscali, farà
riferimento al file ini appena identificato.
Alla fine della selezione, il campo Tipo di registratore di cassa conterrà il percorso completo
ed il nome del file necessario.
E’ possibile scegliere inoltre se raggruppare o meno le righe di articolo caricate tramite lettura
del codice a barre, al fine di raggruppare codici a barre uguali sulla stessa riga del documento.
Selezionando il tipo di lettore dal campo Tipo lettore codici a barre, si devono quindi
impostare i parametri ad esso relativo
Se il flag Non Raggruppare Codici Articoli non è attivo (modalità standard) i codici degli articoli
vengono raggruppati, altrimenti ogni codice a barre letto verrà riportato su una riga distinta dagli altri.
REGISTRATORI DI CASSA: Collegamento - 5
1.1 Esempio di file ECRconfig.ini per il registratore DITRON_ZIP
Il file ECRconfig.ini (file di testo) è il file che permette di impostare i diversi parametri di
comunicazione con il registratore di cassa. Oltre a queste informazioni, consente di definire il
layout dello scontrino fiscale sul registratore stesso. La struttura si presenta in questo modo:
[DRIVER]
DriverName=KngSweda.KngRegCass
[SETTING]
COMUNICAZIONE=9600,N,8,1
PORTA=1
COMANDO_CLEAR=KRCL
COMANDO_CASSA=KRT1
COMANDO_INVIO=%13%
COMANDO_EOT=%04% %13%
QTA_RAGGRUPPATE=s
Lungh_Descrizione=24
Lungh_Descrizione_e_Importo=32
[HEADER]
Riga1=Pinco Pallino S.p.A.
Riga2=P.IVA 01574625681
Riga3=P.zza Mare e Monti, 89
Riga4=20128 MILANO
[DETAILS]
Riga1=%ScFDett.QtaAnag% %descrizione% %IMPORTO%
[FOOTER]
Riga1=Grazie per la visita
Riga2=Arrivederci
Sezioni:
•
•
•
•
•
Driver: indica il nome della DLL da utilizzare come driver per l’ECR (registratore di cassa).
Setting: in questa sezione si specificano i settaggi dell’ECR come i parametri di
comunicazione, la porta cui è collegato il dispositivo ed una serie di comandi specifici del
linguaggio del dispositivo collegato.
Header: si tratta della testata dello scontrino, ossia la stringa che deve essere stampata
prima degli articoli acquistati.
Details: è la chiave che rappresenta il formato di ogni riga di dettaglio, ossia la riga
dell’articolo acquistato.
Footer: si tratta della stringa che si stampa, dopo aver inviato il comando cassa, al piede
dello scontrino.
6 – Manuale Tecnico
1.1.1 Interfacciamento con registratore di cassa DITRON_ZIP
L’interfacciamento con il registratore di cassa DITRON_ZIP prevede l’utilizzo della componente
kngsweda.dll.
Si descrive di seguito la procedura di settaggio da effettuare sulla Ditron ZIP.
1.1.1.1 Settaggio protocollo XON-XOFF
Bisogna procedere innanzitutto con la configurazione del protocollo Xon-Xoff, seguendo la
procedura illustrata di seguito:
a) Digitare sull'ECR: 4 + CHIAVE + 9 + SUBT. + TOT
b) Con il tasto SUBT. scorrere le voci fino ad arrivare a XON-XOFF e confermare con
il tasto TOT
c) Impostare:
- PROTOCOLLO: 40185
- TIPO: 1 (corrisponde a “emulazione tastiera Sweda”)
- OPZIONI XON-XOFF: per l’impostazione delle impostazioni avanzate si veda il
riquadro sottostante
Definizione dei protocolli di collegamento tipo "EMULAZIONE TASTIERA XON /
XOFF", tipi SAREMA e SWEDA
È possibile programmare la porta seriale 1 con questo tipo di connessione selezionando
il tipo “XON XOFF".
La stringa-protocollo prevede i soliti codici che specificano:
- la velocità
- la parità
- il numero di bit/carattere
- il numero di stop-bit
- alcuni flags.
In particolare l'ultima cifra (flags) viene calcolata sommando i seguenti possibili "pesi":
- peso "1" = trasmissione dell'echo
- peso "2" = controllo di flusso hardware (RTS/CTS)
- peso "4" = controllo di flusso software (XON/XOFF)
Successivamente, l'ECR richiede l’impostazione dei campi presenti nelle OPZIONI
XON/XOFF. Questo campo permette di selezionare alcune "opzioni" relative al
collegamento. Viene calcolato come somma di vari "pesi" ognuno dei quali indica una
diversa opzione (tipo si/no).
In particolare, sono gestiti i seguenti pesi:
- peso "1" (bit 0): controllo transazione manuale; se incluso, l'ECR non
processerà subito eventuali comandi ricevuti quando sia già stata iniziata una
transazione da tastiera; appena questa verrà chiusa (manualmente) verranno poi
processati i comandi ricevuti.
REGISTRATORI DI CASSA: Collegamento - 7
- peso "2" (bit 1): opzione CR oppure CR+LF.
Se incluso, l'ECR attende e trasmette la sequenza CR (13) + LF (10) come
terminazione di una stringa di testo (laddove prevista).
Se non incluso, l'ECR attende e trasmette solo CR (13).
- peso "4" (bit 2): echo di stampa.
Se incluso, l'ECR trasmette la copia di ogni riga di testo stampata sullo scontrino
(in ASCII, terminata da CR oppure CR+LF).
- peso "8" (bit 3): estensioni.
Se incluso, vengono abilitate le seguenti estensioni al protocollo:
- richiesta speciale stato ECR (hardware) real-time
- comandi "INFO"
- terminatore "!" = Input generico
- peso "16" (bit 4): disabilitazione auto-clear su errore critico.
Se incluso, e' necessario premere il tasto "CLEAR" sulla tastiera dell'ECR dopo
aver eliminato la condizione di errore critico.
- peso "64" (bit 6): echo di stampa speciale del messaggio con numero di
scontrino (SWEDA): "XNSC. FISC. N. NNNN ".
Al termine occorre digitare "101" e cliccare su CONFERMA per attivare le seriali.
d) Premere 2 volte il tasto FINE e in CHIAVE P digitare "101 + TOT + TOT"
1.1.1.2 Settaggio formato importi
Dopo aver impostato il protocollo di collegamento, è necessario impostare il formato corretto
degli importi, altrimenti questi verranno stampati moltiplicando il valore per 100.
Bisogna quindi digitare sull'ECR: 4 + Chiave + 51 + Tot + Tot e impostare con il tasto SUBT.
VIRGOLA FISSA = ‘Sì’.
Premere infine 2 volte il tasto FINE e in CHIAVE P digitare "101 + TOT + TOT".
8 – Manuale Tecnico
1.2 Esempio di file ECRconfig.ini per il registratore SWEDA
Il file ECRconfig.ini (file di testo) è, come già accennato, il file che permette di impostare i
diversi parametri di comunicazione con il registratore di cassa. Oltre a queste informazioni,
consente di definire il layout dello scontrino fiscale sul registratore stesso. La struttura si
presenta in questo modo:
[DRIVER]
DriverName=KngSweda.KngRegCass
[SETTING]
COMUNICAZIONE=2400,E,7,1
PORTA=1
COMANDO_CLEAR=KRCL
COMANDO_CASSA=KRT1
COMANDO_INVIO=%13%
COMANDO_EOT=%04% %13%
QTA_RAGGRUPPATE=s
Lungh_Descrizione=24
Lungh_Descrizione_e_Importo=32
[HEADER]
Riga1=Pinco Pallino S.p.A.
Riga2=P.IVA 01574625681
Riga3=P.zza Mare e Monti, 89
Riga4=20128 MILANO
[DETAILS]
Riga1=%barcode% %descrizione% %IMPORTO%
[FOOTER]
Riga1=Grazie per la visita
Riga2=Arrivederci
Sezioni:
•
•
•
•
•
Drivers: indica il nome della DLL da utilizzare come driver per l’ECR (registratore di cassa).
Setting: in questa sezione si specificano i settaggi dell’ECR come i parametri di
comunicazione, la porta cui è collegato il dispositivo ed una serie di comandi specifici del
linguaggio del dispositivo collegato.
Header: si tratta della testata dello scontrino, ossia la stringa che deve essere stampata
prima degli articoli acquistati.
Details: è la chiave che rappresenta il formato di ogni riga di dettaglio, ossia la riga
dell’articolo acquistato.
Footer: si tratta della stringa che si stampa, dopo aver inviato il comando cassa, al piede
dello scontrino.
REGISTRATORI DI CASSA: Collegamento - 9
Descrizione Dettagliata di ogni Sezione e di ogni Comando
[DRIVER]
DRIVERNAME: indica il nome della DLL da utilizzare. Deve essere presente e registrata sul
sistema operativo del PC dal quale si controlla l’ECR. È possibile che tale DLL sia incompatibile
con il registratore di cassa collegato. Pertanto va ricompilata seguendo le specifiche della
macchina. Nel caso il registratore di cassa fosse della stessa famiglia di quello nativo (SWEDA
modello Mikropos) per questo componente potrebbe essere sufficiente la sola modifica dei
comandi specificata nella sezione setting.
[SETTING]
COMUNICAZIONE=2400,E,7,1
Indica i parametri di comunicazione. Nello specifico il BoudRate, la parità, il numero di bit dati e
il numero dei bit di stop.
PORTA=1
Indica la porta seriale alla quale è collegato il dispositivo.
COMANDO_CLEAR=KRCL
Rappresenta la stringa di caratteri da inviare al registratore di cassa per azzerare e cancellare
dalla memoria lo scontrino precedente o eventuali errori commessi. Equivale a premere una
volta il tasto [C] sul dispositivo. Questa impostazione è riportata sul manuale dell’ECR.
COMANDO_CASSA=KRT1
Rappresenta la stringa di caratteri da inviare al registratore di cassa per ottenere il totale degli
articoli battuti. Equivale a premere una volta il tasto [Totale] o [Cassa] sul dispositivo. Questa
impostazione è riportata sul manuale dell’ECR.
COMANDO_INVIO=%13%
Si tratta del carattere da inviare al registratore di cassa, dopo ogni articolo, per essere
stampato. Dato che può variare in base all’ECR, può essere impostato sul file di configurazione
dell’ECR. Il carattere viene rappresentato nella sua codifica ASCII e in realtà potrebbe accadere
che sui manuali compaia il comando in formato testo. In questo caso la stringa va scomposta,
carattere per carattere, e di quest’ultimo va riportata tra le “%” la relativa codifica in ASCII.
COMANDO_EOT=%04% %13%
Si tratta della stringa che utilizza l’ECR per comunicare all’host il ricevimento del comando
precedente e la relativa fine della trasmissione. Anche per questo comando vale la regola del
precedente, ossia: codifica in ASCII e numero racchiuso tra le percentuali (%).
QTA_RAGGRUPPATE=S
Si tratta di una specifica proprietà del componente. Se questa è settata su SI le quantità
vengono stampate in modo raggruppato. Esempio: se vengono acquistate 4 magliette, nello
scontrino verrà riportata la scritta “4 x magliette L.480.000”; se invece la proprietà è settata su
NO, allora sullo scontrino appariranno 4 righe distinte ognuna contenente una maglietta da
120.000.
La chiave accetta i seguenti valori: “S”, “N”, “SI”, “NO”, “VERO”, “FALSO”, “TRUE”, “FALSE”,
“YES”, “Y”, “0”, “1” O “-1”. Si è pensato di dare molte opzioni all’utente per evitare diverse
perdite di tempo nella ricerca dell’impostazione esatta della chiave nel caso fosse sprovvisto
della necessaria documentazione.
10 – Manuale Tecnico
Tutte le impostazioni e le chiavi vengono accettate indifferentemente in maiuscolo e in
minuscolo.
LUNGH_DESCRIZIONE=24
Indica la lunghezza in caratteri della riga di descrizione. Può essere composta da più di un
campo (ad esempio, prodotto, barcode, e qta). In questo caso, la stringa viene per prima cosa
creata (concatenando i campi) e poi, successivamente, tagliata a destra per il numero di
caratteri specificato in questa chiave.
LUNGH_DESCRIZIONE_E_IMPORTO=32
Questa chiave è identica alla precedente con la differenza che include nella stringa anche
l’importo degli articoli. Si è resa necessaria perché alcuni ECR (compreso lo SWEDA) hanno un
limite totale di riga superato il quale rispondono con un errore. La procedura è identica: prima
viene formata una stringa e poi viene troncata. Poiché, in molti ECR, il prezzo è l’ultimo campo
da inviare nella stringa di dettaglio si è usato un controllo che evita di tagliare l’importo.
[HEADER]
Riga1=Pinco Pallino S.p.A.
Per quanto riguarda l’header, in questa versione della DLL, esso può essere impostato sino ad
un numero indefinito di righe (dipendenti dalle specifiche dell’ECR). Basterà aggiungere o
eliminare le chiavi “RIGAn”. La procedura continua a cercare sino a che non ci siano più righe
settate nel file ECRconfig.ini.
Alcuni ECR non consentono la personalizzazione dall’esterno della testata, infatti basta inviare
il primo articolo che automaticamente il registratore di cassa stampa il proprio header così
come è stato impostato sul dispositivo. In tal modo, questi ECR, non permettono la variabilità
dell’header, se non attraverso le impostazioni dirette sull’ECR.
[FOOTER]
Riga1=Grazie per la visita
Stringa che viene stampata alla fine dello scontrino dopo il totale.
Per il Footer valgono tutte le osservazioni fatte per l’Header.
[DETAILS]
RIGA1=%BARCODE% %DESCRIZIONE% %IMPORTO%
La riga di dettaglio riveste una particolare importanza, in quanto essa specifica come deve
essere rappresentato ogni singolo articolo sullo scontrino.
In questa riga si specifica l’ordine dei campi. In effetti un utente potrebbe avere l’esigenza di
stampare per prima il barcode, quindi la descrizione ed infine il prezzo. Un altro utente al
contrario potrebbe rinunciare al barcode e evidenziare la descrizione e quindi il codice articolo.
Il dettaglio ha la possibilità di essere multiriga come per il footer e per l’header. Il meccanismo è
identico a quello delle altre sezioni, basta aggiungere la chiave RIGAn per specificare le
successive righe. Tuttavia moltissimi ECR limitano la disponibilità di spazio per articolo ad una
singola riga.
La sintassi utilizzata è %nomecampo%. Esistono due tipologie di campi che si possono inserire.
I campi standard e i campi personalizzati.
I campi standard sono rappresentati nella tabella che segue:
REGISTRATORI DI CASSA: Collegamento - 11
I campi standard sono:
Nome campo
Quantità
Articolo
Barcode
sconto
prezzo
descrizione
Indica la quantità di pezzi per
quell’articolo
Si
tratta
della
descrizione
dell’articolo
È il codice a barre dell’articolo
È la percentuale di sconto
applicata
Indica il prezzo dell’articolo
Accettato anche come:
qta, quantità, quantita' q.ta, quantita
descrizione, prodotto, articolo
Barcode, bc, codiceabarre
Sconto
Prezzo, importo
Questi campi devono essere inseriti nella chiave DETAILS racchiusi tra caratteri %.
Oltre ai campi standard è possibile inserirne altri tra quelli nella griglia, oppure eventuali campi
personalizzati inseriti dall’utente.
L’inserimento di altri campi si effettua attraverso la finestra Proprietà nell’ambito della
personalizzazione on fly.
Il nome del campo che dovrà comparire nella sezione DETAILS in questo caso è :
%ScfDett.CodIva% che andrà inserito all’interno key riga1. Questo identico discorso vale anche
per i campi personalizzati.
In questo modo l’utente ha a disposizione il massimo grado di personalizzazione.
12 – Manuale Tecnico
1.2.1 Aspetti tecnici della classe KngRegCass
(Per Sviluppatori)
Il driver kngSWEDA, il primo implementato, è un subclassing virtuale della più generica
kngRegCass. Questa classe espone i seguenti membri:
Le due proprietà LungMaxRiga, LungRigaConImporto, Porta, Settaggi e Qta_Raggruppate
hanno, anch’esse una corrispondenza nel file di configurazione.
Il metodo OpenConnection apre una connessione sulla porta seriale, mentre il metodo
CloseConnection la chiude.
La funzione EstraiStringaAscii restituisce una stringa in ASCII ottenuta dalla conversione di
una stringa letta nel file ini in cui i caratteri che compongono la stringa sono scritti
numericamente tra le %. es %04% %13% restituisce una stringa di due caratteri fatta da chr(4)
& chr(13).
Il metodo ECRput permette l’invio di un output sul registratore di cassa.
Il metodo OrdinaDatiNelDettaglio si preoccupa di interpretare la stringa letta nel file INI dal
programma principale e passata alla DLL sotto forma di stringa.
BuonFine è una proprietà di sola lettura che diventa true se la stampa dello scontrino è andata
a buon fine.
REGISTRATORI DI CASSA: Collegamento - 13
1.2.2 Aspetti funzionali
(Per Sviluppatori)
Il form presenta un pulsante in più, vale a dire il pulsante STAMPA che serve a stampare e
confermare lo scontrino fiscale.
Il pulsante appare (anche se disabilitato) solo se è presente il dispositivo; il che vuol dire:
•
Che la DLL è installata e registrata
•
Che il file ECRconfig.ini esiste nella directory specificata
•
Che il dispositivo risponde correttamente alla chiamata del membro OpenConnection.
Il primo controllo effettuato dalla procedura è che ci sia il file ECRconfig.ini nella directory di
lavoro. Se non ci dovesse essere viene visualizzato il seguente messaggio:
Questo messaggio si verifica anche se nel file non dovesse comparire la voce DiverName nella
sezione Driver.
Se invece in apertura manca la DLL, una msgbox simile a quella precedente ne notifica la
mancanza.
Se nei parametri della procedura, alla voce dispositivi collegati, la combo box che identifica il
tipo cassa è uguale a zero, allora il pulsante stampa non compare.
14 – Manuale Tecnico
1.3 Esempio di file ECRconfig.ini per il registratore SAREMA
SUPREMA
Il file si presenta in questo modo:
[DRIVER]
DriverName=KngSAREMA.KngRegCass
[SETTING]
COMUNICAZIONE=9600,N,8,1
PORTA=1
COMANDO_PREZZO=H
COMANDO_QUANTITA=*
COMANDO_DESCRIZIONE="
COMANDO_REPARTO=R
COMANDO_PLU=P
COMANDO_MODIFICATORE=M
COMANDO_CODICE_NUMERICO=#
COMANDO_CODICE_TESTO=@
COMANDO_ATTIVAZIONE_GRAFICA=^
COMANDO_CLEAR=K
COMANDO_CASSA=1T
COMANDO_INVIO=%13%
COMANDO_EOT=%04% %13%
COMANDO_SUBTOTALE=%=%
COMANDO_SCONTO_PERC_LINEA=1
COMANDO_SCONTO_PERC_SUBTO=2
COMANDO_SCONTO_VALORE_LINEA=3
COMANDO_SCONTO_VALORE_SUBTO=4
COMANDO_MAGGNE_PERC_LINEA=5
COMANDO_MAGGNE_PERC_SUBTO=6
COMANDO_MAGGNE_VALORE_LINEA=7
COMANDO_MAGGNE_VALORE_SUBTO=8
COMANDO_RESO=9
COMANDO_FONDO_CASSA=10
COMANDO_PRELIEVO_CASSA=11
COMANDO_CREDITO_CLIENTE=12
QTA_RAGGRUPPATE=s
Lungh_Descrizione=10
Lungh_Descrizione_e_Importo=32
MaxLenDescrInRiga1=10
[HEADER]
Riga1=Pinco Pallo S.p.A.
Riga2=P.IVA 01574625681
Riga3=P.zza Mare e Monti, 89
Riga4=20128 MILANO
[DETAILS]
Riga1=%qta% %descrizione% %IMPORTO% %SCONTO%
[FOOTER]
Riga1=Grazie per la visita
Riga2=Arrivederci
REGISTRATORI DI CASSA: Collegamento - 15
Sezioni
•
•
•
•
•
Drivers: indica il nome della DLL da utilizzare come driver per l’ECR.
Setting: in questa sezione vengono specificati i settaggi dell’ECR quali i parametri di
comunicazione, la porta cui è collegato il dispositivo e una serie di comandi specifici del
linguaggio del dispositivo collegato.
Header: si tratta della testata dello scontrino, ossia la stringa che va stampata prima degli
articoli acquistati.
Details: è la chiave che rappresenta il formato di ogni riga di dettaglio, ossia la riga
dell’articolo acquistato.
Footer: si tratta della stringa che viene stampata dopo aver inviato il comando cassa, al
piede dello scontrino.
Descrizione Dettagliata di ogni Sezione e di ogni Comando
Nota Importante: sono riportate in rosso le restrizioni ed i limiti da rispettare per il registratore di
cassa Sarema.
[DRIVER]
DRIVERNAME: indica il nome della DLL da utilizzare; deve essere presente e registrata sul
sistema operativo del PC dal quale si controlla l’ECR. È possibile che tale DLL sia incompatibile
con il registratore di cassa collegato. Pertanto va ricompilata seguendo le specifiche della
macchina. Nel caso il registratore di cassa fosse della stessa famiglia di quello nativo
(SAREMA modello EXTRA), per questo componente potrebbe essere sufficiente la sola
modifica dei comandi specificata nella sezione setting.
[SETTING]
COMUNICAZIONE=9600,N,8,1
Indica i parametri di comunicazione. Nello specifico il BoudRate, la parità, il numero di bit dati e
il numero dei bit di stop.
PORTA=1
Indica la porta seriale al quale è collegato il dispositivo.
COMANDO_CLEAR=K
Rappresenta la stringa di caratteri da inviare al registratore di cassa per azzerare e cancellare
dalla memoria lo scontrino precedente o eventuali errori. Equivale a premere una volta il tasto
[C] sul dispositivo. Questa impostazione è riportata sul manuale dell’ECR.
COMANDO_CASSA=T
Rappresenta la stringa di caratteri da inviare al registratore di cassa per ottenere il totale degli
articoli battuti. Equivale a premere una volta il tasto [Totale] o [Cassa] sul dispositivo. Questa
impostazione è riportata sul manuale dell’ECR.
COMANDO_PREZZO=H
Si tratta del terminatore del prezzo. È il carattere in formato testo che deve seguire l’importo. Su
questo ECR se si vuole inviare ad esempio una battuta da quarantottomila lire si deve inviare
un output sulla porta come segue “48000H”
COMANDO_QUANTITA=*
16 – Manuale Tecnico
È il terminatore della quantità, esso segue immediatamente la quantità. In questo ECR la
quantità deve obbligatoriamente precedere il prezzo e tra questi campi non può esserci
nessun altro campo.
COMANDO_DESCRIZIONE="
Si tratta del carattere che identifica la descrizione. A differenza degli altri terminatori questo va
inserito prima e dopo del campo. In questo ECR la descrizione può contenere solo caratteri
MAISCOLI e la lunghezza massima è di 10 caratteri.
COMANDO_REPARTO=R
Indica il reparto al quale appartiene la riga venduta. Il reparto e/o il PLU devono
obbligatoriamente essere gli ultimi campi della linea inviata.
COMANDO_PLU=P
Si rimanda alla documentazione del registratore di cassa per la spiegazione del PLU. Il PLU
come il reparto va posto alla fine della linea dello scontrino.
COMANDO_MODIFICATORE=M
Il comando modificatore serve a modificare un prezzo. Esso è usato negli sconti e nelle
maggiorazioni immediatamente prima del carattere di modifica troviamo il numero che identifica
il tipo di modifica (es. “1”= sconto in percentuale su transazione). Ogni modifica ha una sintassi
prestabilita e rigorosa, anche l’ordine dei campi non è flessibile quando si usano le
maggiorazioni. Vedere i comandi specifici al tipo di modifica per la sintassi e per l’ordine dei
campi.
COMANDO_CODICE_NUMERICO=#
Una volta effettuata una transizione (ovvero una linea con un prezzo) è possibile inviare un
codice numerico come ad esempio il barcode sulla linea successiva. Per inviare tale linea, che
non ha influenza sul totale, bisogna far terminare la stringa con il carattere indicato. La
lunghezza massima è di 19 caratteri.
COMANDO_CODICE_TESTO=@
Esso funzione come il comando numerico con la differenza che nella stringa si possono inserire
caratteri alfanumerici. La lunghezza massima è di 19 caratteri.
COMANDO_ATTIVAZIONE_GRAFICA=^
In questo ECR si possono inserire delle immagini grafiche che sono memorizzate nella eprom
del registratore di cassa. È, pertanto, possibile inserire nella sezione HEADER o FOOTER un
comando che richiami una delle immagini residenti sull’ECR. Vedere le relative sezioni per i
dettagli.
COMANDO_INVIO=%13%
Si tratta del carattere da inviare al registratore di cassa dopo ogni articolo per essere stampato.
Siccome esso può variare in base all’ECR esso può essere impostato sul file di configurazione
dell’ECR. Il carattere viene rappresentato nella sua codifica ASCII, e in realtà potrebbe
accadere che sui manuali compaia il comando in formato testo. In questo caso la stringa va
scomposta carattere per carattere e di quest’ultimo va riportata tra le “%” la relativa codifica in
ASCII.
COMANDO_EOT=%04% %13%
Si tratta della stringa che utilizza l’ECR per comunicare all’HOST il ricevimento del comando
precedente e la relativa fine della trasmissione. Anche per questo comande vale la regola del
precedente cioè: codifica in ASCII e numero racchiuso tra le percentuali (%).
COMANDO_SUBTOTALE==
REGISTRATORI DI CASSA: Collegamento - 17
Il comando SUBTOTALE diventa molto importante nella gestione dello sconto su più linee.
Infatti se si deve applicare uno sconto (o una maggiorazione) ad un gruppo di articoli è
necessario inviare prima il comando di subtotale. Attenzione: in questa famiglia di registratori di
cassa è il carattere =.
COMANDO_SCONTO_PERC_LINEA=1
Questo comando effettua lo sconto in percentuale sulla singola linea (cioè sull’articolo
specificato). In questo ECR l’ordine dei campi per la gestione dello sconto è rigorosa e va
rispettata: Descrizione, qta, prezzo, sconto * M1.
COMANDO_SCONTO_PERC_SUBTO=2
Funziona esattamente come lo sconto di linea ma ad esso va anteposto obbligatoriamente il
comando di subtotale
COMANDO_SCONTO_VALORE_LINEA=3
Rispetta la stessa sintassi dello sconto in percentuale, ma semplicemente al posto della
percentuale viene sottratto un valore esatto. Attenzione bisogna rispettare lo stesso ordine
dello sconto in percentuale.
COMANDO_SCONTO_VALORE_SUBTO=4
Come per lo sconto in percentuale a subtotale. Valgono tutte le stesse regole di sintassi.
COMANDO_MAGGNE_PERC_LINEA=5
Identica allo sconto relativo
COMANDO_MAGGNE_PERC_SUBTO=6
Identica allo sconto relativo
COMANDO_MAGGNE_VALORE_LINEA=7
Identica allo sconto relativo
COMANDO_MAGGNE_VALORE_SUBTO=8
Identica allo sconto relativo
COMANDO_RESO=9
Non implementata in questa versione ma prevista per uso futuro
COMANDO_FONDO_CASSA=10
Non implementata in questa versione ma prevista per uso futuro
COMANDO_PRELIEVO_CASSA=11
Non implementata in questa versione ma prevista per uso futuro
COMANDO_CREDITO_CLIENTE=12
Non implementata in questa versione ma prevista per uso futuro
QTA_RAGGRUPPATE=S
Si tratta di una specifica proprietà del componente. Se questa è settata su SI le quantità
vengono stampate in modo raggruppato. Esempio: se vengono acquistate 4 magliette nello
scontrino verrà riportata la scritta “4 x magliette L.480.000” se invece la proprietà è settata su
NO allora sullo scontrino appariranno 4 righe distinte ognuna contenente una maglietta da
120.000.
La chiave accetta i seguenti valori: “S”, “N”, “SI”, “NO”, “VERO”, “FALSO”, “TRUE”, “FALSE”,
“YES”, “Y”, “0”, “1” O “-1”. Si è pensato di dare molte opzioni all’utente per evitare diverse
18 – Manuale Tecnico
perdite di tempo nella ricerca dell’impostazione esatta della chiave nel caso fosse sprovvisto
della necessaria documentazione.
Tutte le impostazioni e le chiavi vengono accettate indifferentemente in maiuscolo e in
minuscolo.
LUNGH_DESCRIZIONE=24
Indica la lunghezza in caratteri della riga di descrizione. Essa può essere composta da più di un
campo, ad esempio, prodotto, barcode, e qta. In questo caso la stringa viene per prima cosa
creata (concatenando i campi) e poi, successivamente, tagliata a destra per il numero di
caratteri specificato in questa chiave.
LUNGH_DESCRIZIONE_E_IMPORTO=32
Questa chiave è identica alla precedente con la differenza che include nella stringa anche
l’importo degli articoli. Essa si è resa necessaria perché alcuni ECR (compreso questo) hanno
un limite totale di riga superato il quale essi rispondono con un errore. La procedura è identica:
prima viene formata una stringa e poi viene troncata. Siccome, però, in molti ECR il prezzo è
l’ultimo campo da inviare nella stringa di dettaglio si è usato un controllo che evita di tagliare
l’importo.
[HEADER]
Riga1=Pinco Pallo S.p.A.
Per quanto riguarda l’header, in questa versione della DLL, esso può essere impostato sino ad
un numero indefinito di righe (dipendenti dalle specifiche dell’ECR). Basterà aggiungere o
eliminare le chiavi “RIGAn”. La procedura continua a cercare sino a che non ci siano più righe
settate nel file ECRconfig.ini.
Alcuni ECR non consentono la personalizzazione dall’esterno della testata, infatti basta inviare
il primo articolo che automaticamente il registratore di cassa stampa il proprio header così
come è stato impostato sul dispositivo. In tal modo, questi ECR, non permettono la variabilità
dell’header, se non attraverso le impostazioni dirette sull’ECR.
[FOOTER]
Riga1=Grazie per la visita
Stringa che viene stampata alla fine dello scontrino dopo il totale.
Per il Footer valgono tutte le osservazioni fatte per l’Header.
[DETAILS]
RIGA1= %DESCRIZIONE% %IMPORTO%
La riga di dettaglio riveste una particolare importanza, in quanto essa specifica come deve
essere rappresentato ogni singolo articolo sullo scontrino.
In questa riga si specifica l’ordine dei campi. In effetti un utente potrebbe avere l’esigenza di
stampare per prima il barcode, quindi la descrizione ed infine il prezzo. Un altro utente al
contrario potrebbe rinunciare al barcode ed evidenziare la descrizione e quindi il codice articolo.
Il dettaglio ha la possibilità di essere multiriga come per il footer e per l’header. Il meccanismo è
identico a quello delle altre sezioni, basta aggiungere la chiave RIGAn per specificare le
successive righe.
Questo ECR pone delle limitazioni di ordine solo alla prima riga, ovvero quella in cui compare il
prezzo la quantità e lo sconto. Le righe successive possono contenere diversi campi
alfanumerici secondo il grado di personalizzazione. Bisogna tener conto che ogni successiva
riga può contenere al massimo 19 caratteri.
REGISTRATORI DI CASSA: Collegamento - 19
La sintassi utilizzata è %nomecampo%. Esistono due tipologie di campi che si possono inserire.
I campi standard e i campi personalizzati.
I campi standard sono rappresentati nella tabella che segue:
I campi standard sono:
Nome campo
Quantità
Articolo
Barcode
Sconto
Prezzo
descrizione
Indica la quantità di pezzi per
quell’articolo
Si
tratta
della
descrizione
dell’articolo
È il codice a barre dell’articolo
È la percentuale di sconto
applicata
Indica il prezzo dell’articolo
Accettato anche come:
qta, quantità, quantita' q.ta, quantita
descrizione, prodotto, articolo
Barcode, bc, codiceabarre
Sconto
Prezzo, importo
Questi campi devono essere inseriti nella chiave DETAILS racchiusi tra caratteri %.
Oltre ai campi standard è possibile inserire altri campi tra quelli inseriti nella griglia oppure
eventuali campi personalizzati inseriti dall’utente.
L’inserimento di altri campi viene effettuato attraverso la finestra proprietà nell’ambito della
personalizzazione on fly.
Il nome del campo che dovrà comparire nella sezione DETAILS in questo caso è
%ScfDett.CodIva% che andrà inserito all’interno key riga1. Questo identico discorso vale anche
per i campi personalizzati.
In questo modo l’utente ha a disposizione il massimo grado di personalizzazione.
20 – Manuale Tecnico
1.3.1 Aspetti funzionali
(Per Installatori)
La maschera presenta un pulsante in più, vale a dire il pulsante STAMPA che serve a stampare
e confermare lo scontrino fiscale.
Il pulsante appare (anche se disabilitato) solo se è presente il dispositivo, il che vuol dire:
• Che la DLL è installata e registrata
• Che il file ECRconfig.ini esiste nella directory specificata
• Che il dispositivo risponde correttamente alla chiamata del membro OpenConnection.
Il primo controllo effettuato dalla procedura è che ci sia il file ECRconfig.ini nella directory di
lavoro. Se non ci dovesse essere viene visualizzato il seguente messaggio:
Questo messaggio si verifica anche se nel file non dovesse comparire la voce DiverName nella
sezione Driver.
Se invece in apertura manca la DLL una msgbox simile a quella precedente notifica la
mancanza della suddetta.
Se nella funzione parametri della procedura, alla voce dispositivi collegati, la combobox che
identifica il tipocassa è uguale a zero, allora il pulsante stampa non compare affatto.
REGISTRATORI DI CASSA: Collegamento - 21
1.4 Interfacciamento con registratore di cassa NCR2190i
L’interfacciamento con il registratore di cassa prevede l’utilizzo del driver da loro fornito.
In ogni caso buona parte delle personalizzazioni consentite con gli altri registratori di cassa è
comunque garantita anche in questa DLL.
I COMPONENTI CHE VANNO INSTALLATI SULLA MACCHINA HOST
Innanzitutto la DLL chiamata KngNCR.dll quindi il file di configurazione ECRconfig.ini.
Sino a qui valgono le stesse regole degli altri registratori di cassa.
A questi componenti vanno aggiunti:
• Una cartella “KngDvNcr” che sarebbe meglio se fosse posizionata nella root. In essa sono
contenuti i seguenti files:
• Il file WINPCS.EXE è il modulo che gestisce la comunicazione
• Il file WINPCS.INI si tratta del file che permette la configurazione del driver, in realtà l’utente
finale non dovrebbe avere la necessità di toccarlo. Tuttavia è necessario che questo file si
trovi nella cartella specificata nel punto 1.
• Il file WINDRV.EXE è il driver vero e proprio
• Il file WINDRV.INI è un file di configurazione vale lo stesso discorso per il file di
configurazione del punto 3.
• Il file log definito denominato WINDRV.LOG che tiene traccia degli eventi del registratore di
cassa, questo file va svuotato periodicamente. In quanto potrebbe diventare di dimensioni
molto ampie.
• Il file FPU.DAT è il file sul quale viene appoggiato lo scontrino prima di essere inviato al
registratore di cassa. Anche questo file deve risiedere nella stessa cartella.
• Il file STOPDRV.BAT che serve ad interrompere l’esecuzione del driver.
IL FUNZIONAMENTO DEL DRIVER INSIEME ALLA KNGNCR.DLL
Il driver viene eseguito ed attivato dalla funzione OpenConnection chiamata da
OpenRegistratore nel programma gestionale.
Importante: il path in cui si trova il driver è specificato nel file ECRconfig.ini nella sezione
SETTING e più precisamente alla chiave PATHDRIVER anche questo parametro viene letto e
passato in OpenRegistratore.
Quando si carica il form del registratore di cassa potrebbe apparire per un istante la schermata
della NCR, dipende dalla velocità della macchina, tuttavia è un’anomalia prevista. In ogni caso il
codice gestisce il driver in modo da non visualizzare affatto la schermata.
Il driver è un eseguibile che gira nella traybar ci si rende conto della sua attivazione perché
appare l’icona nella trybar.
La sua attivazione rallenta leggermente l’esecuzione di altre attività pertanto si consiglia di non
avere altre applicazioni in esecuzione oltre al gestionale.
Il driver viene chiuso automaticamente alla chiusura della form scontrini attraverso il file
STOPDRV.BAT che deve risiedere sempre nella cartella C:\KngDvNcr.
22 – Manuale Tecnico
LA PROGRAMMAZIONE
È possibile personalizzare buona parte delle impostazioni del registratore di cassa, in
particolare abbiamo la personalizzazione della testata e del piede dello scontrino.
La personalizzazione della testata e del piede avviene ogni volta che l’utente cambia le
impostazioni nel file ECRconfig.ini . Bisogna tener presente che per la testata si hanno a
disposizione 6 righe da 18 caratteri, mentre per il piede si hanno a disposizione 2 righe da 18
caratteri.
Per il dettaglio le regole di programmazione sono identiche a quelle degli altri ECR, tuttavia
esiste in questo ECR la limitazione di 12 caratteri per la descrizione che come al solito può
essere composta da più di un campo.
1.5 Interfacciamento con registratore di cassa Target
L’interfacciamento con il registratore di cassa prevede l’utilizzo del driver da loro fornito.
In ogni caso buona parte delle personalizzazioni consentite con gli altri registratori di cassa è
comunque garantita anche in questa DLL.
Lo stesso driver e lo stesso protocollo funzionano anche per i seguenti registratori:
-------------------Modelli
-------------------TARGET
-------------------SERIE
-------------------SERENA
-------------------MI580
:
:
300
:
:
INDESIT
:
Marca
ARISIND
CASIO
ELETTRONICA
TEC
I COMPONENTI CHE VANNO INSTALLATI SULLA MACCHINA HOST
Innanzitutto la DLL chiamata KngTarget.dll quindi il file di configurazione ECRconfig.ini.
Sino a qui valgono le stesse regole degli altri registratori di cassa.
A questi componenti vanno aggiunti:
• Una cartella “KngDvTgt” che sarebbe meglio se fosse posizionata nella root. In essa sono
contenuti i seguenti files:
• Il file ECRCOM.EXE è il modulo che gestisce la comunicazione
• Il file COM232.EXE è il file che apre e mantiene aperta la comunicazione.
• Il file STOPDRV.BAT che serve ad interrompere l’esecuzione del driver.
Credo che sia necessario configurare l’install shield in modo che tutte queste operazioni siano
del tutto automatiche e nascoste all’utente.
IL FUNZIONAMENTO DEL DRIVER INSIEME ALLA KNGNCR.DLL
Il driver viene eseguito ed attivato dalla funzione OpenConnection chiamata da
OpenRegistratore nel programma gestionale.
Importante: il path in cui si trova il driver è specificato nel file ECRconfig.ini nella sezione
SETTING e più precisamente alla chiave PATHDRIVER anche questo parametro viene letto e
passato in OpenRegistratore.
REGISTRATORI DI CASSA: Collegamento - 23
Il driver è un eseguibile che gira sotto l’interfaccia dos ed è completamente nascosto all’utente
La sua attivazione rallenta leggermente l’esecuzione di altre attività pertanto si consiglia di non
avere altre applicazioni in esecuzione oltre al gestionale.
Il driver viene chiuso automaticamente alla chiusura della form scontrini attraverso il file
STOPDRV.BAT che deve risiedere sempre nella cartella C:\KngDvTgt.
LA PROGRAMMAZIONE
È possibile personalizzare buona parte delle impostazioni del registratore di cassa, in
particolare abbiamo la personalizzazione della testata e del piede dello scontrino.
La personalizzazione della testata e del piede avviene ogni volta che l’utente cambia le
impostazioni nel file ECRconfig.ini .
La documentazione fornitami non spiega chiaramente quali siano i limiti delle personalizzazioni,
in questo caso sarebbero necessarie un po’ di prove.
Per il dettaglio le regole di programmazione sono identiche a quelle degli altri ECR, vale a dire
si possono scegliere i campi che vanno a comporre la riga di dettaglio. Anche per questa
proprietà la documentazione non dichiara limiti specifici, bisogna fare qualche prova.
1.6 Specifiche per la certificazione di nuovi registratori di cassa
Per la certificazione di nuovi registratori di cassa occorre l’utente interessato a interfacciarVi la
procedura ci fornisca di quanto segue:
•
•
•
•
•
Specifiche tecniche del protocollo (sia logico che fisico)
Manuale di funzionamento della cassa
Disponibilità della cassa di almeno due giorni (nella nostra sede o in quella del
cliente)
Cavi ed eventuali accessori per stabilire la comunicazione
Il driver prodotto dalla casa costruttrice (se esiste) con relativa documentazione.
Possiamo dichiarare di poter certificare e realizzare una nuova DLL di comunicazione tra la
Procedura e registratore di cassa solo se ci vengono forniti tutti gli elementi sopra elencati.
Con la giusta documentazione, il driver e la cassa a disposizione possiamo stabilire il tipo di
l’implementazione.
Ovviamente le 4 proprietà Comando_Cassa, Comando_Clear, Comando_Invio,
Comando_EOT sono l’esatta corrispondenza della key impostata nel file ECRconfig.ini.
Il metodo Cassa è pubblico poiché è data al programmatore la possibilità di inviare il comando
cassa in qualsiasi punto del codice dell’eseguibile KngMain.exe.
24 – Manuale Tecnico
1.7 Esempio di file ECRconfig.ini per interfacciamento con il driver
universale RTS WPOS1
L’applicativo RTS WPos1, prodotto e distribuito dalla società RTS Engineering
(http://www.rtseng.it/), consente il collegamento tra il gestionale ed i Registratori di Cassa
(ECR) presenti sul mercato.
E’ necessario verificare innanzitutto la compatibilità del Registratore di Cassa accedendo al sito
web della società produttrice: http://www.rtseng.it/public/Elenco%20ECR.pdf; quindi installare la
versione corretta del software RTS WPOS1 al fine di interfacciare il gestionale con tale
prodotto.
1.7.1 Configurazione file ECRconfig.ini per WPos1
Da un punto di vista tecnico, in fase di stampa di uno scontrino, il gestionale cercherà nel file
ECRconfig.ini la presenza dell’istruzione DriverName = WPPos la quale consentirà di stabilire
il collegamento con la procedura Rts WPos1.
Di seguito riportiamo un esempio di configurazione del file ECRConfig.ini:
[DRIVER]
DriverName=WPPos
[SETTING]
PATHSCONTR=C:\Programmi\RTS Wpos1 In questa stringa dovrà essere riportato il
percorso di salvataggio dei file necessari per la stampa degli scontrini e dovrà necessariamente
coincidere con il percorso di installazione del programma RTS WPos1.
MATRICOLA=000000000 In questo campo dovrà essere indicato il numero di licenza del
programma RTS WPos1 (univoco per ogni matricola legata al corrispondente Registratore di
Cassa)
[DETAILS]
Riga=CodArt%Descrizione% Valorizzando questo campo si possono impostare gli elementi
da inserire nella riga dello scontrino separati dal simbolo percentuale.
Files generati nella cartella di lavoro del driver:
FILEOUT= "
FILEOUT= "SR_OUT.001" viene generato ad ogni stampa e contiene i dati dello scontrino
(numero scontrino, data e ora di stampa)
FILEERR= "SR_ERR.001" viene generato solo in caso di errori e ne conterrà la relativa
descrizione.
I file seguenti vengono generati dal gestionale e contengono:
FILEDATI= "SR_DATI.001" le istruzioni da inviare al registratore di cassa
FILESTART= "SR_START.001" il numero di matricola necessario per avviare la stampa.
FILEEND = "FINESCO.001" viene generato dal software RTS WPos1 solo nel caso in cui la
stampa sia completata con successo.
REGISTRATORI DI CASSA: Collegamento - 25
1.7.2 Configurazione per l’utilizzo RTS Wpos1 in modalità Desktop Remoto
Sulla postazione dove risiede l’applicativo gestionale è necessario creare una cartella di
scambio (es. C:\WPos), prestando attenzione ad autorizzazioni e relativi permessi di scrittura
da parte degli utenti ed impostare la stessa come PATHSCONTR nel file ECRConfig.ini (il
quale potrà essere posizionato nella directory %UserProfile%\Windows del singolo utente).
A questo punto dalla postazione Client è necessario abilitare l’utilizzo delle proprie unità locali in
fase di connessione remota, quindi “mappare” la cartella creata in precedenza come unità di
rete (es. unità Z: = \\TSClient\C\Wpos) e infine copiare al suo interno il modulo eseguibile
principale “wppos1.exe”
A questo punto ed eseguire il file wppos1.exe
e verificare la presenza
del collegamento allo stesso nella cartella di Esecuzione Automatica del sistema.
Scarica

registratori di cassa