none
Exportando para PDF dados de uma Gridview usando ReportView RRS feed

  • Pergunta

  • Olá Pessoal,

    Estou criando um método que salve os dados de uma Gridview em PDF, me falaram que o ReportView seria a melhor forma para tal ação. Gostaria saber quais são os procedimentos para essa façanha, vi muitos tutorias onde mostra procedimentos intuitivos do VS2010 mas não me interessa, gostaria via código.

    Agradeço desde já a paciência dos graduados...

    // caminho para salvar
                string endereco;
                //janela para salvamento
                FolderBrowserDialog janelasave = new FolderBrowserDialog();
                if (janelasave.ShowDialog() == DialogResult.Cancel)
                {
                    return;//cancelar processo
                }
                //adicionando o caminho e o nome do documento
                endereco = janelasave.SelectedPath + "\\" + "Relatorio" + ".pdf";
                //definindo o formato do arquivo
                Report arquivosave = new Report(new PdfFormatter());
                try
                {
                    //definição de fonte
                    FontDef fonte = new FontDef(arquivosave, FontDef.StandardFont.TimesRoman);
                    FontProp tamanhofonte = new FontProp(fonte,10);
                    //criação de pagina
                    Page pagina = new Page(arquivosave);
                    //setando dados
                    //sem logica
                }
                catch()
                {
                }
                finally
                {
                }

    quarta-feira, 9 de janeiro de 2013 16:57

Todas as Respostas

  • Segue exemplo de rendererização de um report como PDF.

     List<objGuiaConsulta> ListaGuia = objg.GetAll(idEntrada, WebProfile.Current.Conta.idEmpresa, "");

                ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Reports/Guias/Consulta.rdlc");

                ReportDataSource rd1 = new ReportDataSource("Data", ListaGuia);
                ReportViewer1.LocalReport.DataSources.Add(rd1);

                Warning[] Warnings = new Warning[10];
                string[] streamids = new string[10];
                string mimeType = "";
                string encoding = "";
                string fileNameExtension = "";          

                string deviceInfo =

                    "<DeviceInfo>" +
                    "  <PageWidth>8.27in</PageWidth>" +
                    "  <PageHeight>11.69in</PageHeight>" +
                    "</DeviceInfo>";

                Byte[] meusbytes = ReportViewer1.LocalReport.Render("PDF", deviceInfo, 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.BinaryWrite(meusbytes);
                HttpContext.Current.Response.Flush();
                HttpContext.Current.Response.End();

    quarta-feira, 9 de janeiro de 2013 17:03
  • Você ainda pode com este método renderizar o Report como excel ou word, basta mudar na linha:

    Byte[] meusbytes = ReportViewer1.LocalReport.Render("PDF", deviceInfo, out mimeType, out encoding, out fileNameExtension, out streamids, out Warnings);

    Para:

    Byte[] meusbytes = ReportViewer1.LocalReport.Render("Excel", deviceInfo, out mimeType, out encoding, out fileNameExtension, out streamids, out Warnings);

    ou

    Byte[] meusbytes = ReportViewer1.LocalReport.Render("Word", deviceInfo, out mimeType, out encoding, out fileNameExtension, out streamids, out Warnings);

    quarta-feira, 9 de janeiro de 2013 17:04
  • Só um detalhe:

    Para construir o report via código, você terá que construí-lo via XML. Não há classes que dão suporte para construção do Report. Ou você faz no modo design o que deseja, ou faz dinamicamente via XML e string. Não há outro meio.

    quarta-feira, 9 de janeiro de 2013 17:06
  • Se você deseja transformar uma gridview de fato em um pdf, o que você está querendo então é tranformar html em PDF. Para isso, aconselho a biblioteca ITextSharp, gratuita. Essa biblioteca oferece métodos de confecção de PDF e de transformação de html em PDF, mas só que há pouca decumentação a respeito.


    quarta-feira, 9 de janeiro de 2013 17:08