簡體   English   中英

如何使用C#將rdlc報告保存在文件夾中

[英]How can i save rdlc report in a folder using c#

我對此主題進行了大量搜索,但沒有得到正確的解決方案。 我想將rdlc報告自動保存在文件夾中。

當前您無法按原樣保存rdlc報表。但是您可以將其導出為其他格式並保存(Word / Excel / Pdf)。因為rdlc文件是由報表查看器呈現的。

private void savereport( )
    { string FileName = "File_" + DateTime.Now.ToString("ddMMyyyyhhmmss") +".pdf";
            string extension;
            string encoding;
            string mimeType;
            string[] streams;
            Warning[] warnings;

            string contentType = "application/pdf";

            Byte[] mybytes = ReportViewer1.LocalReport.Render("PDF", null,
                            out extension, out encoding,
                            out mimeType, out streams, out warnings); //for exporting to PDF  
            using (FileStream fs = File.Create(Server.MapPath("~/Report/") + FileName))
            {
                fs.Write(mybytes, 0, mybytes.Length);
            }

            //Response.ClearHeaders();
            //Response.ClearContent();
            //Response.Buffer = true;
            //Response.Clear();
            Response.ContentType = contentType;
            Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName);
            Response.WriteFile(Server.MapPath("~/Report/" + FileName));
            Response.Flush();
            //Response.Close();
            //Response.End();   
    }
try
{
    Warning[] warnings;
    string[] streamids;
    string mimeType;
    string encoding;
    string extension;

    var reportViewer1 = new ReportViewer();
    reportViewer1.ProcessingMode = ProcessingMode.Local;
    reportViewer1.LocalReport.ReportPath = Server.MapPath("~/Reports/CGReports.rdlc");

    var dsCustomers = new DataSet();
    using (var client = ServiceClient<ILoaneeStatusManager>.Create(ObjectConstants.LoaneeStatusManager))
    {

        DataTable dt = client.Instance.GetAllLoaneeStatusByCGdanForReport(CGDANNo);

        //   DataTable dt = new DataTable();
        //   dt.Clear();
        //   dt.Columns.Add("MLIFees");
        //   dt.Columns.Add("TranscationAmount");
        //   dt.Columns.Add("CreatedDate");
        //   dt.Columns.Add("AfterDate");

        //   DataRow row = dt.NewRow();

        //row["MLIFees"] = statusDtos[0].MLIFees;
        //row["TranscationAmount"]=statusDtos[0].SanctionedAmount;
        //row["CreatedDate"]=statusDtos[0].CreatedDate;
        //row["AfterDate"] = statusDtos[0].AfterDate;

        //dt.Rows.Add(row);
        dsCustomers.Tables.Add(dt.Copy());
        var datasource = new ReportDataSource("DataSet1", dsCustomers.Tables[0]);

        reportViewer1.LocalReport.DataSources.Clear();

        //RDLC FILE CAN CONTAIN MULTIPLE DATASOURCES WITHOUT
        reportViewer1.LocalReport.DataSources.Add(datasource);


        byte[] bytes = reportViewer1.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamids, out warnings);

        // CODE TO SAVE THE REPORT FILE ON SERVER
        if (File.Exists(Server.MapPath("~/Documents/CGDANNo_" + CGDANNo + ".pdf")))
        {
            File.Delete(Server.MapPath("~/Documents/CGDANNo_" + CGDANNo + ".pdf"));
        }

        FileStream fileStream = new FileStream(Server.MapPath("~/Documents/CGDANNo_" + CGDANNo + ".pdf"), FileMode.Create);

        for (int i = 0; i < bytes.Length; i++)
        {
            fileStream.WriteByte(bytes[i]);
        }
        fileStream.Close();
    }
}
catch (Exception ex)
{
    ex.ToString();
}
ModelRealEstate.DB_RealEstateEntities objdb = new ModelRealEstate.DB_RealEstateEntities();

        var rows = objdb.Tbl_Property.Where(x => x.Adress.Contains(mtxbxRprt.Text)).ToList();
        reportViewer1.LocalReport.ReportPath = ("Report1.rdlc");
        reportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("P2", mtxbxRprt.Text));

        reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", rows));

        reportViewer1.RefreshReport();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM