Indice
Risultati ricerca
Frase completa
Cerca nella pagina
Chiudi
Indice

PERSONALIZZAZIONE STAMPA TESTUALE (LAYOUT TESTUALE)

Per le stampanti testuali è possibile personalizzare le stampe caricando nell’apposito campo “Configurazione stampa”, un file xml contenente il “layout” testuale. La personalizzazione, sebbene non raggiunga la completezza e la potenza di quella possibile con le stampanti grafiche, consente di aggiungere e posizionare all’interno del documento gli stessi campi dati che sono disponibili nei layout grafici inoltre è possibile aggiungere i comandi Esc\Pos sia per definire lo stile di output del testo sia per eseguire alcune funzionalità della stampante (es: apertura cassetto, modifiche alla dimensione del testo, beep sonori, ecc). Di seguito è spiegato come è composto il file xml del layout testuale in modo da poterlo modificare a proprio piacimento.


È possibile personalizzare i seguenti tipi documento:

  • Comanda
  • Conto
  • Buono sconto
  • Note

Nella cartella utilità\stampanti dentro la cartella di installazione sono presenti alcuni file contenenti layout predefiniti che è già possibile utilizzare direttamente oppure come base di partenza per personalizzare la stampa.

I file sono i seguenti:

  • XMLLayoutTestuale.xml
  • XMLLayoutTestuale_LunghDoppia.xml
  • XMLLayoutTestuale - LunghDoppia_Centro.xml
  • XMLLayoutTestuale_LunghDoppia_Raggr.xml

La struttura del file xml si presenta nel seguente modo:

<doc>

Radice dell’intero file xml

<comandi>

Sezione configurazione dei comandi Esc/Pos

<comando nome=”nome” valore=”valore comando” />

Configurazione comando Esc pos

...

</comandi>

Fine sezione configurazione comandi Esc/Pos

<tipoDocumento>

Inizio documento

...

Composizione del documento (vedi sotto)

</tipoDocumento>

Fine documento

</doc>

Fine documento xml

Il tag tipoDocumento può assumere i seguenti valori:

  • comanda
  • buonoSconto
  • scontrino
  • proforma
  • preconto
  • fattura
  • ricevuta
  • ricevutaHotel
  • nota

Per ogni tipo documento elencato, quindi, è possibile personalizzare la stampa testuale.

N.B. i documenti scontrino e ricevuta saranno stampanti come documenti NON fiscali

Es:

<doc>

Radice dell’intero file xml

<comandi>

Sezione configurazione dei comandi Esc/Pos

<comando nome=”nome” valore=”valore comando” />

Configurazione comando Esc pos

...

</comandi>

Fine sezione configurazione comandi Esc/Pos

<buonoSconto>

Inizio documento buono sconto

...

Composizione del buono sconto

</buonoSconto>

Fine documento buono sconto

</doc>

Fine documento xml

ELEMENTO RIGA

Ogni tipoDocumento è composto da tanti elementi di tipo <riga> che, appunto, rappresentano le varie righe del documento. Per i tipi più complessi (comanda e tipi conto) tali elementi riga sono raggruppati in sezioni (corrispondenti a diversi tag XML) che costituiscono la struttura del documento.

Ogni elemento <riga> è costituito dai seguenti elementi di base corrispondenti ad altrettanti tag xml:

  • testo: permette di inserire il testo semplice all’interno di ogni riga nel seguente formato

<testo>testo da inserire</testo>

Esempio

OUTPUT

<riga>

<testo>testo semplice</testo>

</riga>

Testo semplice

  • var: permette di inserire una variabile nella riga nella maniera seguente:

<var>NomeVariabile</var>

dove NomeVariabile è il nome della variabile che si intende inserire. Le variabili da utilizzare sono contenute nell’xml in fondo

Ogni sezione ha le proprie variabili e non è possibile ad esempio inserire una variabile di testata nella sezione righe. Ogni elemento di tipo var può avere i seguenti attributi:

  • lunghezza: specifica il numero di caratteri della variabile, ovvero quanti caratteri “occupa”. Se il valore è più corto saranno aggiunti degli spazi (a destra per le stringhe e le date, a sinistra per i numerici) per compensare; se il valore è più lungo sarà troncato.
  • formato: permette di formattare il valore numerico o data

Esempio

OUTPUT

<riga>

<testo>ORA: </testo>

<var formato='HH:mm'>DataCorrente</var>

</riga>

<riga>

<testo>Centro di produzione</testo>

<var>CentroProduzione</var>

</riga>

ORA: 11:30

Centro di produzione: BAR

È possibile inoltre applicare le seguenti funzioni alle variabili:

    • len: lunghezza del valore (in stringa)
    • Right(valore, n): prende gli n caratteri del valore a destra
    • Left(valore, n): prende i primi n caratteri del valore
    • Remove(valore, i, n): rimuove n caratteri di valore a partire dall’i-esimo
    • Replace(valore, val1, val2): sostituisce all’interno di valore la stringa val1 con val2
    • Mid(valore, i, n): restituisce gli n caratteri di valore a partire dall’i-esimo
    • Trim(valore): rimuove gli spazi a destra e a sinistra del valore
    • PadLeft(valore, n): se la lunghezza di una striga è < n, aggiunge tanti spazi a sinistra fino a raggiungere la lunghezza n
    • PadRight(valore, n): se la lunghezza di una striga è < n, aggiunge tanti spazi a destra fino a raggiungere la lunghezza n
    • SubString(valore, i): restituisce i caratteri di valore a partire dall’ i-esimo
    • SubString(valore, i, n): restituisce n caratteri di valore a partire dall’i-esimo

Esempio

OUTPUT

<riga>

<var>Cliente.Anagrafica.RagioneSociale</var>

</riga>

<riga>

<var>Replace(Cliente.Anagrafica.RagioneSociale, "Rossi", "Verdi")</var>

</riga>

Mario Rossi

Mario Verdi

  • comando: consente di utilizzare un comando Esc/Pos all’interno del documento.

Questi comandi permettono sia di applicare un particolare stile al testo (grassetto, corsivo, ecc) sia di effettuare delle operazioni particolari alla stampante (aprire il cassetto portamonete, emettere un beep sonoro, ecc). Per la lista dei comandi Esc/Pos supportati dalla stampante occorre fare riferimento al manuale della stampante.

Per aggiungere un nuovo comando occorre prima di tutto aggiungere un elemento di tipo “comando” nella sezione “comandi” all’inizio del documento nel seguente formato:

<comando nome="nomecomando" valore="valoreComando" />

“nome” contiene il nome del comando che si sta creando

“valore” contiene il valore del comando. Ogni carattere che compone il comando deve essere inserito in formato esadecimale e preceduto da “\x”

Ad esempio se si vuole aggiungere il comando di beep sonoro, occorre configurarlo nel modo seguente:

<comandi>

<comando nome="beep" valore="\x1C\xC0\x07" />

...

</comandi>

Successivamente per utilizzare il comando nelle righe occorre inserire un elemento di tipo “comando” in questo modo:

<riga>

...

<comando>beep<comando/>

...

</riga>

In fase di stampa il programma sostituirà al valore beep il valore specificato nella configurazione del comando.

Esempio comando

OUTPUT

<comandi>

<comando nome="corsivoOn" valore="\x1B\x21\x40" />

<comando nome="corsivoOff" valore="\x1B\x21\x00" />

</comandi>

...

<riga>

<comando>corsivoOn</comando>

<testo>Centro di produzione: </testo>

<comando>corsivoOff</comando>

<var>CentroProduzione</var>

</riga>

Centro di produzione: BAR


CONDIZIONI

All’interno di ogni sezione documento (o all’interno del documento stesso se non è prevista la suddivisione in sezioni) è possibile utilizzare particolari tag per gestire le condizioni. Ad esempio è possibile nascondere alcune righe se una certa condizione non è soddisfatta.

A tal scopo si utilizzano i seguenti tag:

struttura condizioni

<condizione>

<if valore1="PrimoValore" operatore=”=” valore2="SecondoValore" >

….

</if>

<elseif valore1="PrimoValore" operatore=”=” valore2="SecondoValore" >

….

</elseif>

<else>

….

</else>

</condizione>

Ogni tag <condizione> contiene un tag <if> ed eventuali altri tag <elseif> ed <else> tramite i quali è possibile specificare condizioni che se soddisfatte consentono di stampare le righe contenute in essi.

Per specificare la condizione si utilizzano i seguenti attributi:

  • valore1: primo valore da confrontare.
  • Operatore: operatore di confronto. Può assumere i seguenti valori:

Operatore

significato

=

uguale

eq

uguale

!=

Diverso

gt

Maggiore (>)

lt

Minore (<)

ge

Maggiore o uguale (>=)

le

Minore o uguale (<=)

IsNull

È nullo

StartWith

Inizia con

EndsWith

Termina con

Contains

Contiene

  • valore2: secondo valore da confrontare

valore1 e valore2 possono essere variabili del programma o costanti.

Esempio:

Operatore

Esempio

=

<if valore1="Sconto" operatore="=" valore2="0" >

eq

<if valore1="Cliente.Anagrafica.RagioneSociale" operatore="eq" valore2="Mario Rossi" >

!=

<if valore1="Sconto" operatore="!=" valore2="0" >

gt

<if valore1="Sconto" operatore="gt" valore2="0" >

lt

<if valore1="Sconto" operatore="lt" valore2="0" >

ge

<if valore1="Sconto" operatore="ge" valore2="0" >

le

<if valore1="Sconto" operatore="le" valore2="0" >

IsNull

<if valore1="DataConsegna" operatore="IsNull" valore2="" >

StartWith

<if valore1="promozioneDescrizione1" operatore="StartWith" valore2="Promo" >

EndsWith

<if valore1="promozioneDescrizione1" operatore="EndsWith" valore2="estate" >

Contains

<if valore1="promozioneDescrizione1" operatore="Contains" valore2="estate" >

Non sono previsti operatori AND e OR, ma è possibile innestare ulteriori condizioni all’interno di un tag if, elseif o else.

Inoltre, come visto sopra per le variabili, è possibile applicare le funzioni a valore1 e valore2:

  • len: lunghezza del valore (in stringa)
  • Right(valore, n): prende gli n caratteri del valore a destra
  • Left(valore, n): prende i primi n caratteri del valore
  • Remove(valore, i, n): rimuove n caratteri di valore a partire dall’i-esimo
  • Replace(valore, val1, val2): sostituisce all’interno di valore la stringa val1 con val2
  • Mid(valore, i, n): restituisce gli n caratteri di valore a partire dall’i-esimo
  • Trim(valore): rimuove gli spazi a destra e a sinistra del valore
  • PadLeft(valore, n): se la lunghezza di una striga è < n, aggiunge tanti spazi a sinistra fino a raggiungere la lunghezza n
  • PadRight(valore, n): se la lunghezza di una striga è < n, aggiunge tanti spazi a destra fino a raggiungere la lunghezza n
  • SubString(valore, i): restituisce i caratteri di valore a partire dall’ i-esimo
  • SubString(valore, i, n): restituisce n caratteri di valore a partire dall’i-esimo

Operatore

Esempio

len

<if valore1="len(CodiceABarre)" operatore="=" valore2="13" >

Right

<if valore1="Right(Cliente.Anagrafica.RagioneSociale, 3)" operatore="eq" valore2="Ros" >

Remove

<if valore1="Replace(Nome, "Rossi", "Verdi")" operatore="eq" valore2="Mario Verdi" >

Mid

<if valore1="Sconto" operatore="lt" valore2="0" >

Trim

<if valore1="Sconto" operatore="ge" valore2="0" >

PadLeft

<if valore1="Sconto" operatore="le" valore2="0" >

PadL

<if valore1="DataConsegna" operatore="IsNull" valore2="" >

StartWith

<if valore1="promozioneDescrizione1" operatore="StartWith" valore2="Promo" >

EndsWith

<if valore1="promozioneDescrizione1" operatore="EndsWith" valore2="estate" >

Contains

<if valore1="promozioneDescrizione1" operatore="Contains" valore2="estate" >

COMPOSIZIONE DEL LAYOUT COMANDA

Il layout della “comanda” è composto dalle seguenti sezioni:

  • testata: contiene le righe di testata della comanda.
  • testataAsporto: contiene le righe di testata di una comanda di asporto
  • righeElementi: è la sezione dettaglio che contiene a sua volta le seguenti sezioni dati:
    • rigaElemento: contiene i dati dell’elemento inserito in comanda
    • rigaElementoAltroCentro: contiene i dati dell’elemento inserito in comanda ma prodotto da un altro centro. In questo modo è possibile ad es. poter stampare gli elementi degli altri centri di produzione in carattere più piccolo o comunque non allo stesso modo degli elementi appartenenti a quel centro di produzione. Se non è definito saranno utilizzate le impostazioni di rigaElemento.
    • rigaElementoNonInviato: contiene i dati dell’elemento inserito in comanda ma non ancora inviato. Se non è definito saranno utilizzate le impostazioni di rigaElemento.
    • separatoreUscite: definizione dell’intestazione di ogni uscita
    • separatoreUsciteNonInviate: definizione dell’intestazione delle righe degli elementi non inviati
    • inizioCameriereInvio: intestazione della sezione contenente le righe degli elementi inviati da un cameriere diverso dal proprietario della comanda
    • fineCameriereInvio: piede della sezione contenente le righe degli elementi inviati da un cameriere diverso dal proprietario della comanda
    • inizioCentroCollegato: intestazione della sezione relativa alle righe dei centri collegati a quello corrente.
    • fineCentroCollegato: piede della sezione relativa alle righe dei centri collegati a quello corrente.
  • piede: contiene le righe di piede della comanda
  • piedeAsporto: le righe del piede di una comanda asporto. Se non è definito saranno utilizzate le impostazioni di piede.

La struttura del file xml si presenta nel seguente modo:

<doc>

Radice dell’intero file xml

<comandi>

Sezione configurazione dei comandi Esc/Pos

<comando nome=”nome” valore=”valore comando” />

Configurazione comando Esc pos

...

</comandi>

Fine sezione configurazione comandi Esc/Pos

<comanda>

Inizio documento comanda

<testata>...</testata>

Sezione testata della comanda

<testataAsporto>...</testataAsporto>

Sezione testata per la comanda asporto

<righeElementi>

Sezione righe elementi (contenitore)

<separatoreUscite>...</separatoreUscite>

Sezione separatore uscite in comanda

<separatoreUsciteNonInviate>...</separatoreUsciteNonInviate>

Sezione separatore uscite non inviate in comanda

<inizioCameriereInvio>...</inizioCameriereInvio>

Sezione di intestazione delle uscite del cameriere che invia la comanda (nel caso sia diverso dal cameriere proprietario della comanda)

<fineCameriereInvio>...</fineCameriereInvio>

Fine sezione intestazione cameriere invio comanda

<rigaElemento>...</rigaElemento>

Sezione elementi presenti in comanda

</righeElementi>

Fine sezione righe elementi (contenitore)

<piede>...</piede>

Sezione piede comanda

</comanda>

Fine documento comanda

</doc>

Fine documento xml

Le sezioni che contengono uno o più elementi xml di tipo <riga> sono quelle visualizzate in corsivo.

VARIABILI UTILIZZABILI NELLE SEZIONI TESTATA e PIEDE

“testata”, “testataAsporto” e “piede”

Variabile

Tipo

Descrizione

CentroProduzione

String

Centro produzione a cui è inviata la comanda

Cliente.OID

Int

ID del cliente

Cliente.Anagrafica.Cap

String

Cap del cliente

Cliente.Anagrafica.Cellulare

String

Cellulare cliente

Cliente.Anagrafica.Citta

String

Città del cliente

Cliente.Anagrafica.CodiceFiscale

String

Codice fiscale cliente

Cliente.Anagrafica.DataNascita

DateTime

Data di nascita del cliente

Cliente.Anagrafica.Email

String

Email cliente

Cliente.Anagrafica.Fax

String

Fax cliente

Cliente.Anagrafica.Indirizzo

String

Indirizzo del cliente

Cliente.Anagrafica.Nazione

String

Nazione cliente

Cliente.Anagrafica.Note

String

Nome del cliente

Cliente.Anagrafica.PartitaIva

String

Partita iva cliente

Cliente.Anagrafica.Provincia

String

Provincia cliente

Cliente.Anagrafica.RagioneSociale

String

Ragione sociale del cliente

Cliente.Anagrafica.Telefono

String

Telefono cliente

Cliente.Anagrafica.Telefono2

String

Telefono 2 cliente

DataConsegna

DateTime

Data consegna asporto

DataCorrente

String

Data + ora di invio comanda

DataCreazione

DateTime

Data di creazione della comanda

Intestazione1

String

Intestazione 1 asporto

Intestazione2

String

Intestazione 2 asporto

Intestazione3

String

Intestazione 3 asporto

Note

String

Note di comanda

NumeroCoperti

Int

Numero coperti correnti della comanda aperta

OID

Int

ID della comanda

Priorità

String

Priorità della comanda

Progressivo

Int

Progressivo di comanda

Stato

String

Stato della comanda

Tavolo.Numero

String

Nome del tavolo

Tavolo.Sala.Nome

String

Sala corrente

Tavolo.Cameriere.Anagrafica.RagioneSociale

String

Ragione sociale del cameriere proprietario della comanda

Tavolo.Cameriere.Login

String

TempoAttesaTraPortate

Int

Tempo di attesa tra le portate

TipoAsporto

String

Tipo asporto

TipoCentroProduzione

String

Tipo centro produzione a cui è inviata la comanda

Titolo

String

Titolo comanda automatico (es: CHIAMATA, RISTAMPA, ecc)

VARIABILI UTILIZZABILI NELLE SEZIONI DI DETTAGLIO

“separatoreUscite”, “separatoreUsciteNonInviate”, “inizioCameriereInvio”, “fineCameriereInvio” e “rigaElemento”

Variabile

Tipo

Descrizione

Coperto

String

Posto corrente

Descrizione

String

Descrizione dell’elemento corrente

DescrizioneAutomatica

String

Descrizione automatica dell’elemento (in base a opzione dentro in Opzioni installazione)

DescrizioneSecondaria

String

Descrizione secondaria dell’elemento corrente

CategoriaElementi

String

Categoria elementi dell’elemento corrente

CentroProduzione

String

Centro di produzione dell’elemento corrente

CameriereCorrente

String

Cameriere corrente della comanda

Cliente.Anagrafica.RagioneSociale

String

Ragione sociale del cliente della comanda

Commesso.Anagrafica.RagioneSociale

String

Ragione sociale del cameriere che invia la comanda

ElementoCompostoPadre

String

Nome elemento composto padre

IsVariante

Bool

Indica se l’elemento corrente è una variante

Master.OID

Int

ID della comanda

NomeElemento

String

Nome elemento venduto

Numero

String

Numero portata corrente

NumPezzi

Int

Numero pezzi totale dell’elemento corrente

PrezzoConVarianti

Decimal

Prezzo dell’elemento varianti incluse

PrezzoTotale

Decimal

Prezzo totale

quantitaProdotta

Int

Quantità

ESEMPI DETTAGLIATI

Esempio di definizione testata della comanda

<testata>

Inizio sezione testata comanda

<riga>

Inizio riga 1

<testo> </testo>

Stampo 9 spazi

<var>Titolo</var>

Stampo il valore del titolo

<testo> - Tavolo: </testo>

Stampo il testo “ – Tavolo: ”

<comando>grassettoOn</comando>

Abilito il testo in grassetto

<var>Tavolo.Numero</var>

Stampo il valore del numero del tavolo

<comando>grassettoOff</comando>

Disabilito il testo in grassetto

</riga>

Chiusura riga 1

<riga>

Inizio riga 2

<testo>Centro: </testo>

Stampo il testo “Centro: ”

<var>CentroProduzione</var>

Stampo il valore del centro di produzione

</riga>

Chiusura riga 2

<riga>

Inizio riga 3

<testo>Cameriere: </testo>

Stampo il testo “Cameriere: “

<var>Tavolo.Cameriere.Anagrafica.RagioneSociale</var>

Stampo il valore del cameriere

</riga>

Chiusura riga 3

<riga>

Inizio riga 4

<testo>ORA: </testo>

Stampo il testo “ORA: “

<var formato='HH:mm'>DataCorrente</var>

Stampo l’orario specificando il formato

</riga>

Chiusura riga 4

</ testata >

Chiusura della sezione

Output della testata

5 10 15 20 25 30 35

----+----+----+----+----+----+----+

CHIAMATA – Tavolo: 5

Riga 1

Centro: Cucina

Riga 2

Cameriere: Mario

Riga 3

ORA: 11:30

Riga 4

Esempio di definizione riga elemento

<rigaElemento>

Inizio sezione rigaElemento

<riga>

Inizio definizione di una riga della comanda

<comando>grassettoOn</comando>

Abilito il testo in grassetto

<var lunghezza = '3'>NumPezzi</var>

Stampo la quantità dell’elemento con lunghezza fissa = 3

<comando>grassettoOff</comando>

Disabilito il testo in grassetto

<testo> </testo>

Stampo uno spazio dopo la quantità

<comando>corsivoOn</comando>

Abilito il testo in corsivo

<var lunghezza="23">DescrizioneAutomatica</var>

Stampo la descrizione dell’elemento con lunghezza fissa = 23

<comando>corsivoOff</comando>

Disabilito il testo in corsivo

<testo> </testo>

Stampo uno spazio dopo la descrizione

</riga>

Chiusura della riga

</rigaElemento>

Chiusura della sezione

Esempio di output di una riga elementi

5 10 15 20 25 30 35

----+----+----+----+----+----+----+

3 Lasagne al forno

COMPOSIZIONE DEL LAYOUT DI TIPO CONTO

I layout di tipo conto hanno tutti la stessa struttura, l’unica differenza è il tag XML di definizione del tipo conto che assume come valore lo stesso tipo del conto: scontrino, proforma, preconto, fattura, ricevutahotel.

  • testata: contiene le righe di testata del conto.
  • intestazioneArticoli: contiene le righe stampate prima delle righe degli articoli
  • righeArticoli: è la sezione dettaglio che contiene a sua volta una o più righe di tipo rigaArticoli
    • rigaArticoli: contiene le righe di vendita di un articolo
  • piedeArticoli: contiene le righe stampate dopo le righe degli articoli
  • intestazioneScorporo: contiene le righe stampate prima delle righe di scorporo
  • rigaScorporo: contiene le righe di scorporo
  • piedeScorporo: contiene le righe stampate dopo le righe di scorporo
  • intestazioneArticoliIvaEsente: contiene le righe stampate prima delle righe degli articoli con iva esente
  • righeArticoliIvaEsente: è la sezione dettaglio che contiene a sua volta una o più righe di tipo rigaArticoli
  • piedeArticoliIvaEsente: contiene le righe stampate dopo le righe degli articoli con iva esente
  • intestazioneStorni: contiene le righe stampate prima delle righe di storno
  • rigaStorni: contiene le righe di storno
  • piedeStorni: contiene le righe stampate dopo le righe di storno
  • totali: contiene le righe dei totali
  • pagamenti: contiene le righe dei pagamenti
  • piede: contiene le righe del piede del conto

La struttura del file xml per il conto si presenta nel seguente modo:

<doc>

Radice dell’intero file xml

<comandi>

Sezione configurazione dei comandi Esc/Pos

<comando nome=”nome” valore=”valore comando” />

Configurazione comando Esc pos

...

</comandi>

Fine sezione configurazione comandi Esc/Pos

...

<scontrino>

Inizio documento conto (es: scontrino)

<testata>...</testata>

Sezione testata del conto

<righeArticoli>

Sezione righe articoli (contenitore)

<rigaArticoli>

Sezione contenitore riga articolo

<riga>...</riga>

Definizione riga articolo

</rigaArticoli>

</righeArticoli>

Fine sezione righe articoli (contenitore)

<totali>

Sezione totali conto

<riga>...</riga>

Definizione riga totale (una o più)

</totali>

Sezione totali conto

<pagamenti>

Sezione pagamenti conto

<riga>...</riga>

Definizione riga pagamento (una o più a seconda dei pagamenti)

</pagamenti>

Sezione pagamenti conto

<piede>

Sezione piede conto

<riga>...</riga>

Definizione riga piede (una o più)

</piede>

Sezione totali conto

</scontrino>

Fine documento conto

</doc>

Fine documento xml

È possibile trovare la lista delle variabili in fondo ai file xml forniti con l’installazione sotto forma di commento.

Nel layout testuale per il conto è presente anche il tag xml "intestazioneRaggruppamentoArticoli" per effettuare i raggruppamenti sugli articoli. Tale tag va inserito all'interno del tag RigheArticoli in questo modo:

<righeArticoli>

    <intestazioneRaggruppamentoArticoli campo="CategoriaArticolo.Nome">

        <riga><var>CategoriaArticolo.Nome</var></riga>

    </intestazioneRaggruppamentoArticoli>

    ...... 

 </righeArticoli>

 

L'attributo "campo" del tag articoli specifica il campo su cui raggruppare. All'interno è possibile poi specificare le righe da stampare nell'intestazione (nell'esempio la categoria stessa).

N.B. Specificando un raggruppamento, le righe del conto saranno ordinate per tale campo

Inoltre non è possibile specificare più gruppi o più colonne

COMPOSIZIONE DEL LAYOUT DI TIPO BUONO SCONTO E NOTA

I layout di tipo buono sconto e nota non sono suddivisi in sezioni, pertanto contengono tanti tag “riga” quante sono le righe che devono essere stampate.

È possibile trovare la lista delle variabili in fondo ai file xml forniti con l’installazione sotto forma di commento.