Пример #1
0
        internal QMaker(QObject OwnerObject, string ReportName, string KeyUniquePrefix)
        {
            _OwnerObject = OwnerObject;

            _ReportName = ReportName;
            _KeyUniquePrefix = KeyUniquePrefix;
        }
Пример #2
0
        public QMaker(QObject OwnerObject, bool AddExObjects)
        {
            _OwnerObject = OwnerObject;

            _ReportName = OwnerObject.OwnerTable;

            _AddExObjects = AddExObjects;
        }
Пример #3
0
 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;
         }
     }
 }
Пример #4
0
 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>,&nbsp;";
                         }
                     }
                 }
                 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 += "&nbsp;=<font color='red'>&nbsp;" + fi.Values[1] + "</font><br>";
                                 break;
                             case "1":
                                 retval += "&nbsp;&gt;<font color='red'>&nbsp;" + fi.Values[1] + "</font><br>";
                                 break;
                             case "2":
                                 retval += "&nbsp;&lt;<font color='red'>&nbsp;" + fi.Values[1] + "</font><br>";
                                 break;
                             case "3":
                                 retval += "&nbsp;<font color='red'>" + LocRM.GetString("tBetween") + "&nbsp;" + fi.Values[1] + "&nbsp;-&nbsp;" + 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 += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tToday") + "</font><br>";
                                 break;
                             case "2":
                                 retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tYesterday") + "</font><br>";
                                 break;
                             case "3":
                                 retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tThisWeek") + "</font><br>";
                                 break;
                             case "4":
                                 retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tLastWeek") + "</font><br>";
                                 break;
                             case "5":
                                 retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tThisMonth") + "</font><br>";
                                 break;
                             case "6":
                                 retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tLastMonth") + "</font><br>";
                                 break;
                             case "7":
                                 retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tThisYear") + "</font><br>";
                                 break;
                             case "8":
                                 retval += "&nbsp;=&nbsp;<font color='red'>" + LocRM.GetString("tLastYear") + "</font><br>";
                                 break;
                             case "9":
                                 if (DateTime.Parse(fi.Values[1]) == DateTime.MinValue)
                                 {
                                     retval += "&nbsp;<font color='red'>" + LocRM.GetString("tLess") + "&nbsp;" + DateTime.Parse(fi.Values[2]).ToShortDateString() + "</font><br>";
                                 }
                                 else if (DateTime.Parse(fi.Values[2]) >= DateTime.MaxValue.Date)
                                 {
                                     retval += "&nbsp;<font color='red'>" + LocRM.GetString("tGreater") + "&nbsp;" + DateTime.Parse(fi.Values[1]).ToShortDateString() + "</font><br>";
                                 }
                                 else
                                     retval += "&nbsp;<font color='red'>" + LocRM.GetString("tBetween") + "&nbsp;" + DateTime.Parse(fi.Values[1]).ToShortDateString() + "&nbsp;-&nbsp;" + DateTime.Parse(fi.Values[2]).ToShortDateString() + "</font><br>";
                                 break;
                         }
                     }
                     break;
                 case DbType.String:
                     if (fi.Values.Count > 0)
                         retval += qTemp.FriendlyName + "&nbsp;=&nbsp;<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 += "&nbsp;=<font color='red'>&nbsp;" + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "</font><br>";
                                 break;
                             case "1":
                                 retval += "&nbsp;&gt;<font color='red'>&nbsp;" + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "</font><br>";
                                 break;
                             case "2":
                                 retval += "&nbsp;&lt;<font color='red'>&nbsp;" + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "</font><br>";
                                 break;
                             case "3":
                                 retval += "&nbsp;<font color='red'>" + LocRM.GetString("tBetween") + "&nbsp;" + CommonHelper.GetHours(int.Parse(fi.Values[1])) + "&nbsp;-&nbsp;" + CommonHelper.GetHours(int.Parse(fi.Values[2])) + "</font><br>";
                                 break;
                         }
                     }
                     else
                         retval += "<br>";
                     break;
             }
         }
     }
     return retval;
 }
Пример #5
0
        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;
                }
            }
        }
Пример #6
0
 public static void LoadMetaField(QObject qObject, int metaClassId)
 {
     LoadMetaField(qObject, MetaClass.Load(metaClassId));
 }
Пример #7
0
 public static void LoadMetaField(QObject qObject, string metaClassName)
 {
     LoadMetaField(qObject, MetaClass.Load(metaClassName));
 }
Пример #8
0
        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);
            }
        }
Пример #9
0
        public QMaker(QObject OwnerObject)
        {
            _OwnerObject = OwnerObject;

            _ReportName = OwnerObject.OwnerTable;
        }