[ 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?
[ 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š?