protected void Page_Load(object sender, EventArgs e)
{
if (Request.Params[SERVER] != null)
{
if (!Page.IsPostBack)
{
PerformLogin();
}
//Get query string information and set variables
if (Request.Params[REPORTID] != null)
mReportId = Convert.ToInt64(Request.Params[REPORTID]);
if (Request.Params[FILTERBY] != null)
mFilterByString = Request.Params[FILTERBY].ToString();
if (Request.Params[FILTERFOR] != null)
mFilterForString = Request.Params[FILTERFOR].ToString();
if (Request.Params[SHOWTOOLBAR] != null)
mShowToolBar = Convert.ToBoolean(Request.Params[SHOWTOOLBAR]);
//mReportToolbar.Visible = mShowToolBar;
//Build display report
BuildReport();
}
else
{
mMessageLabel.Text = "Invalid Permissions to view report.";
//mReportToolbar.Visible = false;
mReportViewer.Visible = false;
}
}
private void PerformLogin()
{
//Login as server for viewing rights
LoginCredential credential = new LoginCredential(Request.Params[SERVER].ToString(), Request.Params[SERVER].ToString(), "");
PersistenceManager.DefaultManager.Connect();
PersistenceManager.DefaultManager.Login(credential);
}
/// <summary>
/// Build report based on criteria and report
/// </summary>
private void BuildReport()
{
//Only run if report id exists
if(mReportId != -1 && PersistenceManager.DefaultManager.IsLoggedIn)
{
try
{
//Get the request report
LOC.CEMS.Web.Model.ReportAdapterManager mManager = new LOC.CEMS.Web.Model.ReportAdapterManager();
Report aReport = (Report)(mManager.GetSelectedEntity(mReportId)[0]);
System.IO.MemoryStream stream = new System.IO.MemoryStream();
stream = new System.IO.MemoryStream(aReport.Report);
//Add report stream to report viewer
mReportViewer.Report = (XtraReport)XtraReport.FromStream(stream, true);
//Get datasource
ReportDataSourceEngine engine = new ReportDataSourceEngine(aReport.Query.Query, aReport.PersistenceManager);
DataTable mResultsTable = engine.Run();
//Apply filter to DataTable
//Add DataSource to report
mReportViewer.Report.DataSource = SetFilters(mResultsTable);
//mReportToolbar.Visible = mShowToolBar;
}
catch (System.Exception ex)
{
mMessageLabel.Text = "Error building report. " + ex.Message + "<br><br>Stack Trace:" + ex.StackTrace + "<br><br>Source:" + ex.Source;
mReportViewer.Visible = false;
//mReportToolbar.Visible = false;
}
}
}