Ir para conteúdo

ViniciusRafael

Members
  • Total de itens

    7
  • Registro em

  • Última visita

Tudo que ViniciusRafael postou

  1. Olá pessoal =D Estou com o seguinte problema: Preciso gerar um PDF baseado num relatório do Report Viewer na máquina sem precisar abrir o Report Viewer. A aplicação será Windows Forms. Até agora o código está assim: DataTable Dt = new DataTable(); ReportViewer Rv = new ReportViewer(); DataRow Dr = Dt.NewRow() ; Dt.Columns.Add("Name", typeof(string)); Dt.Columns.Add("Age", typeof(string)); Dt.Columns.Add("Phone", typeof(string)); Dr["Name"] = "Vini"; Dr["Age"] = "12"; Dr["Phone"] = "2134"; Dt.Rows.Add(Dr); Rv.ProcessingMode = ProcessingMode.Local; Rv.LocalReport.ReportPath = @"\report1.rdlc"; Rv.LocalReport.DataSources.Add(new ReportDataSource("Employee", Dt)); Warning[] warnings; string[] streamids; string mimeType; string encoding; string extension; byte[] bytes = Rv.LocalReport.Render( "Pdf", null, out mimeType, out encoding, out extension, out streamids, out warnings); FileStream fs = new FileStream(@"c:\output\output.pdf", FileMode.Create); fs.Write(bytes, 0, bytes.Length); fs.Close() O problema é que está dando erro no byte[]. Alega que não foi possível fazer o processamento com o relatório. Mensagem: "Ocorreu um erro durante o processamento de relatórios local." Então, alguém com dicas?
  2. ViniciusRafael

    [Resolvido] Gerar PDF através do Report Viewer antes de abri-lo (

    Problema resolvido =D Abaixo o código funcional (Lembrando que tem que adicionar um DataSet ao Report (Report Viewer). private void ExportPdf() { ReportViewer Rv = new ReportViewer(); ReportParameter[] Rp = new ReportParameter[3]; BindingSource Bs = new BindingSource(); ReportDataSource Rds = new ReportDataSource(); DataTable Dt = new DataTable("Teste"); DataRow Dr; Rp[0] = new ReportParameter("Name", "Name", true); Rp[1] = new ReportParameter("Age", "Age", true); Rp[2] = new ReportParameter("Phone", "Phone", true); Dt.Columns.Add( "Name", typeof( string ) ); Dt.Columns.Add( "Age", typeof( string ) ); Dt.Columns.Add( "Phone", typeof( string ) ); for ( int i = 0; i < 5; i++ ) { Dr = Dt.NewRow(); Dr["Name"] = "Vini " + i * i+2; Dr["Age"] = "12 " + i + i + Math.PI; Dr["Phone"] = "2134 " + i + i / 0.5; Dt.Rows.Add( Dr ); } Bs.DataSource = Dt; Rds.Name = Dt.TableName; Rds.Value = Bs.DataSource; Rv.ProcessingMode = ProcessingMode.Local; Rv.LocalReport.ReportPath = @"Report1.rdlc"; Rv.LocalReport.SetParameters( Rp ); Rv.LocalReport.DataSources.Add( Rds); Warning[] warnings; string[] streamids; string mimeType; string encoding; string extension; byte[] bytes = Rv.LocalReport.Render( "Pdf", null, out mimeType, out encoding, out extension, out streamids, out warnings); FileStream fs = new FileStream(@"c:\output\output.pdf",FileMode.Create); fs.Write(bytes, 0, bytes.Length); fs.Close(); System.Diagnostics.Process.Start(@"c:\output\output.pdf"); } private void button1_Click( object sender, EventArgs e ) { ExportPdf( ); label1.Text = "Exportado com sucesso!"; } Pra quem não conseguir rodar vou deixar o font aqui embaixo. Download --> https://skydrive.live.com/redir?resid=930E14C1CBA22D2B!157
  3. ViniciusRafael

    [Resolvido] Gerar PDF através do Report Viewer antes de abri-lo (

    Bom, consegui gerar o PDF, mas ele está em branco. Tive que adicionar parâmetros antes de usar o Rv.LocalReport.Render(). Daí foi, mas infelizmente ele não está associando meu DataTable com o relatório. Segue abaixo o código (um pouco modificado, estou no trabalho e não tenho o mesmo projeto que usei em casa) private void ExportPdf() { DataTable Dt = new DataTable("Teste"); ReportViewer Rv = new ReportViewer(); ReportParameter[] Rp = new ReportParameter[3]; BindingSource Bs = new BindingSource(); ReportDataSource Rds = new ReportDataSource(); Rp[0] = new ReportParameter("Name", "Name", true); Rp[1] = new ReportParameter("Age", "Age", true); Rp[2] = new ReportParameter("Phone", "Phone", true); DataRow Dr = Dt.NewRow() ; Dt.Columns.Add("Name", typeof(string)); Dt.Columns.Add("Age", typeof(string)); Dt.Columns.Add("Phone", typeof(string)); Dr["Name"] = "Vini"; Dr["Age"] = "12"; Dr["Phone"] = "2134"; Dt.Rows.Add(Dr); Bs.DataSource = Dt; Rds.Name = Dt.TableName; Rds.Value = Bs; Rv.ProcessingMode = ProcessingMode.Local; Rv.LocalReport.ReportPath = @"c:\users\vinicius\desktop\RP_PDFTESTE\RP_PDFTESTE\Report1.rdlc"; Rv.LocalReport.SetParameters( Rp ); Rv.LocalReport.DataSources.Add( Rds); Rv.LocalReport.Refresh(); Warning[] warnings; string[] streamids; string mimeType; string encoding; string extension; byte[] bytes = Rv.LocalReport.Render( "Pdf", null, out mimeType, out encoding, out extension, out streamids, out warnings); FileStream fs = new FileStream(@"c:\output\output.pdf", FileMode.Create); fs.Write(bytes, 0, bytes.Length); fs.Close(); }
  4. ViniciusRafael

    [Resolvido] Gerar PDF através do Report Viewer antes de abri-lo (

    Olá. Não achei o método ReadBytes() do ReportViewer, joguei no Google e nada, também. Acho que o problema está no processo que pega o fonte de dados e o arquivo do relatório, pois fui defininir alguns parâmetros e, também deu o mesmo problema. Rv.LocalReport.SetParameters( Rp ); Você já chegou um relatório PDF dessa forma em WinForm?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.