private string GetQueryField(string entityName, DataAreaField dataField) { string alias = this.GetFieldAlias(entityName); string fieldName = dataField.Name; if (!string.IsNullOrEmpty(alias)) { fieldName = alias + "." + fieldName; } else { fieldName = entityName + "." + fieldName; } switch (dataField.SummaryItemType) { case SummaryItemType.Average: return(string.Format("AVG({0})", fieldName)); case SummaryItemType.Count: return(string.Format("COUNT({0})", fieldName)); case SummaryItemType.Max: return(string.Format("MAX({0})", fieldName)); case SummaryItemType.Min: return(string.Format("MIN({0})", fieldName)); case SummaryItemType.Sum: return(string.Format("SUM({0})", fieldName)); case SummaryItemType.None: default: return(fieldName); } }
/// <summary> /// 根据Grid得到动态聚组的最终结果,用来传递到服务端 /// </summary> /// <param name="dyUIColumns">用来保存Grid的当前状态</param> /// <returns>动态聚组设定,用来传递到服务端的</returns> public MB.Util.Model.DynamicGroupSetting GetDynamicGroupSetting(ref List <DynamicGroupUIColumns> dyUIColumns) { //用到的全局变量 DynamicGroupCfgInfo dyConfigInfo = _DynamicCfgInfo; GridControlEx grid = _GirdControl; DynamicGroupSetting setting = new DynamicGroupSetting(); //设置实体 setting.EntityInfos.MainEntity = dyConfigInfo.MainEntityInfo; setting.EntityInfos.DetailEntity = dyConfigInfo.DetailEntityInfo; //设置关系 if (_DynamicCfgInfo.RelationInfo != null) { setting.RelationInfos = _DynamicCfgInfo.RelationInfo.Values.ToList <DynamicGroupRelationInfo>(); } BindingList <DynamicGroupUIColumns> uiColList = grid.DataSource as BindingList <DynamicGroupUIColumns>; foreach (DynamicGroupUIColumns column in uiColList) { dyUIColumns.Add(column); if (!column.SELECTED) { continue; } string entityName = column.ENTITY_NAME; string colName = column.COLUMN_NAME; if (string.IsNullOrEmpty(column.AGG_TYPE)) { //对分组列做处理 if (setting.GroupFields.ContainsKey(entityName)) { setting.GroupFields[entityName].Add(colName); } else { var list = new List <string>(); list.Add(colName); setting.GroupFields.Add(entityName, list); } } else { //对聚组列做处理 DataAreaField dataField = new DataAreaField(); dataField.Name = colName; dataField.Description = column.COLUMN_DESCRIPTION; dataField.SummaryItemType = (MB.Util.Model.SummaryItemType)Enum.Parse(typeof(MB.Util.Model.SummaryItemType), column.AGG_TYPE.ToString(), true); if (string.Compare(dyConfigInfo.MainEntityInfo.Name, entityName) == 0) { dataField.DataType = dyConfigInfo.MainEntityColInfo[colName].DataType; dataField.EntityName = entityName; dataField.EntityDescription = dyConfigInfo.MainEntityInfo.Description; if (!string.IsNullOrEmpty(column.AGG_CONDITION_OPERATOR) && !string.IsNullOrEmpty(column.AGG_VALUE)) { dataField.ConditionOperator = (DynamicGroupConditionOperator)Enum.Parse(typeof(DynamicGroupConditionOperator), column.AGG_CONDITION_OPERATOR); dataField.ConditionValue = column.AGG_VALUE; } } else { if (dyConfigInfo.DetailEntityInfo != null) { dataField.DataType = dyConfigInfo.DetailEntityColInfo[colName].DataType; dataField.EntityName = entityName; dataField.EntityDescription = dyConfigInfo.DetailEntityInfo.Description; if (!string.IsNullOrEmpty(column.AGG_CONDITION_OPERATOR) && !string.IsNullOrEmpty(column.AGG_VALUE)) { dataField.ConditionOperator = (DynamicGroupConditionOperator)Enum.Parse(typeof(DynamicGroupConditionOperator), column.AGG_CONDITION_OPERATOR); dataField.ConditionValue = column.AGG_VALUE; } } } if (setting.DataAreaFields.ContainsKey(entityName)) { setting.DataAreaFields[entityName].Add(dataField); } else { var list = new List <DataAreaField>(); list.Add(dataField); setting.DataAreaFields.Add(entityName, list); } } } return(setting); }