Fala gente boa!
Estou com um problema nesse código. Quando eu crio o relatório e não tem dado nenhum no banco ele
diz que o relatório não contém páginas e aparece normalmente em branco. Mas quando o banco tem algum dado( nesse caso o vetor), ele dá essa exceção:
[code]okException in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/beanutils/PropertyUtils
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:104)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:93)
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:104)
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:799)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:763)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1078)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:107)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:751)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:679)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)
at menuPrincipal.ControleJPrincipal.actionPerformed(ControleJPrincipal.java:36)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
meu classpath: além do jre1.6
postgresql-8.1-404.jdbc3.jar
jasperreports-1.3.1.jar
commons-logging-1.0.2.jar
commons-collections-2.1.jar
ireport.jar
o arquivo relatorioAlunos.jasper esta na package menuPrincipal.
Meu código:
package menuPrincipal;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JOptionPane;
import java.util.Vector;
import aluno.*;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.JasperPrint;
public class ControleJPrincipal extends AbstractAction {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if(command.equals("mAluno")){
new Faluno();
}//fim do if mAluno
else if(command.equals("mRAluno")){
try{
System.out.print("ok");
ControleAluno controleAluno = new ControleAluno();
Vector vetorAluno = controleAluno.dadosEmVetor();
//classe que define o tipo de dado do relatório
JRBeanCollectionDataSource jrbean = new JRBeanCollectionDataSource(vetorAluno);
Map map = new HashMap();
//comando para criar relatórios
JasperPrint impressao = JasperFillManager.fillReport("relatorioAlunos.jasper", map, jrbean);
//comando para mostrar o relatório
JasperViewer.viewReport(impressao, false);
}//fim do try
catch (JRException ex){
JOptionPane.showMessageDialog(null,"Erro ao tentar abrir o relatório\n"+ex.getStackTrace(),"Erro",JOptionPane.ERROR_MESSAGE);
}//fim do catch
}//fim do if mRaluno
}//fim do actionPerformed
}//fim da classe
Estou usando o postgresql e fazendo no eclipse.
No Ireport o relatório aparece normalmente sem os dados, não sei se era para aparecer no IReport já com os dados? Mas lá aparece em branco quando compila mesmo com dados no banco. Pelo menos aparece, no eclipse dá essa exceção.
Qualquer ajuda, fico grato!
Valeu gente!

