Já tentei um monte de coisas:
qdo faço : rel = JasperFillManager.fillReport(jR, null, c2); ele exibe o relatório, mas sem os dados vindos do banco, em branco, mas com a formatação do .jasper
qdo faço: rel = JasperFillManager.fillReport(jR, null, jrs); ele nao exibe o relatório, e aparece o joption dizendo q nao há paginas a serem exibidas…
onde foi q eu errei?
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.io.File;
import java.sql.*;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperManager;
public class Relatorios{
public Relatorios() {}
private ResultSet getRS(Connection conexao){
ResultSet rs = null;
try{
Statement stmt = conexao.createStatement();
rs = stmt.executeQuery("select * from planadm.projeto");
rs.first();
while(rs.next()){
System.out.println(rs.getString("nome"));
}
}
catch(Exception b){b.printStackTrace();}
return rs;
}
public JasperPrint Gerar(Connection con, String arquivoJasper, File file){
Estuda e = new Estuda();
e.AbreLivro();
Connection c2 = e.getConexao();
if(c2==null){
JOptionPane.showMessageDialog(null, "Conexao nula");
}
JasperPrint rel = null;
try {
ResultSet rs = null;
try{
rs = getRS(c2);
}
catch(Exception n){n.printStackTrace();}
JRResultSetDataSource jrs = new JRResultSetDataSource(rs);
String pathArquivo ="C:\\Users\\User\\Desktop\\Porto\\tudo2.jasper";
JasperReport jR = JasperManager.loadReport(pathArquivo);
HashMap map = new HashMap();
//System.out.println(arquivoJasper + jrs.toString());
rel = JasperFillManager.fillReport(jR, null, c2);
JasperViewer.viewReport(rel);
}
catch (JRException p) {
p.printStackTrace();
}
return rel;
}
}