Mini Kabibi Habibi
using System;
using System.Collections.Generic;
using System.Windows;
using GridDemo;
using System.Collections;
using System.Globalization;
using DevExpress.Data;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Xpf.Editors;
using System.Windows.Controls;
using System.Data;
namespace GridDemo {
public static class SalesByYearData {
public static Type GetColumnType(string fieldName) {
return fieldName.Contains("Date") ? typeof(DateTime) : typeof(int);
}
public static IList GetSalesByYearData(bool byMonthReport = false) {
List<string> columns = new List<string>();
columns.Add("Date");
if(byMonthReport)
columns.Add("DateMonth");
foreach(DataRow row in NWindData.Employees.Table.Rows) {
string name = (string)row["FirstName"] + " " + (string)row["LastName"];
if(!columns.Contains(name))
columns.Add(name);
}
DataTable table = new DataTable();
foreach(string employe in columns) {
table.Columns.Add(new DataColumn(employe) { DataType = GetColumnType(employe) });
}
Random random = new Random();
for(int yearIndex = 10; yearIndex > 0; yearIndex--) {
int year = DateTime.Now.Year - yearIndex;
for(int month = 1; month <= 12; month++) {
int daysCount = byMonthReport ? DateTime.DaysInMonth(year, month) : 1;
for(int day = 1; day <= daysCount; day++) {
DataRow row = table.NewRow();
row["Date"] = new DateTime(year, month, day);
int startColumnIndex = 1;
if(byMonthReport) {
row["DateMonth"] = row["Date"];
startColumnIndex++;
}
for(int columnIndex = startColumnIndex; columnIndex < columns.Count; columnIndex++)
row[columns[columnIndex]] = random.Next(30000 / daysCount);
table.Rows.Add(row);
}
}
}
return table.DefaultView;
}
}
public class SalesByYearDataColumnTemplateSelector : DataTemplateSelector {
public override DataTemplate SelectTemplate(object item, DependencyObject container) {
ColumnGeneratorItemContext context = (ColumnGeneratorItemContext)item;
GridControl grid = (GridControl)container;
return (DataTemplate)grid.Resources[context.PropertyDescriptor.Name == "Date" ? "DateColumnTemplate" : "EmployeeColumnTemplate"];
}
}
}