public XtraForm2(BindingList <DataStore> list) { this.list = list; InitializeComponent( ); { this.dataStoreTreeList.OptionsView.ShowSummaryFooter = true; this.dataStoreTreeList.OptionsMenu.ShowConditionalFormattingItem = true; this.dataStoreTreeList.OptionsFind.AlwaysVisible = true; this.dataStoreTreeList.OptionsView.HeaderFilterButtonShowMode = DevExpress.XtraEditors.Controls.FilterButtonShowMode.Button; this.dataStoreTreeList.OptionsView.ShowAutoFilterRow = true; this.dataStoreTreeList.OptionsView.ShowFilterPanelMode = DevExpress.XtraTreeList.ShowFilterPanelMode.ShowAlways; } // this.dataStoreTreeList.DataSource = this.list; // //MainWindow.CustomersList customersList = new MainWindow.CustomersList( ); //customersList.LoadCustomers( ); //this.gridControl1.DataSource = customersList; // //MainWindow.MyVirtualTables o = new MainWindow.MyVirtualTables( ); //o.MakeDataTables( ); //System.Data.DataTable dataTable = o.dataSet.Tables[ "ParentTable" ]; //this.gridControl1.DataSource = dataTable; // //MainWindow.MyVirtualTables o = new MainWindow.MyVirtualTables( ); //System.Data.DataSet x = o.x( ); //System.Data.DataTable dataTable = x.Tables[ "DSSS_01" ]; //this.gridControl1.DataSource = dataTable; // MainWindow.MyVirtualTables o = new MainWindow.MyVirtualTables( ); System.Data.DataSet x = o.x( ); this.gridControl1.DataSource = o.dv; // this.gridControl1.RefreshDataSource( ); // { this.dataStoreTreeList.Columns["ValidStagePathDir"].Visible = false; this.dataStoreTreeList.Columns["ValidProviderName"].Visible = false; this.dataStoreTreeList.Columns["ProviderName"].Visible = false; } { TreeListFormatRule fr = new TreeListFormatRule( ); FormatConditionRuleDataBar fcrDataBar = new FormatConditionRuleDataBar( ); fr.Column = this.dataStoreTreeList.Columns["AqbCounter"]; fcrDataBar.PredefinedName = "Orange Bar"; fr.Rule = fcrDataBar; this.dataStoreTreeList.FormatRules.Add(fr); } { TreeListFormatRule fr = new TreeListFormatRule( ); FormatConditionRuleDataBar fcrDataBar = new FormatConditionRuleDataBar( ); fr.Column = this.dataStoreTreeList.Columns["MdiCounter"]; fcrDataBar.PredefinedName = "Blue Bar"; fr.Rule = fcrDataBar; this.dataStoreTreeList.FormatRules.Add(fr); } { TreeListFormatRule fr = new TreeListFormatRule( ); FormatConditionRuleExpression fcrExpression = new FormatConditionRuleExpression( ); fr.Column = this.dataStoreTreeList.Columns["StagePathDir"]; fr.ApplyToRow = false; fcrExpression.PredefinedName = "Red Fill, Red Text"; fcrExpression.Expression = "![ValidStagePathDir]"; fr.Rule = fcrExpression; this.dataStoreTreeList.FormatRules.Add(fr); } { TreeListFormatRule fr = new TreeListFormatRule( ); FormatConditionRuleExpression fcrExpression = new FormatConditionRuleExpression( ); fr.Column = this.dataStoreTreeList.Columns["ConnectionStringName"]; fr.ApplyToRow = false; fcrExpression.PredefinedName = "Red Fill, Red Text"; fcrExpression.Expression = "![ValidProviderName]"; fr.Rule = fcrExpression; this.dataStoreTreeList.FormatRules.Add(fr); } }
public static void LoadGridData(GridView viewTable, GridData data) { using (new UsingProcessor(() => viewTable.BeginUpdate(), () => viewTable.EndUpdate())) { viewTable.GridControl.ForceInitialize(); if (data.Parameters != null) { var gridProperties = new GridProperties((GridView)viewTable); gridProperties.ApplyParameters(data.Parameters); } if (data.ColumnOrder != null && data.ColumnOrder.Count > 0) { var visibleColumns = new List <GridColumn>(); bool hasSummaries = false; int i = 0; foreach (var field in data.ColumnOrder) { if (string.IsNullOrWhiteSpace(field.ColumnName)) { continue; } var column = viewTable.Columns.ColumnByFieldName(field.ColumnName); if (column != null) { column.Visible = true; column.VisibleIndex = i++; visibleColumns.Add(column); column.Summary.Clear(); if (!string.IsNullOrWhiteSpace(field.Summary)) { var summaries = Utils.SplitString(field.Summary, ','); foreach (var summary in summaries) { if (Enum.TryParse <SummaryItemType>(summary, out SummaryItemType summaryType)) { column.Summary.Add(summaryType); hasSummaries = true; } } } } } if (hasSummaries) { viewTable.OptionsView.ShowFooter = true; } } using (new UsingProcessor(() => viewTable.BeginSort(), () => viewTable.EndSort())) { viewTable.ClearGrouping(); viewTable.ClearSorting(); var sortInfos = new List <GridColumnSortInfo>(); int groupColumnCount = 0; if (data.GroupBy != null && data.GroupBy.Count > 0) { foreach (var group in data.GroupBy) { if (string.IsNullOrWhiteSpace(group.ColumnName)) { continue; } var sortAscending = true; var colName = group.ColumnName; if (string.Compare(group.SortOrder, "desc", true) == 0) { sortAscending = false; } var column = viewTable.Columns.ColumnByFieldName(colName); if (column != null) { var colSortInfo = new GridColumnSortInfo(column, sortAscending ? ColumnSortOrder.Ascending : ColumnSortOrder.Descending); sortInfos.Add(colSortInfo); groupColumnCount++; } } } if (data.OrderBy != null && data.OrderBy.Count > 0) { foreach (var orderBy in data.OrderBy) { if (string.IsNullOrWhiteSpace(orderBy.ColumnName)) { continue; } var sortAscending = true; var colName = orderBy.ColumnName; if (string.Compare(orderBy.SortOrder, "desc", true) == 0) { sortAscending = false; } var column = viewTable.Columns.ColumnByFieldName(colName); if (column != null) { var colSortInfo = new GridColumnSortInfo(column, sortAscending ? ColumnSortOrder.Ascending : ColumnSortOrder.Descending); sortInfos.Add(colSortInfo); } } } viewTable.SortInfo.ClearAndAddRange(sortInfos.ToArray(), groupColumnCount); } if (data.FormatConditions != null && data.FormatConditions.Count > 0) { viewTable.FormatConditions.Clear(); foreach (var formatCondition in data.FormatConditions) { GridColumn column = null, targetColumn = null; if (!string.IsNullOrWhiteSpace(formatCondition.ColumnName)) { column = viewTable.Columns.ColumnByFieldName(formatCondition.ColumnName); } if (!string.IsNullOrWhiteSpace(formatCondition.TargetColumn)) { targetColumn = viewTable.Columns.ColumnByFieldName(formatCondition.TargetColumn); } var formatRule = Utils.NonNullString(formatCondition.FormatRule).ToLower(); switch (formatRule) { case "expression": var expression = formatCondition.Expression; if (!string.IsNullOrWhiteSpace(expression)) { var formatExpression = new FormatConditionRuleExpression() { Expression = expression }; var ruleExpression = new GridFormatRule { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = (column == null) || formatCondition.ApplyToRow, Rule = formatExpression }; ApplyFormatting(formatExpression, formatCondition); viewTable.FormatRules.Add(ruleExpression); } break; case "databar": if (column != null) { var ruleDataBar = new GridFormatRule() { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = formatCondition.ApplyToRow }; var formatDataBar = new FormatConditionRuleDataBar(); if (string.IsNullOrWhiteSpace(formatCondition.BackColor)) { formatCondition.BackColor = formatCondition.DataBar; } if (!string.IsNullOrWhiteSpace(formatCondition.AppearanceName)) { formatDataBar.PredefinedName = formatCondition.AppearanceName; } else { ApplyAppearance(formatDataBar.Appearance, formatCondition); } ruleDataBar.Rule = formatDataBar; viewTable.FormatRules.Add(ruleDataBar); } break; case "iconset": if (column != null) { if (!Enum.TryParse(formatCondition.IconSet, out IconSetType iconSetType)) { iconSetType = IconSetType.Arrows5; } var ruleIconSet = new GridFormatRule() { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = formatCondition.ApplyToRow }; var formatIconSet = new FormatConditionRuleIconSet() { IconSet = GetPredefinedIconSet(iconSetType) }; ruleIconSet.Rule = formatIconSet; viewTable.FormatRules.Add(ruleIconSet); } break; case "colorscale": if (column != null) { string colorScale = formatCondition.ColorScale; if (string.IsNullOrWhiteSpace(colorScale)) { colorScale = "White,Red"; } if (!string.IsNullOrWhiteSpace(colorScale)) { var scales = colorScale.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (scales != null && scales.Length == 2) { var ruleColorScale2 = new GridFormatRule() { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = formatCondition.ApplyToRow }; var formatColorScale2 = new FormatConditionRule2ColorScale { MinimumColor = ColorExtensions.FromHtmlColor(scales[0], Color.White), MaximumColor = ColorExtensions.FromHtmlColor(scales[1], Color.Black) }; ruleColorScale2.Rule = formatColorScale2; viewTable.FormatRules.Add(ruleColorScale2); } else if (scales != null && scales.Length >= 3) //Use first 3 colors if more are specified { var ruleColorScale3 = new GridFormatRule() { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = formatCondition.ApplyToRow }; var formatColorScale3 = new FormatConditionRule3ColorScale { MinimumColor = ColorExtensions.FromHtmlColor(scales[0], Color.White), MiddleColor = ColorExtensions.FromHtmlColor(scales[1], Color.Gray), MaximumColor = ColorExtensions.FromHtmlColor(scales[2], Color.Black) }; ruleColorScale3.Rule = formatColorScale3; viewTable.FormatRules.Add(ruleColorScale3); } } } break; case "aboveaverage": if (column != null) { var ruleAboveAverage = new GridFormatRule() { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = formatCondition.ApplyToRow }; var formatAboveAverage = new FormatConditionRuleAboveBelowAverage() { AverageType = FormatConditionAboveBelowType.Above }; ApplyFormatting(formatAboveAverage, formatCondition); ruleAboveAverage.Rule = formatAboveAverage; viewTable.FormatRules.Add(ruleAboveAverage); } break; case "belowaverage": if (column != null) { var ruleBelowAverage = new GridFormatRule() { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = formatCondition.ApplyToRow }; var formatBelowAverage = new FormatConditionRuleAboveBelowAverage() { AverageType = FormatConditionAboveBelowType.Below }; ApplyFormatting(formatBelowAverage, formatCondition); ruleBelowAverage.Rule = formatBelowAverage; viewTable.FormatRules.Add(ruleBelowAverage); } break; case "aboveorequalaverage": if (column != null) { var ruleAboveAverage = new GridFormatRule() { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = formatCondition.ApplyToRow }; var formatAboveAverage = new FormatConditionRuleAboveBelowAverage() { AverageType = FormatConditionAboveBelowType.EqualOrAbove }; ApplyFormatting(formatAboveAverage, formatCondition); ruleAboveAverage.Rule = formatAboveAverage; viewTable.FormatRules.Add(ruleAboveAverage); } break; case "beloworequalaverage": if (column != null) { var ruleBelowAverage = new GridFormatRule() { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = formatCondition.ApplyToRow }; var formatBelowAverage = new FormatConditionRuleAboveBelowAverage() { AverageType = FormatConditionAboveBelowType.EqualOrBelow }; ApplyFormatting(formatBelowAverage, formatCondition); ruleBelowAverage.Rule = formatBelowAverage; viewTable.FormatRules.Add(ruleBelowAverage); } break; case "unique": if (column != null) { var ruleUnique = new GridFormatRule() { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = formatCondition.ApplyToRow }; var formatUnique = new FormatConditionRuleUniqueDuplicate() { FormatType = FormatConditionUniqueDuplicateType.Unique }; ApplyFormatting(formatUnique, formatCondition); ruleUnique.Rule = formatUnique; viewTable.FormatRules.Add(ruleUnique); } break; case "duplicate": if (column != null) { var ruleDuplicate = new GridFormatRule() { Column = column, ColumnApplyTo = targetColumn, ApplyToRow = formatCondition.ApplyToRow }; var formatDuplicate = new FormatConditionRuleUniqueDuplicate() { FormatType = FormatConditionUniqueDuplicateType.Unique }; ApplyFormatting(formatDuplicate, formatCondition); ruleDuplicate.Rule = formatDuplicate; viewTable.FormatRules.Add(ruleDuplicate); } break; case "top": if (column != null) { var rankTop = formatCondition.Rank; var isPercent = !string.IsNullOrWhiteSpace(rankTop) && rankTop.EndsWith("%"); var strRankTop = isPercent ? rankTop[0..^ 1].TrimEnd() : rankTop;