Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: ASP.NET
Hey
I am working on rdlc reports I have a button on my page and when this is clicked pdf is shown not the report in report viewer.It works fine but when i add parameters to report it works well in report viewer pdf is also generated but when i try to generate pdf without report viewer code gives error: An error ocuured while local report processing.
 
Code given below:
 
 private void CreatePDF(string id, string pid)
        {
            string issalaried = "";
            DataSet DsRep = getemplyeebasicdetail(id, pid);
            DataSet dssalaryDetails = getemplyeesalarydetail(id, pid);
            DataSet dsEmployeeCount = GetEmplyoeeCount(id, pid);
            int rowcount = dssalaryDetails.Tables[0].Rows.Count;
            if (rowcount == 0)
            {
                DataRow dr = dssalaryDetails.Tables[0].NewRow();
                dssalaryDetails.Tables[0].Rows.Add(dr);
            }
            else
            {
                Boolean salaried = false;
                foreach (DataRow dr in dssalaryDetails.Tables[0].Rows)
                {
                    if (dr["issalaried"].ToString() == "Y")
                    {
                        salaried = true;
                    }
                }
                if (salaried == false)
                {
                    issalaried = "N";
                }
                else
                {
                    issalaried = "Y";
                }
            }
            ReportDataSource datasource = new ReportDataSource("DS1", DsRep.Tables[0]);
            ReportDataSource datasourcefamily = new ReportDataSource("DS2", dssalaryDetails.Tables[0]);
            ReportDataSource datasourcecount = new ReportDataSource("DS3", dsEmployeeCount.Tables[0]);
            ReportParameter[] Param = new ReportParameter[1];
            Param[0] = new ReportParameter("Param_IsSalaried", issalaried);
            Warning[] warnings;
            string[] streamIds;
            string mimeType = string.Empty;
            string encoding = string.Empty;
            string extension = string.Empty;
            // Setup the report viewer object and get the array of bytes
            ReportViewer viewer = new ReportViewer();
            viewer.ProcessingMode = ProcessingMode.Local;
            viewer.LocalReport.ReportPath = Server.MapPath("~\\Employee.rdlc");
            //Datasource
            viewer.LocalReport.DataSources.Add(datasource);
            viewer.LocalReport.SetParameters(Param);
            viewer.LocalReport.EnableExternalImages = true;
            byte[] bytes = viewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings);
 
            // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
            Response.Buffer = true;
            Response.Clear();
            Response.ContentType = mimeType;
            Response.AddHeader("content-disposition", "attachment; filename=" + "Employee" + "." + extension);
            Response.BinaryWrite(bytes); // create the file
            Response.Flush(); // send it to the client to download
            //Page settings for PDF File.

        }
 
Posted 21-Jun-12 6:23am
Edited 21-Jun-12 20:39pm
16.6K
v2
Comments
Sandeep Mewara at 21-Jun-12 15:16pm
   
"An error ocuured while local report processing" is not enough to suggest about the issue. You need to share more, may be related code snippet? Look in event log and SSRS logs to see what went wrong and share those.
Deepu05 at 22-Jun-12 1:07am
   
My code is:
 
private void CreatePDF(string id, string pid)
{
string issalaried = "";
DataSet DsRep = getemplyeebasicdetail(id, pid);
DataSet dssalaryDetails = getemplyeesalarydetail(id, pid);
DataSet dsEmployeeCount = GetEmplyoeeCount(id, pid);
int rowcount = dssalaryDetails.Tables[0].Rows.Count;
if (rowcount == 0)
{
DataRow dr = dssalaryDetails.Tables[0].NewRow();
dssalaryDetails.Tables[0].Rows.Add(dr);
}
else
{
Boolean salaried = false;
foreach (DataRow dr in dssalaryDetails.Tables[0].Rows)
{
if (dr["issalaried"].ToString() == "Y")
{
salaried = true;
}
}
if (salaried == false)
{
issalaried = "N";
}
else
{
issalaried = "Y";
}
 
}
ReportDataSource datasource = new ReportDataSource("DS1", DsRep.Tables[0]);
ReportDataSource datasourcefamily = new ReportDataSource("DS2", dssalaryDetails.Tables[0]);
ReportDataSource datasourcecount = new ReportDataSource("DS3", dsEmployeeCount.Tables[0]);
ReportParameter[] Param = new ReportParameter[1];
Param[0] = new ReportParameter("Param_IsSalaried", issalaried);
 
Warning[] warnings;
string[] streamIds;
string mimeType = string.Empty;
string encoding = string.Empty;
string extension = string.Empty;
// Setup the report viewer object and get the array of bytes
ReportViewer viewer = new ReportViewer();
viewer.ProcessingMode = ProcessingMode.Local;
viewer.LocalReport.ReportPath = Server.MapPath("~\\Employee.rdlc");
//Datasource
viewer.LocalReport.DataSources.Add(datasource);
viewer.LocalReport.SetParameters(Param);
viewer.LocalReport.EnableExternalImages = true;
byte[] bytes = viewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings);
 

 
// Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
Response.Buffer = true;
Response.Clear();
Response.ContentType = mimeType;
Response.AddHeader("content-disposition", "attachment; filename=" + "Employee" + "." + extension);
Response.BinaryWrite(bytes); // create the file
Response.Flush(); // send it to the client to download
 
//Page settings for PDF File.
 

}
Deepu05 at 22-Jun-12 1:08am
   
At line viewer.LocalReport.SetParameters(Param); it gives error if i rempve it everything works fine.
rohit24c at 2-Aug-12 3:40am
   
Thats fine when you're using reportViewer but how to save the rdlc files directly as .pdf.
Any suggestions plz

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 718
1 OriginalGriff 420
2 CPallini 385
3 George Jonsson 231
4 Richard Deeming 145
0 OriginalGriff 5,450
1 CPallini 4,500
2 Sergey Alexandrovich Kryukov 4,272
3 George Jonsson 3,057
4 Gihan Liyanage 2,445


Advertise | Privacy | Mobile
Web04 | 2.8.140916.1 | Last Updated 22 Jun 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100