Procurei mas ainda nao encontrei…
gera o seguinte erro qdo mando gerar o relatorio
Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: org.apache.commons.collections.ArrayStack: method <init>(I)V not found
at org.apache.commons.digester.Digester.<init>(Digester.java:151)
at net.sf.jasperreports.engine.xml.JRXmlDigester.<init>(JRXmlDigester.java:62)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:944)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:202)
na linha
JasperReport jr = JasperCompileManager.compileReport("alunos.jrxml");
o arquivo alunos.jrxml esta no mesmo pacote que a classe que gera o relatorio.
eu consegui resolver esse problema…
agora o problema ta sendo com os dados
me retorna que não ha registros, ou melhor, que não há página de dados.
aqui vai o codigo da sql do relatório :
public Vector Lista(String alunos, int ativo/*0 - todos, 1 - ativos, 2 - inativos*/) {
String condicao = "";
Conexao con = new Conexao();
PreparedStatement pr = null;
ResultSet rs = null;
try{
// aqui vai os comandos que usam a API JDBC para fazer a
// listagem dos registros do banco de dados
if (!alunos.equals("")){
condicao = condicao + "WHERE CODIGO IN ("+alunos+")";
}
if (ativo > 0){
if (condicao.equals("")){
condicao = "WHERE ATIVO = ? ";
}else{
condicao = condicao + "AND ATIVO = ?";
}
}
pr = con.getInstance().prepareStatement("SELECT * "+
" FROM ALUNO "+condicao );
if (ativo == 1){
pr.setString(1,"S");
}else if (ativo == 2){
pr.setString(1,"N");
}
rs = pr.executeQuery();
Vector vAluno = new Vector();
while (rs.next()) {
Aluno aluno = new Aluno();
vAluno.add(aluno);
}
return vAluno;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
e aqui eh como eu chamo o relatório.
private void jbVisualizarActionPerformed(java.awt.event.ActionEvent evt) {
// a classe HashMap usada para armazenar valores com
// o formato chave/valor
HashMap parametros = new HashMap();
parametros.put("titulo", "Relatório de Alunos");
AlunoDAO aluDAO = new AlunoDAO();
Vector vAluno = aluDAO.Lista(jtfAluno.getText(),0);
JasperPrint jprint = null;
try {
jprint = JasperFillManager.fillReport("D:\\Univel\\Monografia\\Academia\\src\\relat\\alunos.jasper", parametros, new JRBeanCollectionDataSource(vAluno));
} catch (JRException ex) {
ex.printStackTrace();
}
JasperViewer.viewReport(jprint, false);
}
não faço idéia de onde esteja o erro…
mas a sql ta fazendo certo
o meu esta dando o seguinte erro e naum estou conseguindo resolver
Compiling scriptlet source file… C:\JAVA RELATORIOS\Untitled_report_1Scriptlet.java
Errors compiling C:\JAVA RELATORIOS\Untitled_report_1Scriptlet.java!
C:\JAVA RELATORIOS\Untitled_report_1Scriptlet.java:4: cannot access java.lang.Object bad class file: E:\Arquivos de programas\Java\jre1.5.0_06\lib\rt.jar(java/lang/Object.class) class file has wrong version 49.0, should be 48.0 Please remove or make sure it appears in the correct subdirectory of the classpath. public class Untitled_report_1Scriptlet extends it.businesslogic.ireport.IReportScriptlet { ^ 1 error