Abrir Relatorio PDF em uma nova Janela e Atualizar formlario ao mesmo tempo

5 respostas
S

Ola! Pessoal,

Estou desenvolvendo um Sistema com JSF, JPA, CDI e EJB e estou com a seguinte dificuldade: quando o usuário clickar no commandLink para mandar gerar um Boleto bancário o sistema deverá abrir uma nova janela do Browse e mostra o boleto bancário e ao mesmo tempo atualizar a formulário para sumir com o registro que estava pendente de geração do Boleto Bancário. O máximo que consigo e abrir o boleto em uma outra pagina, entretanto não consigo atualizar o formulário que chamou o relatório,
se uso o commandButton ele abre o relatório na mesma pagina do formulário e não é isso que desejo.

A quem se dispuser a ajudar, desde já, muito obrigado.

5 Respostas

FernandoFranzini

Impossível…
Especificação HTTP foi estabelecida de forma que só pode enviar 1 tipo de resposta dentro do HTTP response. Ou vem o ajax com a atualização da lista ou vem o PDF dentro da resposta.

Como contornar?
Aqui na empresa fazermos um adaptação muito legal…
Na resposta voltamos a atualização da lista para atualizar os registros…mas logo apos a atualização ajax eu executo um javascript que chama outro http request para fazer a geração e donwload do PDF em um outro http response.
O resultado final é que o navegador fazer 2 interações http, 1 ajax para atualizar a listagem e outro http full para donwload do pdf. Isso fica transparente para o usuario final. Ele praticamente nem percebe…
Não se é seu caso mas uso a propriedade oncomplete do JSF a4f.
Funciona que é uma beleza…

S

Neste caso tu salvas o o relatorio gerado numa area temparia e depois baixa ele?

FernandoFranzini

Não…eu gero o relatório na próxima requisição http automática…

S

Fernando,
fiz uns teste mas nao consegui via JavaScript executar o metodo do meu manager Bean que gera o arquivo de impressao.

FernandoFranzini

simeao:
Fernando,
fiz uns teste mas nao consegui via JavaScript executar o metodo do meu manager Bean que gera o arquivo de impressao.

Eu usei o a4J:function para expor o método do managegBean em uma função JavaScript! Da certo sim…
To usando em milhões de processos aqui…

Criado 27 de setembro de 2011
Ultima resposta 30 de set. de 2011
Respostas 5
Participantes 2