DATA.XML struktura i varijable koje možemo da koristimo kod štampe u ODT formatu¶
1. XML struktura¶
Na lokaciji C:\ se pravi fajl DATA.XML koji se poslije poziva radi štampe.
Struktura XML-a je ovakva:
<invoice>
<dbr>13123</dbr>
<ddat>01.01.09</ddat>
....
<item>
<rbr>1</rbr>
<pbr></pbr>
<id>4AX001</id>
<naz>Aksiomski nastavak koljena ...</naz>
...
</item>
... itd....
<text>
<row>dodatni tekst na kraju fakture red 1</row>
</text>
<text>
<row>dodatni tekst na kraju fakture red 2</row>
</text>
.... itd....
<invoice>
Dodatni tekst sam morao odvojiti u subnodove stoga što imamo više linija. Trenutno postoji problem sa generisanjem nove linije u template-u.
2. Dostupne varijable¶
2.1 Totali na dokumentu¶
| Varijabla | opis | napomene |
| invoice.u_bpdv | ukupno bez pdv-a | - |
| invoice.u_pop | ukupno popust | - |
| invoice.u_poptp | ukupno popust na teret prodavca | - |
| invoice.u_bpdvpop | ukupno bez pdv-a - popust | - |
| invoice.u_pdv | ukupno pdv | - |
| invoice.u_kol | ukupno kolicina na dokumentu | - |
| invoice.u_total | ukupna vrijednost sa pdv-om | - |
| invoice.u_zaokr | zaokruženje radi razlike u cijeni | - |
| invoice.u_tottp | ukupno - popust na teret prodavca (invoice.u_total - invoice.u_poptp) | - |
2.2 Podaci dokumenta¶
| Varijabla | opis | napomene |
| invoice.dbr | broj dokumenta | - |
| invoice.ddat | datum dokumenta | - |
| invoice.ddval | datum valute dokumenta | - |
| invoice.ddisp | datum isporuke dokumenta | - |
| invoice.dvr | vrijeme kada je dokument napravljen | - |
| invoice.dmj | mjesto fakturisanja | - |
| invoice.ddok | naziv dokumenta | - |
| invoice.dslovo | ispis totala slovima | - |
| invoice.dotpr | broj otpremnice | - |
| invoice.dnar | broj narudžbenice | - |
| invoice.ddin | valuta dokumenta | - |
| invoice.ddest | destinacija dokumenta | - |
| invoice.dtdok | tip dokumenta | - |
| invoice.drj | radna jedinica | - |
| invoice.didpm | id prodajnog mjesta | - |
| invoice.dsign | linija za potpis | - |
| invoice.dveza | vezni dokumenti tekućeg dokumenta | koristi se kod unosa fakture da se navedu vezni dokuemnti, recimo RNAL |
| invoice.fisc | broj fiskalnog računa | ako postoji veza bit će ispisan broj fiskalnog računa, ako ne onda 0 |
2.3 Podaci zaglavlja¶
| Varijabla | opis | napomene |
| invoice.fnaz | naziv firme | - |
| invoice.fadr | adresa firme | - |
| invoice.fid | id broj | - |
| invoice.ftel | telefon | - |
| invoice.feml | email - web podaci | - |
| invoice.fbnk | banke | - |
| invoice.fdt1 | dodatni tekst zaglavlja 1 | - |
| invoice.fdt2 | dodatni tekst zaglavlja 2 | - |
| invoice.fdt3 | dodatni tekst zaglavlja 3 | - |
2.4 Podaci kupca¶
| Varijabla | opis | napomene |
| invoice.knaz | naziv kupca | - |
| invoice.kadr | adresa | - |
| invoice.kid | id broj | - |
| invoice.ktel | telefon | - |
| invoice.kfax | fax | - |
| invoice.kptt | ptt | - |
| invoice.kmj | mjesto | - |
| invoice.kpbr | poreski broj | ovo je onaj sa 5 brojeva |
2.5 Tekst na kraju fakture¶
| Varijabla | opis | napomene |
| invoice.text.row | red dodatnog teksta | pristupa se putem skripte na fakturi, pošto ima više subnod-ova sa varijablom row (*) |
2.6 Stavke fakture¶
| Varijabla | opis | napomene |
| invoice.item.rbr | redni broj stavke | pristupa se putem skripte na fakturi (**) |
| invoice.item.pbr | podbroj rednog broja | - |
| invoice.item.id | id artikla | - |
| invoice.item.naz | naziv artikla | - |
| invoice.item.jmj | jedinica mjere | - |
| invoice.item.kol | količina | - |
| invoice.item.cpdv | cjena sa pdv-om | - |
| invoice.item.cbpdv | cjena bez pdv-a | - |
| invoice.item.c2pdv | cjena sa pdv-om (+ popust) | - |
| invoice.item.c2bpdv | cjena bez pdv-a (+ popust) | - |
| invoice.item.pop | popust | - |
| invoice.item.ppdv | procenat pdv-a | - |
| invoice.item.vpdv | iznos pdv-a | - |
| invoice.item.ukbpdv | ukupno stavka - bez pdv-a | - |
| invoice.item.ukpdv | ukupno stavka sa pdv-om | - |
| invoice.item.uk2bpdv | ukupno stavka - bez pdv-a sa popustom | - |
| invoice.item.uk2pdv | ukupno stavka sa pdv-om sa popustom | - |
| invoice.item.ptp | procenat popusta na teret prodavca | - |
| invoice.item.vtp | vrijednost popusta na teret prodavca | - |
| invoice.item.c1 | dodatno polje c1 za prikaz | - |
| invoice.item.c2 | dodatno polje c2 za prikaz | - |
| invoice.item.c3 | dodatno polje c3 za prikaz | - |
| invoice.item.opis | dodatno polje opis za prikaz | - |
3. Skripte koje se koriste za template¶
Da bi browsali u tabeli stavke iz invoice.item na tabeli u template-u treba da insertujemo skriptu koja će imati sljedeći sadržaj
- script type = JOOScript
- txt =
@table:table-row [#list invoice.item as it] @/table:table-row [/#list]
zatim u tabeli stavljamo ${it.id} recimo itd...
Da bi browsali sadržaj dodatnog teksta invoice.text.row, u template stavljamo još jednu skriptu
- script type = JOOScript
- txt =
@text:p [#list invoice.text as txt] @/text:p [/#list]
ovim ćemo dobiti sve linije dodatnog teksta na kraju fakture
Da bi browsali po sekcijama dokumenta treba da dodamo ovakvu skriptu
@text:section [#list invoice.item as it] @/text:section [/#list]
tada ćemo dobiti sve linije po sekcijama
4. Kako se poziva i koristi opcija štampe u ODT formatu ?¶
Prije svega, potrebno je instalirati OpenOffice v3 ili veći, te raspakovati bring.out java komponente u direktorij c:\bout\
4.1. Ručno pozivanje opcije¶
na lokaciji c:\ imamo:
- template fajl fakture templ.odt
- data.xml, fajl sa podacima fakture
pozivamo na sljedeći način
c:\> java -jar c:\bout\java\jodrep.jar templ.odt data.xml out_file.odt
u fajlu out_file.odt ćemo dobiti izlaznu generisanu fakturu