Jasper - Visualizar diálogo de impressão no cliente.  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
klebergf
JavaGuru
[Avatar]

Membro desde: 05/11/2003 14:12:07
Mensagens: 224
Localização: Curitiba PR
Offline

Pessoal,

Estamos desenvolvendo uma aplicação web com JSF.

Na parte de relatórios, existem etiquetas que serão impressas diretamente do sistema, sem precisar exportar antes para pdf ou html.

Até ai tudo bem conseguimos, o problema é que o cliente deseja que antes da impressão apareça um diálogo de impressão, para que ele possa selecionar qual página deseja imprimir, colocamos o parâmetro ?true? no método printReport do JasperPrintManager:

boolean retornoImpressao = JasperPrintManager.printReport(impressao,true)

Em uma máquina rodando local funcionou perfeitamente, o problema é que quando migramos para o servidor, essa janela não aparece para o cliente e sim, aparece no servidor.

Alguém já passou por isso? Como posso fazer com que essa mensagem apareça para o cliente e não no servidor.

"Onde estão os atos de bravura e rebeldia,
Ternuna guerrada dia-a-dia?
Será que estamos sós?"
(gessisnger/maltz)
[Email] [MSN]
thiago_algo
JavaTeenager

Membro desde: 27/07/2004 11:23:41
Mensagens: 186
Offline

O problema acontece porque você está rodando o programa no servidor. PAra o lado do cliente só vai código HTML. Isso faz parte da arquitetura web. O que está acontecendo nem é um problema, na verdade.
iatan
Thread.start()

Membro desde: 15/03/2005 18:58:33
Mensagens: 28
Localização: Goiânia - Goiás
Offline

Exatamente amigo, como o código jsp é executdo no servidor, tudo vai para o servidor.

Estou passando pelo mesmo problema. Porêm consegui contornar esse problema da seguinte forma ( espero que ajude ) :

1) Inclui um "frame oculto" na minha página:

<iFrame id="iImprimir" name="iImprimir" width="100%" height="0" src="#" runat="client" scrolling="yes"></iFrame>

2) Qunado em uma determinada condição eu seto o src do meu i-frame que está em outra página:

if( ( frelatbalancete4colunas.gerarRelatorio.value == "sim" ) && (frelatbalancete4colunas.relatorio.value == "impressao" ) ) document.getElementById('iImprimir').src = 'relatorioImpressao.jsp';

3) Esta outra página contem o código para GERAR RELATÓRIO EM HTML, ou seja, depois desse código um " html oculto " será gerado na página.

4) Ai é só colocar " window.print()" na javascript do final da página mencionada no item 2 "relatorioImpressao.jsp" e pronto ....... o janela de impressão será exibida no cliente e o relatório sairá perfeitamente no cliente.

BOA SORTE .......

qualquer coisa: iatanm@yahoo.com.br - (62)92542266

Iatan Marques dos Santos - Analista de Sistemas.
[Email] [MSN]
klebergf
JavaGuru
[Avatar]

Membro desde: 05/11/2003 14:12:07
Mensagens: 224
Localização: Curitiba PR
Offline

Obrigado Iatan,

Vou testar essa sua alternativa.

Kleber

"Onde estão os atos de bravura e rebeldia,
Ternuna guerrada dia-a-dia?
Será que estamos sós?"
(gessisnger/maltz)
[Email] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team