Beispiel #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Query"/> class.
 /// </summary>
 /// <param name="rootTreeItem">
 /// The root tree item.
 /// </param>
 /// <param name="isForign">
 /// if set to <c>true</c> [foreign root].
 /// </param>
 public Query(QueryTreeItem rootTreeItem, bool isForign)
 {
     this.RootTreeItem       = rootTreeItem;
     this.UseVirtualLinks    = rootTreeItem.UseVirtualLinks;
     this.IgnoreLookupOnRoot = rootTreeItem.IgnoreLookupRows;
     this.sortFields         = null;
     this.MaxResultRowCount  = this.SkipResultRowCount = 0;
     this.crmDatabase        = rootTreeItem.CrmDatabase;
     this.CollationName      = null;
     this.foreignRoot        = isForign;
 }
Beispiel #2
0
        /// <summary>
        /// Adds the sort field.
        /// </summary>
        /// <param name="queryTreeItem">
        /// The query tree item.
        /// </param>
        /// <param name="fieldId">
        /// The field identifier.
        /// </param>
        /// <param name="descending">
        /// if set to <c>true</c> [descending].
        /// </param>
        public void AddSortField(QueryTreeItem queryTreeItem, int fieldId, bool descending)
        {
            var sortField = new QuerySortField(queryTreeItem, fieldId, descending);

            if (this.sortFields == null)
            {
                this.sortFields = new List <QuerySortField>();
            }

            this.sortFields.Add(sortField);
        }
Beispiel #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="QuerySortField"/> class.
        /// </summary>
        /// <param name="treeItem">
        /// The tree item.
        /// </param>
        /// <param name="fieldIdentifier">
        /// The field identifier.
        /// </param>
        /// <param name="isDescending">
        /// if set to <c>true</c> [is descending].
        /// </param>
        public QuerySortField(QueryTreeItem treeItem, int fieldIdentifier, bool isDescending)
        {
            this.queryTreeItem = treeItem;
            this.fieldId       = fieldIdentifier;
            this.IsDescending  = isDescending;

            this.freeColumnNames = true;

            var fieldInfo = this.queryTreeItem.GetFieldInfo(this.fieldId);

            if (fieldInfo == null)
            {
                return;
            }

            switch (fieldInfo.FieldType)
            {
            case 'K':
            case 'X':
                this.InitializeCatSorting(fieldInfo);
                break;
            }
        }
Beispiel #4
0
        /// <summary>
        /// Addtoes the parent item CRM database options.
        /// </summary>
        /// <param name="parentItem">
        /// The parent item.
        /// </param>
        /// <param name="crmDatabase">
        /// The CRM database.
        /// </param>
        /// <param name="options">
        /// The options.
        /// </param>
        /// <returns>
        /// The <see cref="QueryTreeItem"/>.
        /// </returns>
        public QueryTreeItem AddtoParentItemCrmDatabaseOptions(QueryTreeItem parentItem, CRMDatabase crmDatabase, int options)
        {
            if (!this._cdataInitialized)
            {
                this.InitCData(crmDatabase);
            }

            if (this._recordTemplate == null)
            {
                return(null);
            }

            var queryTreeItem = new QueryTreeItem((RecordTemplate)this._recordTemplate, this._linkId);

            if (this.IgnoreLookup)
            {
                queryTreeItem.SetIgnoreLookupRows(true);
            }

            this._queryTreeItem = queryTreeItem;
            if (this.Condition != null)
            {
                queryTreeItem.AddCondition(this.Condition.CreateQueryConditionOptions(crmDatabase, options));
            }

            var count = this.subTables?.Count;

            for (int i = 0; i < count; i++)
            {
                this.subTables[i].AddtoParentItemCrmDatabaseOptions(this._queryTreeItem, crmDatabase, options);
            }

            parentItem?.AddSubNode(this.ParentRelation, queryTreeItem);

            return(queryTreeItem);
        }
Beispiel #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SubQuery"/> class.
 /// </summary>
 /// <param name="root">
 /// The root.
 /// </param>
 /// <param name="parent">
 /// The parent.
 /// </param>
 public SubQuery(QueryTreeItem root, QueryTreeItem parent)
     : base(root, true)
 {
     this.parent = parent;
 }
Beispiel #6
0
 /// <summary>
 /// Adds the sub node.
 /// </summary>
 /// <param name="relation">
 /// The relation.
 /// </param>
 /// <param name="subNode">
 /// The sub node.
 /// </param>
 public void AddSubNode(string relation, QueryTreeItem subNode)
 {
     subNode.SetUseVirtualLinks(this.UseVirtualLinks);
     this.RootTreeItem.AddSubNode(relation, subNode);
 }