none
Problema com dataset que impedi de exportar para pdf no reportviewer RRS feed

  • Pergunta

  • Meu problema é o seguinte, estou tentando exportar meu relatório report para pdf, porém ele me mostra o erro "An error occurred during local report processing."

    contudo quando retiro o dataset do meu relatorio, ele abre o documento pdf em branco então problema está no dataset o que devo acrecentar para resolver?

    private void reportDrauzio()
            {
    
                ReportViewer reportViewer = new ReportViewer();
                reportViewer.ProcessingMode = ProcessingMode.Local;
    
                reportViewer.LocalReport.ReportEmbeddedResource     = "Aprentação.Report1.rdlc";
    
    
                
    
                Warning[] warnings;
                string[] streamids;
                string mimeType;
                string encoding;
                string extension;
    
                byte[] bytePDF = reportViewer.LocalReport.Render("Pdf", null, out mimeType, out encoding, out extension, out streamids, out warnings);
    
                FileStream fileStreamPDF = null;
                string nomeArquivoPDF = Path.GetTempPath() + "notaFiscal" + 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);  
    
            }


    terça-feira, 12 de maio de 2015 19:01

Respostas

  • Tenta mudar para assim:

    ReportViewer reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "Apresentacao,Report1.rdlc";
     
    
        byte[] bytePDF = reportViewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings);



    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 13 de maio de 2015 17:36

Todas as Respostas

  • Coloca o print da mensagem de erro para onde aponta, não vi nada do DataSet nesse codigo

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 12 de maio de 2015 19:55
  • Bom na verdade o dataset que eu disse que funciona quando eu retiro ele é o tipado onde estar marcado, por isso acho que falta alguma coisa no meu código:

    quarta-feira, 13 de maio de 2015 03:30
  • Nao use Dataset. troca pra datatable(TableAdapter)

    A flower cannot blossom without sunshine, and man cannot live without love.

    quarta-feira, 13 de maio de 2015 14:09
    Moderador
  • Como eu faço isso?

    Pq quando eu insiro uma tabela de cara ele já pedi um dataset.

    quarta-feira, 13 de maio de 2015 17:18
  • Tenta mudar para assim:

    ReportViewer reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "Apresentacao,Report1.rdlc";
     
    
        byte[] bytePDF = reportViewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings);



    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 13 de maio de 2015 17:36
  • Beto, você precisa carregar o dataset do relatório. Segue um exemplo:

    Aspx:

            <asp:ScriptManager ID="smrRelatorio" runat="server"></asp:ScriptManager>
            <rsweb:ReportViewer ID="rpvRelatorio" runat="server" Width="100%" Height="100%" HyperlinkTarget="_blank">
                <LocalReport EnableExternalImages="True" EnableHyperlinks="True">
                </LocalReport>
            </rsweb:ReportViewer>

    Aspx.cs:

    rpvRelatorio.LocalReport.ReportPath = "Apresentacao.Report1.rdlc";
                            rpvRelatorio.LocalReport.DataSources.Clear();
    ReportDataSource lDataSource = new ReportDataSource("DataSet1", new DataSet()); // troque o new DataSet() pelo seu dataset. o DataSet1 é o nome do DataSet que você colocou no arquivo rdlc.
    rpvRelatorio.LocalReport.DataSources.Add(lDataSource);
    rpvRelatorio.LocalReport.Refresh();


    quarta-feira, 13 de maio de 2015 17:40
  • é Windows Forms

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 13 de maio de 2015 17:41
  • Se ainda tiver duvida veja exemplos aqui

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 13 de maio de 2015 17:41
  • Não tinha reparado nesse detalhe. De qualquer forma, ignorando o aspx, o cs deve funcionar.
    quarta-feira, 13 de maio de 2015 17:44