Gestione fatture con Invoicex

Invoicex è un programma multipiattaforma grazie al fatto che è realizzato in Java quindi si puo’ installare per Win, Linux e Mac.

Invoicex è rilasciato con licenza GPL 2 dalla società TNX la quale, in collaborazione con Bios Informatica, ha realizzato ClientManager un software, non libero, per la gestione di interventi tecnici che si puo’ integrare con Invoicex.

Invoicex, tra l’altro, usa MySQL come database, infatti all’avvio dell’installazione, vi viene chiesto se volete usare il suo database interno o dargli un database remoto (che puo’ risiedere sul vostro pc), se non esiste il database verrà creato con una 50 di tabelle, io ho usato MySQL avviandolo da Xampp e ho lasciato creare il database.

Finita la fase di creazione del database vi vengono chiesti i dati dell’azienda: ragione sociale, partita iva, codice fiscale e recapito. I dati vengono salvati nella tabella dati_azienda del database.

Vi viene chiesto tra l’altro se volete che questi dati siano trasmessi a TNX per uso statistico, potete dire di no ovviamente.

Finito il tutto potete, tramite una interfaccia semplice e pulita (solo un menu e una barra orizzontale), gestire preventivi/ordini, ddt, fatture, clienti/fornitori e loro situazione, articoli, fatture acquisto.

La versione attuale del programma (1.7.7 del 28/01/2009) ha poi 5 plugin che, se abiltati sono gratuiti per 30 giorni, dopo di che devono essere acquistati, i plugin in questione sono:

  • Backup/Restore su server remoto TNX
  • Integrazione con Client Manager
  • Aggiornamento automatico del programma
  • Gestione ritenuta d’acconto
  • Ricerca globale

I report di preventivi/ordini, ddt, fatture, clienti/fornitori vengono di solito stampati/salvati in PDF, in particolare ho notato che quanto si stampano i preventivi/ordini viene usato JasperViewer mentre quando si stampa l’elenco degli articoli questo puo’ esser salvato in PDF, HTML e Excel.

JasperViewer viene usato anche quando si genera il report su Ordini/Bolle/Fatture dal menu Statistiche.

E’ possibile infine chiedere assistenza, a pagamento, annuale o per ticket.

Cliccando sul menu Aiuto -> Informazioni si scopre che il programma si basa sulle seguenti librerie:

Buona fatturazione !

Netbeans, IReports e Xmlbeans

Ciao a tutti, in questo periodo mi sono avvicinato al mondo dei reports con JasperReports. Come realizzare un report tramite JasperReports ?

In pratica quando realizzate un report dovete definire un template che per JasperReports è un file xml in cui schema si trova a questo link: http://jasperreports.sourceforge.net/xsd/jasperreport.xsd

Il template è comunemente detto file jrxml che deve essere compilato in formato jasper. La realizzazione del template è aiutata da un plugin per Netbeans che permette di fare un drag and drop degli elementi anche se alla fine andrete di sicuro a modificare il file template a mano

Fatto sta che nel file potete mettere direttamente delle query che restituiscono tabelle con i rispettivi nomi di colonne a cui associare delle variabili che potete usare per creare le intestazioni per le tabelle o grafici che andrete ad inserire nel vostro template.

Le query possono anche essere esterne e questo ritengo sia un bene ma la particolarità è che una volta fissato un template e compilato nel formato jasper sarà quello una volta per sempre. Supponendo che si vuole creare un report per ogni tabella di un database si pensa subito al fatto che il numero delle colonne puo’ variare.

Percio’ stavo pensando perchè non prendere lo schema e generare il jar con Xmlbeans per poter creare il template al volo in java?

Nel fare cio’ ho avuto un intoppo, l’elemento Text è definito come complexType nel seguente modo:

<element name=”text”>
<complexType mixed=”true”>
</complexType>
</element>

Cioè in pratica è vuoto e l’unico metodo che mi rimane per riempirli è usare l’istruzione set su un XmlObject o l’XmlCursor che prevede un XmlObject da inserire.

Nella realizzazione di un template jrxml questo campo viene riempito con valori CDATA. Ho notato che esistono dei metodi nella classe XmlOptions che servono per inserire CDATA e li ho provati ad usare ma senza successo, magari ho sbagliato qualcosa.

Ci riproverò.

Nota:

http://markmail.org/message/ykiztut4p2tcalfh#query:node.setKey+page:1+mid:dhr2i74v7rkjf4ti+state:results