Array
(
)

Abrir PDF gerado em outro webform/página

G2 Tecnologia
   - 18 dez 2012

Bom dia!

Esta é minha primeira postagem aqui. Já estudo C# ASP.NET a 4 meses e estou adorando.

Minha dúvida é a seguinte:

Estou montando relatórios utilizando o ReportView e esta tudo funcionando OK.

Porém, como o Reportviwer não mostra o botão imprimir em browser que não seja o internet explorer, consegui o seguinte código abaixo que já renderiza diretamente para PDF:
#Código

string mimeType;
string encoding;
string fileNameExtension;
Warning[] warnings;
string[] streamids;
byte[] exportBytes = ReportViewer1.LocalReport.Render("PDF", null, out mimeType, out encoding, out fileNameExtension, out streamids, out warnings);
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = mimeType;
HttpContext.Current.Response.AddHeader("content-disposition", "inline; filename=Relatório de Viagem." + fileNameExtension);
HttpContext.Current.Response.BinaryWrite(exportBytes);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();


Funciona perfeitamente!

Minha dúvida é a seguinte, como posso fazer com que o arquivo PDF gerado seja exibido em outro webform ou mesmo aberto em uma nova página?

Agradeço a atenção de todos,

Abraço.

Robson Robsonalves.net
   - 18 dez 2012

Amigo, eu fiz esse post:

http://www.devmedia.com.br/reporting-services-command-exportanto-arquivos/26629

Ele é perfeito para a sua necessidade, ele não usa o ReportViewer, ele usurá diretamente o Command do SQL!

Por ser uma requisição por URL, você irá criar uma nova página para isso, consequentemente atendendo sua necessidade.

G2 Tecnologia
   - 18 dez 2012


Citação:
Amigo, eu fiz esse post:

http://www.devmedia.com.br/reporting-services-command-exportanto-arquivos/26629

Ele é perfeito para a sua necessidade, ele não usa o ReportViewer, ele usurá diretamente o Command do SQL!

Por ser uma requisição por URL, você irá criar uma nova página para isso, consequentemente atendendo sua necessidade.


Bom dia,

Sua solução é muito interessante!

O problema é que já tenho todos os meus relatórios montados (35 ao todo) e não queria mudar o modo agora, visto que não terei tempo hábil para a entrega do sistema.

No momento, eu conseguindo direcionar o arquivo gerar para outro webform/página, resolveria meu problema neste momento.

Abraço.

Robson Robsonalves.net
   - 18 dez 2012

O que pode ser feito.

Uma nova página de relatórios, que recebe os parâmetros de cada relatório.

você chamam essa página via c#, utilizando o ClientScript ou caso utilize update panel ScriptManager.RegisterScriptBlock.

neste comando você faz a chamada via javascript.

Windows.open('urlDoPáginaDeRelatorio');

#Código

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), Guid.NewGuid().ToString(), "windows.open", true);


Na página de relatórios você faz essa sua rotina.