728x90
반응형
728x170
▶ MainForm.cs
using System;
using System.Drawing;
using System.Windows.Forms;
using DevExpress.Utils;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraTreeList;
using DevExpress.XtraTreeList.Columns;
using DevExpress.XtraTreeList.Data;
using DevExpress.XtraTreeList.Nodes;
using DevExpress.XtraTreeList.StyleFormatConditions;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : XtraForm
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
Load += Form_Load;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
//////////////////////////////////////////////////////////////////////////////// Event
#region 폼 로드시 처리하기 - Form_Load(sender, e)
/// <summary>
/// 폼 로드시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void Form_Load(object sender, EventArgs e)
{
TreeList treeList = new TreeList();
treeList.Parent = this;
treeList.Dock = DockStyle.Fill;
treeList.RowHeight = 25;
treeList.OptionsView.AutoWidth = false;
treeList.OptionsView.AllowHtmlDrawHeaders = true;
treeList.OptionsView.ShowSummaryFooter = true;
treeList.OptionsBehavior.PopulateServiceColumns = true;
treeList.KeyFieldName = "ID";
treeList.ParentFieldName = "RegionID";
treeList.DataSource = SalesData.GetSalesDataList();
TreeListColumn regionColumn = treeList.Columns["Region" ];
TreeListColumn marchSalesColumn = treeList.Columns["MarchSales" ];
TreeListColumn septemberSalesColumn = treeList.Columns["SeptemberSales" ];
TreeListColumn marchSalesPrevColumn = treeList.Columns["MarchSalesPrev" ];
TreeListColumn septemberSalesPrevColumn = treeList.Columns["SeptemberSalesPrev"];
TreeListColumn marketShareColumn = treeList.Columns["MarketShare" ];
treeList.Columns[treeList.KeyFieldName ].Visible = false;
treeList.Columns[treeList.ParentFieldName].Visible = false;
regionColumn.OptionsColumn.ReadOnly = true;
regionColumn.SortIndex = 0;
marchSalesColumn.SummaryFooter = SummaryItemType.Sum;
marchSalesColumn.SummaryFooterStrFormat = "Total={0:c0}";
marchSalesColumn.AllNodesSummary = false;
septemberSalesColumn.SummaryFooter = SummaryItemType.Sum;
septemberSalesColumn.SummaryFooterStrFormat = "Total={0:c0}";
septemberSalesColumn.AllNodesSummary = false;
marchSalesPrevColumn.Caption = "<i>Previous <b>March</b> Sales</i>";
marchSalesPrevColumn.AppearanceCell.Font = new Font(marchSalesPrevColumn.AppearanceCell.Font, FontStyle.Italic);
septemberSalesPrevColumn.Caption = "<i>Previous <b>September</b> Sales</i>";
septemberSalesPrevColumn.AppearanceCell.Font = new Font(septemberSalesPrevColumn.AppearanceCell.Font, FontStyle.Italic);
TreeListColumn fromPrevMarchChangeColumn = treeList.Columns.AddField("FromPrevMarchChange");
fromPrevMarchChangeColumn.Caption = "Change from prev March";
fromPrevMarchChangeColumn.UnboundType = UnboundColumnType.Decimal;
fromPrevMarchChangeColumn.UnboundExpression = "[MarchSales]-[MarchSalesPrev]";
fromPrevMarchChangeColumn.OptionsColumn.ShowInCustomizationForm = false;
TreeListColumn fromPrevSepChangeColumn = treeList.Columns.AddField("FromPrevSepChange");
fromPrevSepChangeColumn.Caption = "Change from prev September";
fromPrevSepChangeColumn.UnboundType = UnboundColumnType.Decimal;
fromPrevSepChangeColumn.UnboundExpression = "[SeptemberSales]-[SeptemberSalesPrev]";
fromPrevSepChangeColumn.OptionsColumn.ShowInCustomizationForm = false;
treeList.ActiveFilterString = "[MarchSales] > 10000";
RepositoryItemSpinEdit repositoryItemSpinEdit = new RepositoryItemSpinEdit();
repositoryItemSpinEdit.DisplayFormat.FormatType = FormatType.Numeric;
repositoryItemSpinEdit.DisplayFormat.FormatString = "c0";
treeList.RepositoryItems.Add(repositoryItemSpinEdit);
marchSalesColumn.ColumnEdit = repositoryItemSpinEdit;
marchSalesPrevColumn.ColumnEdit = repositoryItemSpinEdit;
septemberSalesColumn.ColumnEdit = repositoryItemSpinEdit;
septemberSalesPrevColumn.ColumnEdit = repositoryItemSpinEdit;
TreeListFormatRule rule1 = new TreeListFormatRule();
rule1.Rule = GetFormatConditionRuleIconSet();
rule1.Column = fromPrevMarchChangeColumn;
rule1.ColumnApplyTo = marchSalesColumn;
treeList.FormatRules.Add(rule1);
TreeListFormatRule rule2 = new TreeListFormatRule();
rule2.Rule = GetFormatConditionRuleIconSet();
rule2.Column = fromPrevSepChangeColumn;
rule2.ColumnApplyTo = septemberSalesColumn;
treeList.FormatRules.Add(rule2);
TreeListNode node1 = treeList.FindNodeByFieldValue("Region", "North America");
treeList.FocusedNode = node1;
node1.Expanded = true;
TreeListNode node2 = treeList.FindNodeByKeyID(32); //Node 'Asia'
node2.Expand();
BeginInvoke
(
new MethodInvoker
(
delegate
{
treeList.BestFitColumns();
}
)
);
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Function
#region 포맷 조건부 규칙 아이콘 세트 구하기 - GetFormatConditionRuleIconSet()
/// <summary>
/// 포맷 조건 규칙 아이콘 세트 구하기
/// </summary>
/// <returns>포맷 조건부 규칙 아이콘 세트</returns>
private FormatConditionRuleIconSet GetFormatConditionRuleIconSet()
{
FormatConditionRuleIconSet ruleIconSet = new FormatConditionRuleIconSet();
FormatConditionIconSet iconSet = new FormatConditionIconSet();
iconSet.ValueType = FormatConditionValueType.Number;
ruleIconSet.IconSet = iconSet;
FormatConditionIconSetIcon icon1 = new FormatConditionIconSetIcon();
FormatConditionIconSetIcon icon2 = new FormatConditionIconSetIcon();
FormatConditionIconSetIcon icon3 = new FormatConditionIconSetIcon();
icon1.PredefinedName = "Triangles3_3.png";
icon2.PredefinedName = "Triangles3_2.png";
icon3.PredefinedName = "Triangles3_1.png";
icon1.Value = Decimal.MinValue;
icon1.ValueComparison = FormatConditionComparisonType.GreaterOrEqual;
icon2.Value = 0;
icon2.ValueComparison = FormatConditionComparisonType.GreaterOrEqual;
icon3.Value = 0;
icon3.ValueComparison = FormatConditionComparisonType.Greater;
iconSet.Icons.Add(icon1);
iconSet.Icons.Add(icon2);
iconSet.Icons.Add(icon3);
return ruleIconSet;
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
댓글을 달아 주세요