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