alguem sabe como criar relatorios no ireport eu criei agora quero que acessar e mandar criar o relatorio pelo netbeans assim em uma consulta quero criar relatorio com o resultado da consulta alguem ajuda ai
Olá, acho que o código abaixo poderia te ajudar
public JasperPrint GeraRel(String nome, String codigo, String tipo, String dataini, String datafin)throws SQLException, ClassNotFoundException, IllegalStateException, InterruptedException, RuntimeException, CommunicationsException, JRException, FileNotFoundException
{
this.usu = null;
this.query = "SELECT `Codigo_Usuario` , `Nome_Usuario` , `Tipo_Usuario` , `DataUltiAtu_Usuario` FROM `Usuarios` WHERE `Codigo_Usuario` LIKE CONVERT( _utf8'"+codigo+"%' USING latin1 ) COLLATE latin1_swedish_ci AND `Nome_Usuario` LIKE CONVERT( _utf8 '"+nome+"%' USING latin1 ) COLLATE latin1_swedish_ci AND `Tipo_Usuario` LIKE CONVERT( _utf8 '"+tipo+"%' USING latin1 ) COLLATE latin1_swedish_ci LIMIT 0 , 30";
// this.query = "SELECT * FROM Usuarios
";
this.conecta();
statement = connection.createStatement();
ResultSet resultado = statement.executeQuery(query);
String camjasper = “rel_usu.jasper”; //teste oracle
Map parametros = new HashMap();
JRResultSetDataSource jrs = new JRResultSetDataSource(resultado);
this.usu = JasperFillManager.fillReport(camjasper, parametros, jrs);
// ResultSetMetaData resmeta = resultado.getMetaData();
// JasperFillManager.fillReport("D:\Centurionw\src\relatorios\rel_usu.jasper", parametros,jrs);
// JasperExportManager.
return this.usu;
}
tenho essa classe aqui q achei na net
public class relatoriocliente {
public void relatoriocliente() throws JRException {
try
{
String sql = "select * from cliente";
PreparedStatement stmt = Postgre.getConexao().prepareStatement(sql);
ResultSet rs = stmt.executeQuery(sql);
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
Map parameters = new HashMap();
JasperPrint jprint = JasperManager.fillReport("RelatorioOperacao.jasper", parameters, jrRS);
JasperViewer.viewReport(jprint,false);
Postgre.getConexao().close();
}
catch(SQLException e)
{
System.out.println("Erro no SQL"+e);
}
}
}
da erro Note: C:\teste\src\percistencia\relatoriocliente.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
compile-single:
No lugar do arquivo .jasper deve ser eplicitado o PATH do arquivo todo
JasperPrint jprint = JasperManager.fillReport(“c:\endereço do arquivoRelatorioOperacao.jasper”, parameters, jrRS);
até…
package percistencia;
import java.beans.Statement;
import java.beans.Statement;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.*;
import java.sql.*;
import java.util.*;
/**
*
* @author Fabio
*/
public class relatoriocliente {
public static void relatoriocliente() throws JRException {
try
{
String sql = "select * from cliente";
// PreparedStatement stmt = Postgre.getConexao().prepareStatement(sql);
// ResultSet rs = stmt.executeQuery(sql);
Statement stm = (Statement) Postgre.getConexao().createStatement();
ResultSet rs = Statement.executeQuery(sql);
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
Map parameters = new HashMap();
JasperPrint jprint = JasperManager.fillReport("C:/teste/relatorios/Cliente.jasper", parameters, jrRS);
JasperViewer.viewReport(jprint,false);
Postgre.getConexao().close();
}
catch(SQLException e)
{
System.out.println("Erro no SQL"+e);
}
}
}
fui executar e disse que nao pode ser PreparedStatement dae alterei para Statement e resultou erro aqui
ResultSet rs = Statement.executeQuery(sql)
C:\teste\src\percistencia\relatoriocliente.java:29: cannot find symbol
symbol : method executeQuery(java.lang.String)
location: class java.beans.Statement
ResultSet rs = Statement.executeQuery(sql);
Note: C:\teste\src\percistencia\relatoriocliente.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
incompativel tipos
Imports.
Importe a Statement do pacote java.sql.
importei ai o erro fica igual e diz que nao esta sendo utilizada a importacao
Organize seus imports. Você importa duas vezes a mesma classe (java.beans.Statement) e não usa nenhuma vez. Remova esses dois imports e importe apenas java.sql.* pois aí já está importando o Statement.
Tente trocar isso
JasperPrint jprint = JasperManager.fillReport("C:/teste/relatorios/Cliente.jasper", parameters, jrRS);
por isso:
JasperPrint jprint = JasperManager.fillReport("C:\teste\relatorios\Cliente.jasper", parameters, jrRS);
Abraços!
agora sim relatorioc FUNCIONANDO ai ta a classe pra faze relatorio cliente
package percistencia;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.*;
import java.sql.*;
import java.util.*;
/**
*
* @author Fabio
*/
public class ClienteRel {
public void ClienteRel(ResultSet rs) throws JRException {
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
Map parameters = new HashMap();
JasperPrint jprint = JasperManager.fillReport("C:\teste\relatorios\Cliente.jasper", parameters, jrRS);
JasperViewer.viewReport(jprint,false);
}
}
ai o metodo que retorna o resultSet para o ClienteRel
public ResultSet listarRelCliente(String Nome_Cliente) {
String sql = "SELECT * FROM Cliente WHERE UPPER(nome_cliente) LIKE ?";
try {
PreparedStatement stmt = getConexao().prepareStatement(sql);
stmt.setString(1, "%" + Nome_Cliente.toUpperCase() + "%");
ResultSet rs = stmt.executeQuery();
return (rs);
} catch (SQLException sQLException) {
System.out.println("Erro ao listar Cliente");
}
return null;
}
aqui no botao que faz a pesquisa e chama a funcao e passa pro relatorio o resultSet da pesquisa
ClienteDao cliente = new ClienteDao();
ClienteRel cli = new ClienteRel();
ResultSet rs = cliente.listarRelCliente(campo_pra_pesquisaNome.getText());
try {
cli.ClienteRel(rs);
} catch (Exception ex) {
Logger.getLogger(ConsultarCliente.class.getName()).log(Level.SEVERE, null, ex);
}
AI AGRADECO A TODOS PELA AJUDA VALEUUUUUUUUUUUU