#OpenERP, personalizzazione dei report

OpenERP utilizza i report per generare i documenti da stampare: ad esempio gli ordini di vendita, le fatture e le note di credito sono dei report che quindi possono essere personalizzati.
Esistono molte possibilità per modificare il layout attraverso i moduli aggiuntivi di OpenERP (ad es. WebKit), però il metodo più efficace è senza dubbio l’installazione del plugin di OpenOffice.
Sia ben chiaro che questo metodo non è certo il più semplice in quanto, per personalizzare il contenuto del report aggiungendo nuovi campi, è necessario conoscere come è strutturato OpenERP, nonchè avere delle basi di programmazione in Python (il linguaggio con cui è stato sviluppato OpenERP).

Installazione del plugin
Innanzi tutto è necessario installare il modulo aggiuntivo di OpenERP “base_report_designer”; durante la fase di installazione del plugin, sarà richiesto di effettuare il download di un modulo aggiuntivo per OpenOffice (compatibile anche con LibreOffice). Nel caso in cui abbiate difficoltà a scaricare il plugin dalla vostra installazione di OpenERP, potete scaricarlo da qui.
Aprite quindi OpenOffice, scegliete “Gestione Estensioni”, aggiungete il file zip scaricato e riavviate il programma. A questo punto apparirà il nuovo menu “OpenERP Report Designer” che contiene le voci di menu per gestire la comunicazione con il gestionale.

Collegamento con il server
Innanzi tutto è necessario collegarsi con il server. Dal menu “OpenERP Report Designer” scegliete la voce “Server Parameters”. Inserite l’indirizzo IP del server, mentre la porta e il metodo di collegamento nella maggior parte dei casi non andranno modificati.
Alla schermata successiva, scegliete il database (l’azienda) e inserite i dati di autenticazione.

Modifica dei report e caricamento sul server
Il metodo più semplice per iniziare a lavorare con i report, è partire da un documento già pronto e modificarlo.
La vode di menu “Modify Existing Record” permette di collegarsi al server e scaricare un report già pronto per poi modificarlo. Potete scegliere quale report modificare (ad esempio Invoice – Invoices With Layout per modificare la fattura)
L’operazione inversa, cioè caricare sul server il report modificato, avviene attraverso la voce di menu “Send to the server”: nella finestra di conferma, è possibile scegliere di aggiungere al modulo le impostazioni di intestazione e piè di pagina di default che si impostano attraverso l’interfaccia di default di OpenERP in “Amministrazione”->”Aziende”->”Aziende”.

Come funziona il plugin
Dal punto di vista tecnico viene fatta una doppia/tripla conversione: OpenERP comprende un linguaggio per il report chiamto “rml” che assomiglia ad una sorta di XML. I modelli di report realizzati con questo linguaggio vengono memorizzati all’interno del database dell’azienda.
Quindi, quando si deve editare un modello di report, il plugin esegue una conversione da rml a sxw (il formato di OpenOffice) e viceversa quando si salva un modello; quando, ad esempio, si richiede la stampa di un report, avviene una conversione da rml a pdf.

Qualche dritta sulla personalizzazione dei template
Evitare di usare tabelle all’interno di tabelle: la conversione rml/pdf non riesce a fare il parsing corretto dei bordi e spesso ci si trova con linee “a caso” nel mezzo del report.
Per aggiungere un campo, è necessario conosce il nome della variabile: per risalire con facilità al nome della variabile si può fare riferimento alla guida contestuale dell’interfaccia web. Ad esempio, se vogliamo indicare in una fattura il valore della variabile contente la data di scadenza, andremo in “Contabilità”->”Fatture Clienti”->”Altre Informazioni” e posizioneremo il puntatore del mouse sul punto di domanda (?) a fianco di “Data Scadenza”. Apparirà una finestra contenete sia la descrizione dell’elemento, sia il nome del campo da includere nel report (in questo caso date_due).