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; }
private void BindGenerateFilters(IBNReportTemplate repTemplate, QObject qItem) { tblName.Visible = false; foreach (FilterInfo fi in repTemplate.Filters) { HtmlTableRow row = new HtmlTableRow(); HtmlTableCell cellValue = new HtmlTableCell(); cellValue.Attributes.Add("width", "100%"); QField qField = qItem.Fields[fi.FieldName]; if (qField == null) continue; QDictionary qDict = qItem.GetDictionary(qField); System.Web.UI.UserControl control = null; IDataReader reader = null; if (qDict != null) { control = (System.Web.UI.UserControl)Page.LoadControl("~/Reports/Modules/FilterControls/DictionaryFilter.ascx"); string sqlCommand = qDict.GetSQLQuery(Security.CurrentUser.LanguageId); reader = Report.GetQDictionary(sqlCommand); ((Mediachase.UI.Web.Reports.Modules.DictionaryFilter)control).tdTitle.Attributes.Add("width", "150px"); } else { switch (qField.DataType) { case DbType.Decimal: case DbType.Int32: control = (System.Web.UI.UserControl)Page.LoadControl("~/Reports/Modules/FilterControls/IntFilter.ascx"); ((Mediachase.UI.Web.Reports.Modules.IntFilter)control).tdTitle.Attributes.Add("width", "150px"); break; case DbType.DateTime: case DbType.Date: control = (System.Web.UI.UserControl)Page.LoadControl("~/Reports/Modules/FilterControls/DateFilter.ascx"); ((Mediachase.UI.Web.Reports.Modules.DateFilter)control).tdTitle.Attributes.Add("width", "150px"); break; case DbType.String: control = (System.Web.UI.UserControl)Page.LoadControl("~/Reports/Modules/FilterControls/StringFilter.ascx"); ((Mediachase.UI.Web.Reports.Modules.StringFilter)control).tdTitle.Attributes.Add("width", "150px"); break; case DbType.Time: control = (System.Web.UI.UserControl)Page.LoadControl("~/Reports/Modules/FilterControls/TimeFilter.ascx"); ((Mediachase.UI.Web.Reports.Modules.TimeFilter)control).tdTitle.Attributes.Add("width", "150px"); break; } } if (control != null) { cellValue.Controls.Add(control); } row.Cells.Add(cellValue); tblFiltersValues.Rows.Add(row); if (control != null) { ((IFilterControl)control).InitControl(reader); ((IFilterControl)control).FilterField = qField.Name; ((IFilterControl)control).FilterTitle = qField.FriendlyName; if (fi.Values != null) { switch (((IFilterControl)control).FilterType) { case "Dictionary": ArrayList alValue = new ArrayList(); foreach (string _s in fi.Values) alValue.Add(_s); ((IFilterControl)control).Value = alValue.ToArray(typeof(string)); break; case "Int": if (fi.Values.Count > 0) { IntFilterValue ifValue = new IntFilterValue(); ifValue.TypeValue = fi.Values[0]; ifValue.FirstValue = fi.Values[1]; ifValue.SecondValue = fi.Values[2]; ((IFilterControl)control).Value = ifValue; } break; case "DateTime": if (fi.Values.Count > 0) { DateFilterValue dtValues = new DateFilterValue(); dtValues.TypeValue = fi.Values[0]; dtValues.FirstValue = fi.Values[1]; dtValues.SecondValue = fi.Values[2]; ((IFilterControl)control).Value = dtValues; } break; case "String": if (fi.Values.Count > 0) ((IFilterControl)control).Value = fi.Values[0]; break; case "Time": if (fi.Values.Count > 0) { TimeFilterValue tfValue = new TimeFilterValue(); tfValue.TypeValue = fi.Values[0]; tfValue.FirstValue = fi.Values[1]; tfValue.SecondValue = fi.Values[2]; ((IFilterControl)control).Value = tfValue; } break; } } else if (fi.Values == null) ((IFilterControl)control).Value = null; } } if (repTemplate.Filters.Count == 0) { XmlDocument doc = GetReportDoc(repTemplate); int iReportId = Report.CreateReportByTemplate(TemplateId, doc.InnerXml); Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "OpenWindow('../Reports/XMLReportOutput.aspx?ReportId=" + iReportId.ToString() + "',screen.width,screen.height,true);window.location.href='../Reports/ReportHistory.aspx?TemplateId=" + TemplateId.ToString() + "';", true); } }