Usuário com melhor resposta
ReportViewer - Visualizar o relatorio direto no .pdf

Pergunta
-
Olá, estou usando Visual Studio 2010 e Report Viewer, gostaria que quando fosse abrir o relatorio no report ele já gerasse direto em pdf.
Já tentei de varios jeitos, mas sem sucesso. No codigo abaixo esta aparecendo o seguinte erro: An error occurred during local report processing.
Como posso resolver isso?!
if (!IsPostBack) { RelatoriosTableAdapters.RepresentantesTableAdapter tableAdapter = new RelatoriosTableAdapters.RepresentantesTableAdapter(); Relatorios.RepresentantesDataTable dataTable = new Relatorios.RepresentantesDataTable(); dataTable.Merge(tableAdapter.GetData()); rvRepresentantes.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local; rvRepresentantes.LocalReport.ReportPath = Server.MapPath("~/Relatorio/Representante.rdlc"); rvRepresentantes.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("Relatorios.RepresentantesDataTable_GetData", ObjectDataSource1)); //rvRepresentantes.DataBind(); Warning[] warn = null; string[] streamids = null; string mimeType = "application/pdf"; string encoding = string.Empty; string extension = string.Empty; //byte[] byteViewer = null; byte[] byteViewer = rvRepresentantes.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamids, out warn); Response.Buffer = true; Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "inline; filename= Representante.pdf"); Response.BinaryWrite(byteViewer); Response.Flush(); Response.End(); }
Respostas
-
Resolvido !!
O codigo é examente esse, o unico problema era que eu estava passando o parametro errado.. ao invez de ser Relatorios.RepresentantesDataTable_GetData ... tem que ser o nome do DataSet que esta dentro do .rdlc
Obrigada pela atenção.
Carol
- Marcado como Resposta Carolzinha_ quinta-feira, 28 de julho de 2011 20:28
Todas as Respostas
-
Tenta somente com essa parte do code
byte[] byteViewer = rvRepresentantes.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamids, out warn); Response.Buffer = true; Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "inline; filename= Representante.pdf"); Response.BinaryWrite(byteViewer);
Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC -
-
Com Crystal Report é +- assim, as vezes ti ajuda.
'Cria uma instância do ReportClass
Dim relatorio As New CrystalDecisions.CrystalReports.Engine.ReportClass()Private Sub CarregaRelatorio()
Dim NomePDF As String = String.Empty'Carrega as Tables
Dim Ds As New media
Dim Dt1 As New media.TabMediaDt1 = Session("Tab_1")
If Not Dt1 Is Nothing Then Dt1.CopyToDataTable(Ds.TabMedia, LoadOption.OverwriteChanges)
relatorio.FileName = Server.MapPath("RelatorioMedia.rpt")
NomePDF = "nomearquivo" 'sem pdf
relatorio.SetDataSource(Ds)
'parametros
'Ocultar Grafico
If (Not Dt1 Is Nothing) Then
relatorio.SetParameterValue(1, IIf(Dt1.Rows.Count = 0, True, False))
Else
relatorio.SetParameterValue(1, True)
End Ifrelatorio.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, True, NomePDF)
end sub
Protected Sub reldeimpressao_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
CarregaRelatorio()
End If
End Sub
Living easy ... Living free ... -
Resolvido !!
O codigo é examente esse, o unico problema era que eu estava passando o parametro errado.. ao invez de ser Relatorios.RepresentantesDataTable_GetData ... tem que ser o nome do DataSet que esta dentro do .rdlc
Obrigada pela atenção.
Carol
- Marcado como Resposta Carolzinha_ quinta-feira, 28 de julho de 2011 20:28