internal QMaker(QObject OwnerObject, string ReportName, string KeyUniquePrefix) { _OwnerObject = OwnerObject; _ReportName = ReportName; _KeyUniquePrefix = KeyUniquePrefix; }
public QMaker(QObject OwnerObject, bool AddExObjects) { _OwnerObject = OwnerObject; _ReportName = OwnerObject.OwnerTable; _AddExObjects = AddExObjects; }
private void BindQObject() { if (rbReportItem.SelectedItem != null) { switch (rbReportItem.SelectedValue) { case "0": //Incident _qItem = new QIncident(); break; case "1": //Project _qItem = new QProject(); break; case "2": //Todo`s _qItem = new QToDo(); break; case "3": //Events _qItem = new QCalendarEntries(); break; case "4": //Documents _qItem = new QDocument(); break; case "5": //Users _qItem = new QDirectory(); break; case "6": //Tasks _qItem = new QTask(); break; case "7": //Portfolios _qItem = new QPortfolio(); break; } } }
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; }
public static void LoadMetaField(QObject qObject, MetaClass currentClass) { foreach (MetaField field in currentClass.UserMetaFields) { if (qObject.Fields[string.Format("{1}", qObject.OwnerTable, field.Name)] != null) continue; switch (field.DataType) { case MetaDataType.DictionaryMultivalue: case MetaDataType.EnumMultivalue: QField MFieldValue = new QField(string.Format("{1}", qObject.OwnerTable, field.Name), field.FriendlyName, "Value", DbType.String, QFieldUsingType.Field | QFieldUsingType.Grouping | QFieldUsingType.Filter, new QFieldJoinRelation[]{ new QFieldJoinRelation(qObject.OwnerTable,currentClass.TableName,qObject.KeyField.DBName,"ObjectId"), new QFieldJoinRelation(currentClass.TableName,"MetaMultivalueDictionary",field.Name,"MetaKey"), new QFieldJoinRelation("MetaMultivalueDictionary","MetaDictionary","MetaDictionaryId","MetaDictionaryId",new SimpleFilterCondition(new QField("MetaFieldId"),field.Id.ToString(),SimpleFilterType.Equal)) } ); QField MFieldId = new QField(string.Format("{1}Id", qObject.OwnerTable, field.Name), field.FriendlyName, "MetaDictionaryId", DbType.String, QFieldUsingType.Abstract, new QFieldJoinRelation[]{ new QFieldJoinRelation(qObject.OwnerTable,currentClass.TableName,qObject.KeyField.DBName,"ObjectId"), new QFieldJoinRelation(currentClass.TableName,"MetaMultivalueDictionary",field.Name,"MetaKey"), new QFieldJoinRelation("MetaMultivalueDictionary","MetaDictionary","MetaDictionaryId","MetaDictionaryId",new SimpleFilterCondition(new QField("MetaFieldId"),field.Id.ToString(),SimpleFilterType.Equal)) } ); qObject.Fields.Add(MFieldValue); qObject.Fields.Add(MFieldId); qObject.Dictionary.Add(new QDictionary(MFieldId, MFieldValue, string.Format("SELECT MetaDictionaryId as Id, Value FROM MetaDictionary WHERE MetaFieldId = {0}", field.Id))); break; case MetaDataType.DictionarySingleValue: case MetaDataType.EnumSingleValue: QField SFieldValue = new QField(string.Format("{1}", qObject.OwnerTable, field.Name), field.FriendlyName, "Value", DbType.String, QFieldUsingType.Field | QFieldUsingType.Grouping | QFieldUsingType.Filter | QFieldUsingType.Sort, new QFieldJoinRelation[]{ new QFieldJoinRelation(qObject.OwnerTable,currentClass.TableName,qObject.KeyField.DBName,"ObjectId"), new QFieldJoinRelation(currentClass.TableName,"MetaDictionary",field.Name,"MetaDictionaryId",new SimpleFilterCondition(new QField("MetaFieldId"),field.Id.ToString(),SimpleFilterType.Equal) ) } ); QField SFieldId = new QField(string.Format("{1}Id", qObject.OwnerTable, field.Name), field.FriendlyName, "MetaDictionaryId", DbType.String, QFieldUsingType.Abstract, new QFieldJoinRelation[]{ new QFieldJoinRelation(qObject.OwnerTable,currentClass.TableName,qObject.KeyField.DBName,"ObjectId"), new QFieldJoinRelation(currentClass.TableName,"MetaDictionary",field.Name,"MetaDictionaryId",new SimpleFilterCondition(new QField("MetaFieldId"),field.Id.ToString(),SimpleFilterType.Equal) ) } ); qObject.Fields.Add(SFieldValue); qObject.Fields.Add(SFieldId); qObject.Dictionary.Add(new QDictionary(SFieldId, SFieldValue, string.Format("SELECT MetaDictionaryId as Id, Value FROM MetaDictionary WHERE MetaFieldId = {0}", field.Id))); break; case MetaDataType.Image: case MetaDataType.Binary: // Ignory [12/8/2004] break; case MetaDataType.File: case MetaDataType.ImageFile: qObject.Fields.Add(new QField(string.Format("{1}", qObject.OwnerTable, field.Name), field.FriendlyName, "FileName", DbType.String, QFieldUsingType.Field | QFieldUsingType.Grouping, new QFieldJoinRelation[]{ new QFieldJoinRelation(qObject.OwnerTable,currentClass.TableName,qObject.KeyField.DBName,"ObjectId"), new QFieldJoinRelation(currentClass.TableName,"MetaFileValue",field.Name,"MetaKey") } )); break; case MetaDataType.LongHtmlString: case MetaDataType.LongString: qObject.Fields.Add(new QField(string.Format("{1}", qObject.OwnerTable, field.Name), field.FriendlyName, field.Name, MetaDataType2DbType(field.DataType), QFieldUsingType.Field | QFieldUsingType.Grouping | QFieldUsingType.Sort, new QFieldJoinRelation(qObject.OwnerTable, currentClass.TableName, qObject.KeyField.DBName, "ObjectId")) ); break; default: qObject.Fields.Add(new QField(string.Format("{1}", qObject.OwnerTable, field.Name), field.FriendlyName, field.Name, MetaDataType2DbType(field.DataType), QFieldUsingType.Field | QFieldUsingType.Grouping | QFieldUsingType.Filter | QFieldUsingType.Sort, new QFieldJoinRelation(qObject.OwnerTable, currentClass.TableName, qObject.KeyField.DBName, "ObjectId")) ); break; } } }
public static void LoadMetaField(QObject qObject, int metaClassId) { LoadMetaField(qObject, MetaClass.Load(metaClassId)); }
public static void LoadMetaField(QObject qObject, string metaClassName) { LoadMetaField(qObject, MetaClass.Load(metaClassName)); }
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); } }
public QMaker(QObject OwnerObject) { _OwnerObject = OwnerObject; _ReportName = OwnerObject.OwnerTable; }