//Button click to show report
System.Web.HttpContext.Current.Session["ReportName"] = "YearlyLeaveStatusReport.rpt";
string CID = ddlCompany.SelectedValue;
string DID = ddlDepartment.SelectedValue;
int year = Convert.ToInt32(txtYear.Text);
LeaveRepository leaveRepository = new LeaveRepository();
DataSet ds = new DataSet();
ds = leaveRepository.EmployeeYearlyLeaveStatusReport(CID, DID, year);
ds.WriteXml("D:/YearlyLeaveStatus.xml");
System.Web.HttpContext.Current.Session["rptSource"] = ds;
ClientScriptManager cScript = Page.ClientScript;
Type cType = this.GetType();
string script = @"<script language=javascript>window.open('frmReportViewer.aspx')</script>";
if (!cScript.IsClientScriptBlockRegistered(cType, "ViewReport"))
cScript.RegisterClientScriptBlock(cType, "ViewReport", script);
and Report viewer
bool isValid = true;
string strReportName = System.Web.HttpContext.Current.Session["ReportName"].ToString();
var rptSource = System.Web.HttpContext.Current.Session["rptSource"];
if (string.IsNullOrEmpty(strReportName))
{
isValid = false;
}
if (isValid)
{
ReportDocument rd = new ReportDocument();
string strRptPath = System.Web.HttpContext.Current.Server.MapPath("~/") + "HR/Attendance/Reports/Attendance\\" + strReportName;
rd.Load(strRptPath);
if (rptSource != null && rptSource.GetType().ToString() != "System.String")
rd.SetDataSource(rptSource);
rd.ExportToHttpResponse(ExportFormatType.PortableDocFormat, System.Web.HttpContext.Current.Response, false, "crReport");
Session["ReportName"] = null;
Session["rptSource"] = null;
}
else
{
lblMessage.Text = "<H2>Nothing Found; No Report name found</H2>";
}
}
catch (Exception ex)
{
lblMessage.Text = ex.ToString();
}
An exeption catch The report has no table.pls tell me how to xml file data show on crystal report.