コード例 #1
0
        /// <summary>
        ///		Añade un campo de clave primaria a la consulta
        /// </summary>
        internal void AddPrimaryKey(BaseColumnRequestModel requestColumn, string column, bool visible)
        {
            QueryFieldModel field = new QueryFieldModel(this, true, FromAlias, column, BaseColumnRequestModel.SortOrder.Undefined,
                                                        ExpressionColumnRequestModel.AggregationType.NoAggregated, visible);

            // Añade los filtros
            if (requestColumn != null)
            {
                field.FiltersWhere.AddRange(GetFilters(requestColumn.FiltersWhere));
            }
            // Añade el campo a la colección de campos de la consulta
            Fields.Add(field);
        }
コード例 #2
0
 /// <summary>
 ///		Asigna las propiedades adicionales a una columna solicitada: ordenación, filtros, etc...
 /// </summary>
 private void AssignProperties(BaseColumnRequestModel columnRequest, NodeColumnViewModel node, bool withHaving)
 {
     // Indica si es visible
     columnRequest.Visible = node.IsChecked;
     // Añade el filtro Where
     columnRequest.FiltersWhere.AddRange(GetFilters(node.FilterWhere));
     // Añade la ordenación y el filtro HAVING en su caso
     if (node.IsChecked)
     {
         // Añade la ordenación
         columnRequest.OrderBy = node.SortOrder;
         // Añade el filtro para la cláusula HAVING
         if (withHaving)
         {
             columnRequest.FiltersHaving.AddRange(GetFilters(node.FilterHaving));
         }
     }
 }
コード例 #3
0
        /// <summary>
        ///		Añade un campo a la consulta
        /// </summary>
        internal void AddColumn(string column, ExpressionColumnRequestModel.AggregationType aggregatedBy, BaseColumnRequestModel requestColumn)
        {
            QueryFieldModel field = GetQueryField(column, aggregatedBy, requestColumn);

            // Añade los filtros
            field.FiltersWhere.AddRange(GetFilters(requestColumn.FiltersWhere));
            field.FilterHaving.AddRange(GetFilters(requestColumn.FiltersHaving));
            // Añade la columna a la consulta
            Fields.Add(field);
        }
コード例 #4
0
 /// <summary>
 ///		Añade un campo a la consulta
 /// </summary>
 internal void AddColumn(string column, BaseColumnRequestModel requestColumn)
 {
     AddColumn(column, ExpressionColumnRequestModel.AggregationType.NoAggregated, requestColumn);
 }
コード例 #5
0
        /// <summary>
        ///		Obtiene el campo de la consulta
        /// </summary>
        private QueryFieldModel GetQueryField(string columnId, ExpressionColumnRequestModel.AggregationType aggregatedBy, BaseColumnRequestModel requestColumn)
        {
            QueryFieldModel field = Fields.FirstOrDefault(item => item.Field.Equals(columnId, StringComparison.CurrentCultureIgnoreCase));

            // Si no existía, lo añade
            if (field == null)
            {
                field = new QueryFieldModel(this, false, FromAlias, columnId, requestColumn.OrderBy, aggregatedBy, requestColumn.Visible);
            }
            // Devuelve el campo
            return(field);
        }