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;
ReportViewer viewer = new ReportViewer();
viewer.ProcessingMode = ProcessingMode.Local;
viewer.LocalReport.ReportPath = Server.MapPath("~\\Employee.rdlc");
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);
Response.Buffer = true;
Response.Clear();
Response.ContentType = mimeType;
Response.AddHeader("content-disposition", "attachment; filename=" + "Employee" + "." + extension);
Response.BinaryWrite(bytes);
Response.Flush();
}