protected void Page_Load(object sender, System.EventArgs e) { UtilHelper.RegisterCssStyleSheet(Page, "~/Styles/IbnFramework/windows.css"); UtilHelper.RegisterCssStyleSheet(Page, "~/Styles/IbnFramework/Theme.css"); UtilHelper.RegisterCssStyleSheet(Page, "~/Styles/IbnFramework/ibn.css"); UtilHelper.RegisterScript(Page, "~/Scripts/browser.js"); UtilHelper.RegisterScript(Page, "~/Scripts/buttons.js"); if (Request["Refresh"] != null && Request["Refresh"] == "1") { Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), string.Format("try {{window.moveTo(0,0);window.resizeTo(screen.availWidth,screen.availHeight);window.opener.top.frames['right'].location.href='{0}';}}", this.ResolveUrl("~/Apps/ReportManagement/Pages/UserReport.aspx")) + "catch (e){}", true); } if (!Page.IsPostBack) { if (Request["Mode"] != null && bool.Parse(Request["Mode"].ToString())) { int iTemplateId = -1; using (IDataReader reader = Report.GetReport(ReportId)) { if (reader.Read()) { iTemplateId = (int)reader["TemplateId"]; } } if (iTemplateId > 0) { using (IDataReader rdr = Report.GetReportTemplate(iTemplateId)) { if (rdr.Read()) { txtTemplateTitle.Text = rdr["Name"].ToString(); } } } // btnSaveVis.Visible = true; --[2006/01/17] btnSaveVis.Visible = false; } else { btnSaveVis.Visible = false; } } if (ReportId == -1) { return; } if (!Page.IsPostBack && (Request["Export"] == null || Request["Export"] != "2")) { byte[] bit_data = null; using (IDataReader reader_BLOB = Report.GetReportBinaryData(ReportId)) { if (reader_BLOB.Read()) { bit_data = (byte[])reader_BLOB["ReportData"]; } } XmlDocument doc = new XmlDocument(); doc.InnerXml = System.Text.Encoding.UTF8.GetString(bit_data); IBNReportTemplate repTemplate = null; using (IDataReader reader = Report.GetReport(ReportId)) { if (reader.Read()) { _header.ReportCreated = (DateTime)reader["ReportCreated"]; _header.ReportCreator = CommonHelper.GetUserStatusPureName((int)reader["ReportCreator"]); XmlDocument temp = new XmlDocument(); temp.InnerXml = "<IBNReportTemplate>" + doc.SelectSingleNode("Report/IBNReportTemplate").InnerXml + "</IBNReportTemplate>"; repTemplate = new IBNReportTemplate(temp); _header.Title = HttpUtility.HtmlDecode(repTemplate.Name); } } #region Filters QObject qItem = null; switch (repTemplate.ObjectName) { case "Incident": //Incident qItem = new QIncident(); break; case "Project": //Project qItem = new QProject(); break; case "ToDo": //ToDo`s qItem = new QToDo(); break; case "Event": //Calendar Entries qItem = new QCalendarEntries(); break; case "Document": //Documents qItem = new QDocument(); break; case "Directory": //Users qItem = new QDirectory(); break; case "Task": //Tasks qItem = new QTask(); break; case "Portfolio": //Portfolios qItem = new QPortfolio(); break; default: break; } _header.Filter = MakeFilterText(repTemplate, qItem); #endregion _header.BtnPrintVisible = false; bool ShowEmpty = repTemplate.ShowEmptyGroup; int GroupCount = repTemplate.Groups.Count; string ViewType = repTemplate.ViewType; string sPath = ""; if (GroupCount == 0) { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupWithout.xslt"; } else if (GroupCount == 1 && ShowEmpty) { if (ViewType == "0") { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOne.xslt"; } else { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOneCollapse.xslt"; } } else if (GroupCount == 1 && !ShowEmpty) { if (ViewType == "0") { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOneNoEmpty.xslt"; } else { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOneNoEmptyCollapse.xslt"; } } else if (GroupCount == 2 && ShowEmpty) { if (ViewType == "0") { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwo.xslt"; } else { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwoCollapse.xslt"; } } else if (GroupCount == 2 && !ShowEmpty) { if (ViewType == "0") { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwoNoEmpty.xslt"; } else { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwoNoEmptyCollapse.xslt"; } } XslCompiledTransform _transform = new XslCompiledTransform(); XsltSettings set = new XsltSettings(true, true); _transform.Load(sPath, set, null); StringWriter sw = new StringWriter(); XmlTextWriter w = new XmlTextWriter(sw); _transform.Transform(doc, w); w.Close(); lblXML.Text = HttpUtility.HtmlDecode(sw.ToString()); } if (Request["Export"] != null && Request["Export"] == "2") { ExportXML(); } if (Request["Export"] != null && Request["Export"] == "1") { ExportExcel(); } btnSave.Text = LocRM.GetString("tSave"); btnSaveVis.Value = LocRM.GetString("tSaveAsTemplate"); btnExcel.Text = LocRM.GetString("Export"); btnXML.Text = LocRM.GetString("XMLExport"); lgdSaveTemplate.InnerText = LocRM.GetString("tSaveTemplate"); cbSaveResult.Text = LocRM.GetString("tSaveResult"); cbOnlyForMe.Text = LocRM.GetString("tOnlyForMe"); }
protected string MakeFilterText(IBNReportTemplate repTemp, QObject qItem) { string retval = ""; foreach (FilterInfo fi in repTemp.Filters) { QField qTemp = qItem.Fields[fi.FieldName]; if (qTemp == null) { continue; } QDictionary qDTemp = qItem.GetDictionary(qTemp); if (qDTemp != null) { if (fi.Values.Count > 0) { retval += qTemp.FriendlyName + " = "; string sqlCommand = qDTemp.GetSQLQuery(Security.CurrentUser.LanguageId); using (IDataReader reader = Report.GetQDictionary(sqlCommand)) { ArrayList alDicVal = new ArrayList(); foreach (string _s in fi.Values) { alDicVal.Add(_s); } while (reader.Read()) { if (alDicVal.Contains(reader["Id"].ToString())) { retval += "<font color='red'>" + CommonHelper.GetResFileString(reader["Value"].ToString()) + "</font>, "; } } } retval = retval.Remove(retval.Length - 7, 7) + "<br>"; } } else { switch (qTemp.DataType) { case DbType.Decimal: case DbType.Int32: if (fi.Values.Count > 0) { retval += qTemp.FriendlyName; switch (fi.Values[0]) { case "0": retval += " =<font color='red'> " + fi.Values[1] + "</font><br>"; break; case "1": retval += " ><font color='red'> " + fi.Values[1] + "</font><br>"; break; case "2": retval += " <<font color='red'> " + fi.Values[1] + "</font><br>"; break; case "3": retval += " <font color='red'>" + LocRM.GetString("tBetween") + " " + fi.Values[1] + " - " + fi.Values[2] + "</font><br>"; break; } } break; case DbType.DateTime: case DbType.Date: if (fi.Values.Count > 0) { retval += qTemp.FriendlyName; switch (fi.Values[0]) { case "1": retval += " = <font color='red'>" + LocRM.GetString("tToday") + "</font><br>"; break; case "2": retval += " = <font color='red'>" + LocRM.GetString("tYesterday") + "</font><br>"; break; case "3": retval += " = <font color='red'>" + LocRM.GetString("tThisWeek") + "</font><br>"; break; case "4": retval += " = <font color='red'>" + LocRM.GetString("tLastWeek") + "</font><br>"; break; case "5": retval += " = <font color='red'>" + LocRM.GetString("tThisMonth") + "</font><br>"; break; case "6": retval += " = <font color='red'>" + LocRM.GetString("tLastMonth") + "</font><br>"; break; case "7": retval += " = <font color='red'>" + LocRM.GetString("tThisYear") + "</font><br>"; break; case "8": retval += " = <font color='red'>" + LocRM.GetString("tLastYear") + "</font><br>"; break; case "9": if (DateTime.Parse(fi.Values[1]) == DateTime.MinValue) { retval += " <font color='red'>" + LocRM.GetString("tLess") + " " + DateTime.Parse(fi.Values[2]).ToShortDateString() + "</font><br>"; } else if (DateTime.Parse(fi.Values[2]) >= DateTime.MaxValue.Date) { retval += " <font color='red'>" + LocRM.GetString("tGreater") + " " + DateTime.Parse(fi.Values[1]).ToShortDateString() + "</font><br>"; } else { retval += " <font color='red'>" + LocRM.GetString("tBetween") + " " + DateTime.Parse(fi.Values[1]).ToShortDateString() + " - " + DateTime.Parse(fi.Values[2]).ToShortDateString() + "</font><br>"; } break; } } break; case DbType.String: if (fi.Values.Count > 0) { retval += qTemp.FriendlyName + " = <font color='red'>" + fi.Values[0] + "</font><br>"; } break; case DbType.Time: retval += qTemp.FriendlyName; if (fi.Values.Count > 0) { switch (fi.Values[0]) { case "0": retval += " =<font color='red'> " + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "</font><br>"; break; case "1": retval += " ><font color='red'> " + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "</font><br>"; break; case "2": retval += " <<font color='red'> " + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "</font><br>"; break; case "3": retval += " <font color='red'>" + LocRM.GetString("tBetween") + " " + CommonHelper.GetHours(int.Parse(fi.Values[1])) + " - " + CommonHelper.GetHours(int.Parse(fi.Values[2])) + "</font><br>"; break; } } else { retval += "<br>"; } break; } } } return(retval); }