none
Como Imprimir de um Datagrid usando Report View RRS feed

  • Pergunta

  • Boa Tarde a todos!

    Pessoal preciso de uma ajuda de vocês. Em uma determinada tela eu tenho vários campos, após preencher esses campos eu gero um PDF e mando imprimir, eu estou usando  "Report View" e passou os campos via parâmetros. segue o código do botão imprimir.

    Código:

    ReportViewer reportViewer = new ReportViewer(); reportViewer.ProcessingMode = ProcessingMode.Local; //CAMINHO PARA CHEGAR AO TELA DE RELATORIO reportViewer.LocalReport.ReportEmbeddedResource = "Apresentacao.RelatorioChamado.rdlc"; //PARAMETROS DO RELATORIOS "RENDERIZAÇÃO RELATORIO PARA PDF" List<ReportParameter> listReportParameter = new List<ReportParameter>(); listReportParameter.Add(new ReportParameter("NomeCliente", cbNomeCliente.Text)); listReportParameter.Add(new ReportParameter("CodigoChamado", txtCod_Chamado.Text)); listReportParameter.Add(new ReportParameter("NumeroEtiqueta", txtCodEquipamento.Text)); listReportParameter.Add(new ReportParameter("Rua", txtEndereco.Text)); listReportParameter.Add(new ReportParameter("Cidade", txtCidade.Text)); listReportParameter.Add(new ReportParameter("Bairro", txtBairro.Text)); listReportParameter.Add(new ReportParameter("Numero", txtNumero.Text)); listReportParameter.Add(new ReportParameter("Cep", maskCep.Text)); listReportParameter.Add(new ReportParameter("UF", txtUF.Text)); listReportParameter.Add(new ReportParameter("Telefone", txtTelefone.Text)); listReportParameter.Add(new ReportParameter("Celular", txtCelular.Text)); listReportParameter.Add(new ReportParameter("Solicitante", txtAtendente.Text)); listReportParameter.Add(new ReportParameter("Atendente", txtAtendente.Text)); listReportParameter.Add(new ReportParameter("StatusChamado", cbStatusChamado.Text)); listReportParameter.Add(new ReportParameter("DataAbertura", dateAberturaChamado.Value.ToShortDateString())); listReportParameter.Add(new ReportParameter("DataFechamento", dateFechamentoChamado.Value.ToShortDateString())); listReportParameter.Add(new ReportParameter("HoraFechamento", txtHoraFechamento.Text)); listReportParameter.Add(new ReportParameter("HoraAbertura", txtHoraAbertura.Text)); listReportParameter.Add(new ReportParameter("DescricaoChamado", rchDescricaoChamado.Text)); listReportParameter.Add(new ReportParameter("DescritivoAtendimento", rchDescricaoAtendimento.Text)); listReportParameter.Add(new ReportParameter("ObservacaoAtendimento", rchObservacaoAtendimento.Text)); listReportParameter.Add(new ReportParameter("TecnicoResponsavel", cbTecnicoResponsavel.Text)); reportViewer.LocalReport.SetParameters(listReportParameter); Warning[] warnings; string[] streamids; string mimeType; string encoding; string extension; //QUAL QUER ERRO CAIRA DENTRO DESSE ARRAY AQUI byte[] bytePDF = reportViewer.LocalReport.Render("Pdf", null, out mimeType, out encoding, out extension, out streamids, out warnings); FileStream fileStreamPDF = null; string nomeArquivoPDF = Path.GetTempPath() + "RelatorioChamado" + DateTime.Now.ToString("dd_MM_yyyy-HH_mm_ss") + ".PDF"; fileStreamPDF = new FileStream(nomeArquivoPDF, FileMode.Create); fileStreamPDF.Write(bytePDF, 0, bytePDF.Length); fileStreamPDF.Close(); Process.Start(nomeArquivoPDF); }

    Vamos ao problema: nessa tela tive que adicionar um "DataGridview" como faço para pegar os dados do "Datagrid" e gerar o PDF.

    se alguém poder ajudar agradeço, Obrigado...

    att;

    quinta-feira, 29 de setembro de 2016 20:19

Respostas

  • Boa tarde Fabricio_Canali,

    Obrigado pela participação no Fórum MSDN.

    Você provavelmente precisará usar o iTextSharp.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 30 de setembro de 2016 18:27
    Moderador
  • So uma sugestão, porque ja que você esta usando o Reportviewer dentro dele temos como gerar o relatorio tanto para Excel como para PDF você poderia gerar esse relatorio com o Reportviewer e deixar que o usuário faça como desejar dando mais opções aos usuários pois dependendo do caso um quer de um jeito o outro gosta de gerar em Excel e etc dessa forma você teria uma gama maior para atender o usuários isso é claro se você não tiver a necessidade de gerar exclusivamente para PDF.

    Junior

    sexta-feira, 30 de setembro de 2016 18:58

Todas as Respostas

  • Boa tarde Fabricio_Canali,

    Obrigado pela participação no Fórum MSDN.

    Você provavelmente precisará usar o iTextSharp.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 30 de setembro de 2016 18:27
    Moderador
  • So uma sugestão, porque ja que você esta usando o Reportviewer dentro dele temos como gerar o relatorio tanto para Excel como para PDF você poderia gerar esse relatorio com o Reportviewer e deixar que o usuário faça como desejar dando mais opções aos usuários pois dependendo do caso um quer de um jeito o outro gosta de gerar em Excel e etc dessa forma você teria uma gama maior para atender o usuários isso é claro se você não tiver a necessidade de gerar exclusivamente para PDF.

    Junior

    sexta-feira, 30 de setembro de 2016 18:58
  • Boa Tarde Robson!

    Cara, Estou começando agora na programação, como eu usaria o  iTextSharp para imprimir os dados que estão no grid. obs: o Datagrid esta nessa tela que tenho os campos acima, estou querendo alem de gerar o pdf com os campos da tela eu preciso pegar os dados do Grid tambem.

    att;

    sábado, 1 de outubro de 2016 17:47