[ Olinad1989 @ 29.03.2012. 17:01 ] @
Koristim sledece jar fajlove:

jasperreports-4.0.2.jar
commons-digester-1.7.jar
commons-collections-3.2jar (commons-collections.jar)
commons-logging-1.0.4.jar
commons-beanutils.jar

Code:
JasperReport jasperReport = JasperCompileManager.compileReport("izvestaj.jrxml");
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection conn = DriverManager.getConnection("jdbc:odbc:Baza");
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null, conn);
            JasperViewer.viewReport(jasperPrint);
            //JasperExportManager.exportReportToPdfFile(jasperPrint, "exportovano.pdf"); 


Izbacuje normalno izvestaj, ali kada pozovem eksportovanje izvestaja u PDF, izbaci sledecu gresku na toj liniji koda.

Code:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException
    at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:117)


Da li bi neko mogao da pomogne?

[Ovu poruku je menjao Olinad1989 dana 29.03.2012. u 20:05 GMT+1]
[ abyss @ 29.03.2012. 22:16 ] @
Fali ti neki jar, pretpostavljam da je iText...
[ Olinad1989 @ 29.03.2012. 23:25 ] @
Koristio sam kada sam ovo pisao i iText... Sam iText.jar je bio corrupted (iako mi ranije to nije prikazivao) kada sam ga ponovo importovao, pa sam skinuo ponovo.

Radi! Hvala puno na odgovoru!
[ Olinad1989 @ 02.04.2012. 22:17 ] @
Da ne bih otvarao posebnu temu... Imam jedno pitanje...
Na koji nacin da generisem Jasper Report izvestaj, ali da mi izvor podataka bude lista?
[ abyss @ 03.04.2012. 07:09 ] @
Kakva lista?
[ markic @ 03.04.2012. 07:57 ] @
Pogledaj koje sve klase implementiraju interfejs JRDataSource. Sigurno ćeš naći šta ti treba ili napiši svoju implementaciju.
[ Olinad1989 @ 03.04.2012. 11:44 ] @
Code:
Map parameters = new HashMap();
            JasperReport jasperReport = JasperCompileManager.compileReport("izvestaj.jrxml");
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(l);
            JasperPrint jasperPrint = JasperManager.fillReport(jasperReport, parameters, ds);
            System.out.println("prosao");
            JasperViewer.viewReport(jasperPrint);


Code:
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : DogadjajID


U pitanju je ArrayList. Kako da generisem izvestaj iz te liste?
[ markic @ 03.04.2012. 13:31 ] @
Za svaki field u report-u moraš imati odgovarajući getter u bean-u. Znači samo uskladi nazive.
[ Olinad1989 @ 03.04.2012. 17:58 ] @
Citat:
markic: Za svaki field u report-u moraš imati odgovarajući getter u bean-u. Znači samo uskladi nazive.


Ako sam te dobro razumeo, treba da su mi isti nazivi polja u domenu objekta koji je sadrzan u listi i u izvestaju. To mi je isto...

I dalje izbacuje gresku...
[ markic @ 03.04.2012. 19:03 ] @
Spominjao si DogadjajID, preporučio bih ti da atribute neke klase pišeš malim početnim slovom, a samo nazive klasa velikim početnim slovom.
Tako ćeš recimo u izveštaju imati field sa nazivom dogadjajId, a u Java bean-u:
Code:

    private int dogadjajId;
    public int getDogadjajId() {
        return dogadjajId;
    }
    public void setDogadjajId(int dogadjajId) {
        this.dogadjajId = dogadjajId;
    }
[ Olinad1989 @ 04.04.2012. 08:58 ] @
Proradilo je, generalno (kada ostavim polja koja se nalaze samo u tabeli gde je dogadjajID)... Problem je bio u report-u.

E sada, vise pitanja:

1) Posto ja u ovoj tabeli imam dva spoljna kljuca koja referenciraju na druge dve tabele, prijavljuje mi istu gresku za ta dva atributa. Kako da u iRepportu namestim da iz tih drugih tabela vadim podatke preko tih spoljnih kljuceva iz tabele gde mi je dogadjajID?

2) Kada uklonim ova dva atributa koja referenciraju na druge tabele, i pokusam da generisem izvestaj, dobijam da ne moze da popuni polje sa datumom. Kako to resiti?
Code:
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : 
    Source text : $F{datum}


3) U izvestaju koji dobijam preko konekcije (odnosno, preko upita) mi u preview modu datum izgleda onako kako ja hocu (dd/mm/yyyy). Medjutim, kada mi se generise izvestaj iz aplikacije, format u izvestaju je dd/mm/yyyy HH:MI:SS. Kako to resiti?

Hvala puno markic i abyss na prethodnim odgovorima.
[ markic @ 04.04.2012. 11:05 ] @
1. Fizički sloj je jedno, a objektni drugo. Moraš prosleđivati kompletne objekte. Ako Dogadjaj vidi npr. TipDogadjaja, onda ćeš u klasi Dogadjaj imati:
Code:
private TipDogadjaja tipDogadjaja;
public TipDogadjaja getTipDogadjaja() {
    return tipDogadjaja;
}
public void setTipDogadjaja(TipDogadjaja tipDogadjaja) {
    this.tipDogadjaja = tipDogadjaja;
}
Kada tako uvezane objekte proslediš JasperReports-u onda će i on moći da pristupa atributima objekata prema kojima imaš asocijaciju.
2. Pretpostavljam da u tom exception-u imaš i 'caused by' i da se odnosi na type cast. Dakle proveri tipove za 'Field' i 'Text field'.
3. Za taj Text field definiši željeni pattern.
[ Olinad1989 @ 05.04.2012. 18:35 ] @
Citat:
markic: 1. Fizički sloj je jedno, a objektni drugo. Moraš prosleđivati kompletne objekte. Ako Dogadjaj vidi npr. TipDogadjaja, onda ćeš u klasi Dogadjaj imati:
Code:
private TipDogadjaja tipDogadjaja;
public TipDogadjaja getTipDogadjaja() {
return tipDogadjaja;
}
public void setTipDogadjaja(TipDogadjaja tipDogadjaja) {
this.tipDogadjaja = tipDogadjaja;
}
Kada tako uvezane objekte proslediš JasperReports-u onda će i on moći da pristupa atributima objekata prema kojima imaš asocijaciju.


Hehe, znam to... Dobar mi je domen.

Uspeo sam da generisem izvestaj, sa datumom i sa svime sto mi je trebalo. U pravu si bio, nisam lepo definisao u izvestaju tip polja datuma.

Jedino mi pravi problem to sto nece ni po patternu da formatira datum u izvestaju.

U text field expression-u sam uneo:
Code:
$F{datum}.getDay()+"."+$F{datum}.getMonth()+"."+$F{datum}.getYear()


Medjutim, za datum mi ispisuje neke bezveze brojeve...
[ markic @ 06.04.2012. 19:52 ] @
Za text field definisi: expression class kao java.util.Date, Text Field Expression kao $F{datum} i Pattern kao dd.MM.yyyy.