Segue abaixo o servlet que fiz:
package beans;
import dori.jasper.engine.;
import dori.jasper.engine.design.;
import dori.jasper.engine.print.;
import dori.jasper.view.;
import dori.jasper.*;
import java.io.;
import javax.servlet.;
import javax.servlet.http.*;
import java.util.Map;
import java.util.Map;
import java.util.HashMap;
import java.sql.*;
public class Imprimir extends HttpServlet {
private static Connection con2 = null;
public void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
JRExporter exporter = null;
byte[] bytes = null;
Map parameters = new HashMap();
String systemId = getServletContext().getRealPath(request.getServletPath());
File directory = new File(systemId.substring(0, systemId.lastIndexOf(File.separator)-5)); //para tirar o nome do diretorio… (-5)
try {
//File reportFile = new File(“c:\empresas.jasper”);
File reportFile = new File(directory.getPath()+"\ireports\empresas.jasper");
JasperPrint jasperPrint = JasperManager.fillReport(reportFile.getPath(), null, getConexao()); //o null pode ser trocado pelo parameters
bytes =JasperManager.runReportToPdf(reportFile.getPath(), null, getConexao());
if ((bytes != null) && (bytes.length>0))
{
response.setHeader(“application/pdf”, “Content-Type”);
response.setContentType(“application/pdf”);
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
// JasperExportManager.exportReportToPdfFile(jasperPrint, “c:\farnetani.pdf”);
//AQUI É O ESQUEMA PARA VISUALIZA-LO PELO PREVIEW
// JasperViewer.viewReport(jasperPrint, true);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConexao(){
try{
DriverManager.registerDriver(new org.firebirdsql.jdbc.FBDriver());
con2 =DriverManager.getConnection(“jdbc:firebirdsql:localhost/3050:D:\Sistemas_Junior\CEBRAPA_7\Dados\CEBRAPA.GDB?lc_ctype=WIN1252”,“SYSDBA”,“masterkey”);
con2.setAutoCommit(true);
} catch (SQLException e){
System.out.println("Erro: " + (String)e.getMessage());
}
return con2;
}
}
[quote=“farnetani”]Blza pela dica…porém eu não estou encontrando no site do projeto um exemplo de servlet para chamar o tal relatório…se vc puder me passar um exemplo, eu agradeço.
Um abraço,
Junior
[quote=“javaquest”]1 - voce precisa criar um servlet que vai compilar e executar o relatorio,
nele voce seta o local onde estara o arquivo a ser compilado(o xml criado pelo iReport) e chama-lo via jsp passando os parametros necessario, olha o exemplo no site do projeto.
2 - como assim mascara… se eu entendi eh mais ou menos assim, voce tem um metodo em alguma classe como por exemplo, formataValorToBR(rst.getString(vltTotal)), onde voce busca um valor float do banco de dados, ex. 1000 e converte em 1.000,00 pelo metodo, se esse metodo for java basta voce chama-lo diretamente usando o field como se fosse o retorno de uma collection.
ex.: pacote.classe.formataValorToBR(F${VlrTotal}.toString());
3 - não, basta voce ter os jars do jasperReports no lib do servido ou no lib da aplicação.
see ya
[/quote][/quote]