Report Openoffice

Questo modulo permette di creare facilmente complessi report utilizzando OpenOffice.org.

Con questo modulo è possibile:

  • evitare l'uso di sezioni e di tabelle multiple nidificate
  • usare textbox mobili
  • usare header e footer di OOo
  • ripetere colonne
  • modificare il template del report direttamente dal suo percorso, senza il bisogno di reimportarlo attraverso base_report_designer
  • generare spreadsheet ODS
  • usare un buon insieme delle direttive genshi (if / choose / when / otherwise / with)
  • usare espressioni xpath per fare i filtri

Si trova a questo indirizzo ed è possibile scaricarlo con

bzr branch lp:~simone-orsi/report-openoffice/release-1.1

Troverete anche un modulo chiamato openoffice_report_samples contenente esempi su come creare report adatti.

report_openoffice ha bisogno che i seguenti pacchetti siano installati nel sistema:

  • relatorio
  • openoffice-python
  • openoffice.org

Si possono installare tramite easy_install:

easy_install relatorio
easy_install openoffice-python

PS: Dopo aver installato i 2 moduli, è necessario andare in:

Amministrazione -> Oggetti a basso livello -> Azioni -> Report XML 

Selezionare il report desiderato e cambiare il “Tipo” da:

pdf => OpenOffice-pdf output 

Realizzare un Packing List (DDT) con valore complessivo della merce

Nel caso di esportazione di materiale per conto lavorazione, a volte è necessario redigere un packing list (bolla o DDT) che riporti il valore di ogni voce ed il valore totale della merce. Mentre è semplice aggiungere ad ogni voce il costo unitario ed il costo complessivo, risulta più complesso affidare a python il compito di effettuare il calcolo del costo complessivo dell'intera merce, sommando quindi il valore di ogni singola voce. Si potrebbe pensare alla definizione di una variabile, a cui poi si deve sommare il valore di ogni singola voce, cosicché al termine della lista di voci sia possibile riportare il valore di tale variabile, tuttavia questa soluzione non risulta apparentemente implementabile, mentre risolve brillantemente il problema la funzione di python reduce(lambda) che consente di eseguire una funzione (ovvero una serie di operazioni) su una lista di oggetti.

#da o.move_lines posso ottenere, per ogni record, 
#il prezzo unitario: product_id.product_tmpl_id.standard_price
#la quantità: product_qty
#ed il valore complessivo
reduce(lambda x, obj: x+(obj.product_id.product_tmpl_id.standard_price * obj.product_qty), o.move_lines , 0 )
#che può essere opportunamente formattato, in base alla localizzazione, attraverso la funzione formatLang
#formatLang(reduce(lambda x, obj: x+(obj.product_id.product_tmpl_id.standard_price * obj.product_qty), o.move_lines , 0 ))

E' disponibile nella sezione Download -> Report un report di esempio per il packing list in cui è presente la funzione di calcolo del valore totale della merce.

tag_report_relatorio_openoffice_contatore_variabile_somma

moduli/report_openoffice.txt · Ultima modifica: 2011/06/28 16:51 (modifica esterna)
Torna su
GNU Free Documentation License 1.3
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0