Jreport

2 respostas
T

pessoal, eu tenho uma aplicação e ela gera relatórios mas na hora de nomear o arquivo gerado em PDF eu só consigo gerar para o internet explorer e não para o netscape … deem uma olhada numa parte do código:

byte[] bytes = JasperRunManager.runReportToPdf(
reportFile.getPath()
,
parameters,
sourceloteDetalhe
);

response.setContentType(application/pdf);

String navegador = request.getHeader(user-agent);

if(navegador != null && navegador.indexOf(MSIE) != -1){

response.setHeader(Content-Disposition”,“attachment;

filename=Lote+lote.getId()+”.pdf"");

}

deveria aparecer como nome do PDF “Lote N° tal” mas só exibe isso quando quem chama é o explorer, mas o netscape não = (
ajudeeeeemmm,
obrigada

=D

2 Respostas

D

Cara você esta melhor do que eu.
Estou, também, fazendo relatório Jasper/Jsp e estou apanhando feito cachorro sem dono.

No meu caso não aparece em nenhum browser.

Será que você poderia me ajudar me passando exemplos.

Veja meu código:

<%@ page errorPage=error.jsp %>

<%@ page import=datasource.<em>" %>

<%@ page import="net.sf.jasperreports.engine.</em>” %>

<%@ page import=net.sf.jasperreports.engine.util.<em>" %>

<%@ page import="net.sf.jasperreports.engine.export.</em>” %>

<%@ page import=net.sf.jasperreports.engine.data.<em>" %>

<%@ page import="net.sf.jasperreports.view.</em>” %>

<%@ page import=java.util.<em>" %>

<%@ page import="<a href="http://java.io">java.io</a>.</em>” %>
<%

JRTableModelDataSource dataSource = (JRTableModelDataSource) session.getAttribute(dataSource);

Map                    parameters = (Map)                    session.getAttribute(parameters);

File                   reportFile = (File)                   session.getAttribute(reportFile);

JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());

JasperPrint jasperPrint = JasperFillManager.fillReport(

jasperReport,

parameters,

dataSource);

byte[] bytes =

JasperRunManager.runReportToPdf(

reportFile.getPath(),

parameters,

dataSource

);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();

%>

T

bom vou postar aqui meu código tenta tomar ele como expemplo, ele está num JSP:

<%@ page import=dori.jasper.engine.<em>" %>

<%@ page import="dori.jasper.engine.util.</em>” %>

<%@ page import=dori.jasper.view.<em>" %>

<%@ page import="java.util.</em>” %>

<%@ page import=<a href="http://java.io">java.io</a>.<em>" %>

<%@ page import="java.sql.</em>” %>

<%@ page import=ocorrencia.* %>

<jsp:useBean id=“dbManager” scope=“application” class=“mentor.banco.DbManager” />

<%

// recupera conexão com banco

Connection con = dbManager.getConnection();

//recupera o caminho real do .jasper

File reportFile = new File(application.getRealPath("/reports/relLote.jasper"));

// se for colocar alguma imagem pega o caminho real dela tb

String caminho_imagem = application.getRealPath("/imagens/iconeRelatorioViaRelatoP&B.jpg");

//pegando o Id de um exemplo no banco

String strIdLote = request.getParameter(EXEMPLO_ID);

//instanciando da classe exemplo o objeto exemplo

Exemplo exemplo = new Exemplo(con,exemploId);

//titulo do relatorio que vai passsar como parametro

String RelaTitulo = lote.getSistema().getCodigo() + " - Lote de Ocorrência N° "+strIdLote;

// instanciando da classe DataSource o obrjeto source

DataSource source = new DataSource(con,exemplo);

// passando os parametros

Map parameters = new HashMap();

parameters.put(ReportTitle, RelaTitulo);

parameters.put(BaseDir, reportFile.getParentFile());

parameters.put(caminho_imagem,caminho_imagem);

//o resto vai exibir o relatorio

byte[] bytes =

JasperRunManager.runReportToPdf(

reportFile.getPath(),

parameters,

sourceloteDetalhe

);
response.setContentType("application/pdf");
    String navegador = request.getHeader("user-agent");
    if(navegador != null &amp;&amp; navegador.indexOf("MSIE") != -1){
        response.setHeader("Content-Disposition","attachment; filename=\"Exemplo"+lote.getId()+".pdf\"");
    }
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
    dbManager.closeConnection(con);

%>

Criado 1 de fevereiro de 2005
Ultima resposta 1 de fev. de 2005
Respostas 2
Participantes 2