[ samilen @ 23.01.2007. 13:19 ] @
Kako se kači napravljen report u Java aplikaciju i da li je neophodno da se report svaki put kompajlira? Može li da se nađe negde kompletan tutorial o tome? Da li neko preporučuje neki drugi report engine? |
[ samilen @ 23.01.2007. 13:19 ] @
[ nemnesic @ 23.01.2007. 13:27 ] @
nisam siguran sta je iReport a i mrzi me sada da trazim, ali ja koristim
Crystal reports. Postoji i free Crystal Reports eclipse plugin. Pogledaj to, mnogo je jako... nn [ Branko_S @ 24.01.2007. 15:40 ] @
Ja sam se prošle godine nešto petljao sa tim, čim budem pronašao tutoriale poslaću ti na PM.
Potrebno ti je da u iReport-u (vizuelno) odradiš *.jrxml fajl pa da kasnije taj fajl koristiš iz coda. Evo pronašao sam deo koda koji će ti (nadam se) pomoći da to ukapiraš. import java.util.*; import java.sql.Connection; import net.sf.jasperreports.view.JasperViewer; import net.sf.jasperreports.engine.xml.JRXmlLoader; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.*; public class Report { public static void runReport(Integer p_ID) { Map model = new HashMap(); model.put("pID", p_ID); try{ JasperDesign jasperDesign = JRXmlLoader.load("Faktura.jrxml"); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); Connection jdbcConnection =Konekcija.getConnection(); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, model, jdbcConnection); //ili ako hoćeš možeš ga prikayati u pdf// JasperExportManager.exportReportToPdfFile(jasperPrint, "Faktura.pdf"); JasperViewer.viewReport(jasperPrint, false); }catch(Exception ex) { String connectMsg = "Could not create the report " + ex.getMessage() + " " + ex.getLocalizedMessage(); System.out.println(connectMsg); } } } Ja sam ovde otvarao report odredjene fakture (p_ID broj fakture koji se želi prikazati). [ samilen @ 24.01.2007. 23:35 ] @
Odlično, shvatio sam.
Međutim, izgleda da sam statički napravio query u reportu, a docs ne postoji. Nije mi jasno kako da dinamički prosledim parametar (kao ti p_ID) i da ga tako generiše? Meni radi sve radi ali statički. Evo pogledaj: Code: Select d.name,r.* from dobavljaci d,racun r where d.Sifpar=r.SifDob and sifpar='00043' Ako stavim npr. "...sifpar = $V{Sif_Par}" Onda query neće da radi, a i da proradi, kako da napunim varijablu iz Java koda? [ Branko_S @ 25.01.2007. 07:28 ] @
Umesto $V{Sif_Par} stavi $P{Sif_par}
Select d.name,r.* from dobavljaci d,racun r where d.Sifpar=r.SifDob and sifpar=$P{Sif_par}; Parametar prosledjuješ u metodi runReport(String ili kog je tipa tvoj pSif_Par) new Report().runReport("Sada pokupi vrednost parametra sa nekog textfield-a ili čega već ... ") I samo da napomenem da je bitno da u class-i Report napišeš isto ime parametra kao i u query-ju. Map model = new HashMap(); model.put("Sif_par", pSif_Par); [ samilen @ 30.01.2007. 00:56 ] @
Sredio sam to, međutim imam sada drugi problem.
Imam dve varijable $V{EXP_3} i $V{EXP_4} koje sumiraju kolone tabele koju prikazujem i tipa su java.lang.Double Hoću da napravim treću varijablu koja je rezultat oduzimanja $V{EXP_3} - $V{EXP_4} To neće jer radi non stop cast. Probao sam svašta i neće. Da li je moguće da je toliko glup? Imam neku verziju 0.5.3 sad ću da skinem najnoviju 1.3.0 i da probam u njoj, ali mi je i dalje nejasno zašto ovo ne radi. Još jedno pitanje: Kako da pokupim promenljive iz reporta u kod? [ Branko_S @ 06.02.2007. 15:12 ] @
Ja imam 1.2.7 i u ovoj verziji to nije mogiće. Ja bih to rešio jednim view-om u bazi sa novom kolonom koja ti računa razliku te dve kolone a u reportu prikaži sumu te kolone i dobićeš to što želiš.
Ovo drugo pitanje baš i ne kapiram. Pojasni malo više šta zapravo želiš? Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|