Report PDF
Report PDF
Con gli strumenti di personalizzazione, e possibile modificare report PDF esistenti (ad esempio fatture, preventivi, ecc.) o crearne di nuovi.
Layout predefinito
Il layout predefinito dei report viene gestito al di fuori degli strumenti di personalizzazione. Andare su Impostazioni, poi nella sezione Aziende della pagina principale, fare clic su Configura layout documento. Le impostazioni del layout sono specifiche per azienda ma si applicano a tutti i report.
Utilizzare le seguenti impostazioni:
- Layout: sono disponibili sette layout: Light, Boxed, Bold, Striped, Bubble, Wave e Folder.
- Sfondo: sono disponibili i seguenti sfondi:
- Vuoto: non viene visualizzato nulla.
- Logo demo: viene visualizzato un logo demo nello sfondo.
- Personalizzato: caricamento di un'immagine di sfondo personalizzata.
- Testo: sono disponibili otto font: Lato, Roboto, Open Sans, Montserrat, Oswald, Raleway, Tajawal (che supporta gli script arabo e latino) e Fira Mono.
- Logo aziendale: fare clic sul pulsante Modifica per caricare o cambiare il logo. Questo aggiunge il logo al record dell'azienda nel modello Azienda, accessibile andando su Impostazioni e poi facendo clic su Aggiorna informazioni nella sezione Aziende.
- Colori: modificare i colori primari e secondari utilizzati per strutturare i report. I colori predefiniti vengono generati automaticamente in base ai colori del logo.
- Indirizzo: il nome e l'indirizzo dell'azienda vengono visualizzati nell'intestazione dei report esterni. E possibile aggiungere piu righe di testo.
- Slogan: viene visualizzato nell'intestazione dei report esterni che utilizzano i layout Light, Striped, Bubble, Wave e Folder, e nel pie di pagina dei report esterni che utilizzano i layout Boxed e Bold. E possibile aggiungere piu righe di testo.
- Pie di pagina: questo testo viene utilizzato nel pie di pagina dei report esterni. E possibile aggiungere piu righe di testo. E anche possibile modificare il pie di pagina utilizzando l'editor di report.
- Formato carta: definisce la dimensione predefinita della carta dei report. E possibile selezionare A4 (21 cm x 29,7 cm) e US Letter (21,59 cm x 27,54 cm). Questo puo anche essere definito per singoli report nel campo Formato carta nelle opzioni.
::callout
icon: i-lucide-info
Altri formati carta possono essere disponibili a seconda delle app o dei moduli installati, ad esempio fogli etichetta per l'app Magazzino o badge per eventi per l'app Eventi. ::
Creazione di nuovi report PDF
Per creare un nuovo report per un modello (ad esempio ordini di vendita), accedere al modello, fare clic sul pulsante Attiva/Disattiva strumenti di personalizzazione, poi fare clic su Report. Fare clic su Nuovo e, nella finestra pop-up che si apre, selezionare il tipo di report. Questo viene utilizzato esclusivamente per determinare cosa viene visualizzato nell'intestazione e nel pie di pagina:
Intestazione e pie di pagina
- Esterno:
- L'intestazione visualizza il logo dell'azienda, il nome e l'indirizzo. Per i report che utilizzano i layout Light, Striped, Bubble, Wave e Folder, lo slogan appare anche nell'intestazione.
- Il pie di pagina visualizza i valori impostati nel campo Pie di pagina e il numero di pagina. Per i report che utilizzano i layout Boxed e Bold, lo slogan appare anche nel pie di pagina.
- Interno: l'intestazione visualizza la data e l'ora correnti dell'utente, il nome e l'indirizzo dell'azienda e il numero di pagina. Non c'e pie di pagina.
- Vuoto: non c'e ne intestazione ne pie di pagina. Fare clic nell'angolo in alto a sinistra della pagina per modificare il report.
Una volta creato il report, e possibile iniziare a modificarlo.
Modifica dei report PDF
Per accedere ai report disponibili per un modello, accedere al modello, fare clic sul pulsante Attiva/Disattiva strumenti di personalizzazione, poi fare clic su Report. Selezionare un report esistente per aprirlo.
In alternativa, e possibile aprire gli strumenti di personalizzazione, fare clic su Report e cercare un report o un modello specifico.
Opzioni
Una volta selezionato o creato un report, e possibile utilizzare le opzioni nella parte sinistra dello schermo per:
- Modificare il Nome del report: il nuovo nome viene applicato ovunque (negli strumenti di personalizzazione, nel menu Stampa sotto l'icona dell'ingranaggio nella vista modulo e nel nome del file PDF).
- Modificare il Formato carta: se non viene selezionato alcun valore, viene utilizzato il formato definito nel layout predefinito.
- Mostra nel menu stampa: per aggiungere il report al menu Stampa nella vista modulo.
- Ricarica da allegato: per salvare il report come allegato nel record la prima volta che viene generato e ricaricare la versione originale del report ogni volta successiva. Questo e legalmente richiesto per le fatture e viene utilizzato principalmente in questo caso.
- Limita visibilita a gruppi: per limitare la disponibilita del report PDF a gruppi utente specifici.
- Modifica sorgenti: per modificare il report direttamente nel file XML.
- Reimposta report: per annullare tutte le modifiche apportate al report e reimpostarlo alla versione standard.
- Anteprima di stampa: per generare e scaricare un'anteprima del report.
Editor di report
L'editor di report consente di modificare il contenuto e la formattazione del report.
- E possibile Annullare o Ripetere le modifiche utilizzando i pulsanti correlati o le scorciatoie
CTRL+ZeCTRL+Y. - Le modifiche vengono salvate automaticamente quando si esce dal report o manualmente utilizzando il pulsante Salva.
- E possibile reimpostare il report alla versione standard facendo clic sul pulsante Reimposta report nella parte sinistra dello schermo. ::
Blocchi condizionali
I rettangoli tratteggiati rappresentano blocchi condizionali (istruzioni if/else). Questi vengono utilizzati per mostrare/nascondere il contenuto in base a condizioni specifiche. Fare clic sul blocco per visualizzare le condizioni.Selezionare un valore per visualizzare in anteprima il risultato corrispondente e modificarlo se necessario.Altro contenuto
Ci sono due tipi di contenuto testuale nei report:- Testo statico, cioe il testo che non e evidenziato in blu, che puo essere modificato direttamente nell'editor.
- Testo dinamico, cioe il testo evidenziato in blu, che viene sostituito dai valori dei campi quando il report viene generato, ad esempio il numero dell'ordine di vendita o la data del preventivo.
/ per aprire il menu dei comandi, poi digitare il nome del comando o selezionarlo dall'elenco.Per aggiungere testo statico al report, digitare il testo dove desiderato.Per modifiche piu avanzate, e possibile modificare il report direttamente nell'XML.Aggiungere un campo
Per aggiungere un campo, digitare/ e selezionare il comando Campo. Nell'elenco che si apre, selezionare o cercare il campo; fare clic sulla freccia destra accanto al nome del campo per accedere all'elenco dei campi correlati se necessario. Poi specificare il valore predefinito che verra mostrato se il campo non e compilato nel record e premere Invio.Aggiungere o modificare una tabella
Ci sono due tipi di tabelle nei report:- Tabelle statiche, utilizzate per visualizzare testo statico o campi. Per questo tipo di tabella, si definisce il numero di colonne e righe quando si aggiunge la tabella.
- Tabelle dinamiche, utilizzate per visualizzare dati da campi relazionali. Per questo tipo di tabella, si definisce solo il numero di colonne quando si aggiunge la tabella. Il numero di righe nel report generato sara determinato dal numero di record nel modello correlato collegati al modello corrente.
Aggiungere o modificare una tabella statica
Per aggiungere una tabella statica, digitare/ e selezionare il comando Tabella. Determinare il numero di colonne e righe per la tabella. Una volta aggiunta la tabella, e possibile iniziare a modificarla.E possibile inserire, spostare ed eliminare colonne e righe utilizzando gli strumenti tabella. Posizionare il cursore sopra la colonna o a sinistra della riga, poi fare clic sul rettangolo viola e selezionare un'opzione.Per ridimensionare una colonna, trascinare il bordo della colonna nella posizione desiderata; reimpostare tutte le colonne alla dimensione standard selezionando Reimposta dimensione dagli strumenti tabella.Aggiungere il campo desiderato in una cella o aggiungere testo statico digitando./ e selezionando il comando appropriato: 2 colonne, 3 colonne o 4 colonne.Aggiungere o modificare una tabella dinamica
- Solo le relazioni di tipo
one2manyomany2manypossono essere visualizzate come tabelle dinamiche. - Una tabella dinamica esistente in un report standard ha una struttura piu complessa rispetto a una tabella dinamica aggiunta manualmente. Per tali tabelle, e possibile inserire o eliminare colonne; non e possibile spostare colonne o inserire, spostare o eliminare righe. ::
/ e selezionare il comando Tabella dinamica. Nell'elenco che si apre, selezionare o cercare la relazione su cui sara basata la tabella e premere Invio. Una volta aggiunta la tabella, e possibile iniziare a modificarla.E possibile inserire, spostare ed eliminare colonne utilizzando gli strumenti tabella, come per una tabella statica. E anche possibile inserire righe statiche che appariranno sopra o sotto le righe generate.Per aggiungere un campo a una cella, eliminare eventuale testo segnaposto e poi aggiungere il campo desiderato. La finestra di dialogo che si apre mostra l'oggetto sorgente del campo (ad esempio il modello Righe ordine) e l'elenco dei campi disponibili.Sostituire l'etichetta Nome colonna con l'etichetta desiderata.Formattazione
Per formattare il testo nel report, selezionarlo, poi formattarlo utilizzando le opzioni nell'editor di testo.
Modifica dell'XML del report
Per modificare l'XML del report, fare clic su Modifica sorgenti nel pannello sinistro.
Esempi
Modificare il widget di un campo
Per cambiare il modo in cui i dati vengono presentati nel report, e possibile modificare manualmente il widget predefinito di un campo. Nell'esempio seguente, la data dell'ordine mostra la data e l'ora per impostazione predefinita, mentre il prezzo unitario ha una precisione predefinita di due cifre decimali.
<div class="oe_structure">
<span t-field="doc.date_order"/>
<span t-field="doc.price_unit"/>
</div>
Utilizzando t-options, in questo caso l'opzione widget, questi campi possono essere modificati per mostrare solo la data e una precisione di quattro cifre decimali, rispettivamente:
<div class="oe_structure">
<span t-field="doc.date_order" t-options="{'widget': 'date'}"/>
<span t-field="doc.price_unit" t-options="{'widget': 'float', 'precision': 4}"/>
</div>
Blocchi condizionali
Se si desidera mostrare/nascondere il contenuto in base a condizioni specifiche, e possibile aggiungere manualmente istruzioni di controllo if/else nell'XML del report.
Ad esempio, se si desidera nascondere una tabella dati personalizzata se non ci sono tag, e possibile utilizzare l'attributo t-if per definire la condizione, che viene poi valutata come True o False. La tabella non verra visualizzata se non ci sono tag nel preventivo.
<!-- elemento radice della tabella -->
<table class="table" t-if="len(doc.tag_ids) > 0">
<!-- thead = intestazione tabella, la riga con i titoli delle colonne -->
<thead>
<!-- elemento riga tabella -->
<tr>
<!-- elemento intestazione tabella -->
<th>ID</th>
<th>Nome</th>
</tr>
</thead>
<!-- corpo tabella, il contenuto principale -->
<tbody>
<!-- creiamo una riga per ogni sotto-record con t-foreach -->
<tr t-foreach="doc.tag_ids" t-as="tag">
<!-- per ogni riga, mostriamo il nome e il prezzo come celle della tabella -->
<td t-out="tag.id"/>
<td t-out="tag.name"/>
</tr>
</tbody>
</table>
Se si desidera visualizzare un altro blocco nel caso in cui l'istruzione t-if venga valutata come False, e possibile specificarlo utilizzando l'istruzione t-else. Il blocco t-else deve seguire direttamente il blocco t-if nella struttura del documento. Non e necessario specificare alcuna condizione nell'attributo t-else. Ad esempio, mostriamo un messaggio che spiega che non ci sono tag nel preventivo:
<!-- elemento radice della tabella -->
<table class="table" t-if="len(doc.tag_ids) > 0">
<thead>
<tr>
<th>ID</th>
<th>Nome</th>
</tr>
</thead>
<tbody>
<tr t-foreach="doc.tag_ids" t-as="tag">
<td t-out="tag.id"/>
<td t-out="tag.name"/>
</tr>
</tbody>
</table>
<div class="text-muted" t-else="">Nessun tag presente su questo documento.</div>
Se si desiderano piu opzioni, e possibile anche utilizzare direttive t-elif per aggiungere condizioni intermedie. Ad esempio, ecco come il titolo dei report degli ordini di vendita cambia in base alla condizione del documento sottostante.
<h2 class="mt-4">
<span t-if="env.context.get('proforma', False) or is_pro_forma">Fattura Pro-Forma # </span>
<span t-elif="doc.state in ['draft','sent']">Preventivo # </span>
<span t-else="">Ordine # </span>
<span t-field="doc.name">SO0000</span>
</h2>
Il titolo Fattura Pro-Forma viene utilizzato in base ad alcune condizioni contestuali. Se queste condizioni non sono soddisfatte e lo stato del documento e draft o sent, viene utilizzato Preventivo. Se nessuna di queste condizioni e soddisfatta, il titolo del report e Ordine.
Immagini
Lavorare con le immagini in un report puo essere impegnativo, poiche il controllo preciso delle dimensioni e del comportamento delle immagini non e sempre ovvio. E possibile inserire campi immagine utilizzando l'editor di report (tramite il comando Campo), ma inserirli in XML utilizzando la direttiva t-field e gli attributi t-options fornisce un migliore controllo sul dimensionamento e posizionamento.
Ad esempio, il codice seguente mostra il campo image_128 del prodotto della riga come un'immagine larga 64px (con un'altezza automatica basata sulle proporzioni dell'immagine).
<span t-field="line.product_id.image_128" t-options-widget="image" t-options-width="64px"/>
Le seguenti opzioni sono disponibili per i widget immagine:
width: larghezza dell'immagine, solitamente in pixel o unita di lunghezza CSS (ad esempiorem) (lasciare vuoto per larghezza automatica).height: altezza dell'immagine, solitamente in pixel o unita di lunghezza CSS (ad esempiorem) (lasciare vuoto per altezza automatica).class: classi CSS applicate al tagimg; sono disponibili le classi Bootstrap.alt: testo alternativo dell'immagine.style: attributo di stile; consente di sovrascrivere gli stili piu liberamente rispetto alle classi Bootstrap.
Questi attributi devono contenere stringhe, cioe testo racchiuso tra virgolette all'interno di virgolette, ad esempio t-options-width="'64px'" (oppure, in alternativa, un'espressione Python valida).
img. Impostare invece la direttiva t-field su un nodo span (per contenuto inline) o div (per contenuto a blocchi).Ad esempio, aggiungiamo una colonna con l'immagine del prodotto nella tabella del preventivo:
<table class="table table-sm o_main_table table-borderless mt-4">
<thead style="display: table-row-group">
<tr>
<th>Immagine</th>
<th name="th_description" class="text-start">Descrizione</th>
<th>Categoria prodotto</th>
<th name="th_quantity" class="text-end">Quantita</th>
<th name="th_priceunit" class="text-end">Prezzo unitario</th>
[...]
<t t-foreach="lines_to_report" t-as="line">
<t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal"/>
<tr t-att-class="...">
<t t-if="not line.display_type">
<td>
<span t-field="line.product_template_id.image_128"
t-options-widget="'image'"
t-options-width="'64px'"
t-options-class="'rounded-3 shadow img-thumbnail'"
/>
</td>
<td name="td_name"><span t-field="line.name">Bacon Burger</span></td>
<td t-out="line.product_id.categ_id.display_name"/>
L'attributo t-options-width limita la larghezza dell'immagine a 64 pixel, e le classi Bootstrap utilizzate in t-options-class creano un bordo tipo miniatura con angoli arrotondati e un'ombra.