Winforms 需要根据日期将网格分组为逻辑组

Winforms 需要根据日期将网格分组为逻辑组,winforms,linq-to-sql,c#-4.0,devexpress,Winforms,Linq To Sql,C# 4.0,Devexpress,我要处理的情况是,我需要根据日期列对我的DevExpress网格进行分组。问题是,我需要我的团队被称为:过去、现在和未来。以下是LINQ: GridJobSummary.DataSource = from luke in DbContext.JobBookings where luke.LocumID == LocumID orderby luke.Job.JobDate descending select new {

我要处理的情况是,我需要根据日期列对我的DevExpress网格进行分组。问题是,我需要我的团队被称为:过去、现在和未来。以下是LINQ:

GridJobSummary.DataSource = from luke in DbContext.JobBookings
            where luke.LocumID == LocumID
            orderby luke.Job.JobDate descending
            select new {
                luke.JobID,
                luke.Job.JobDate,
                ClientID = luke.Job.Branch.ClientID,
                ClientName = String.Format("{0} ({1})", luke.Job.Branch.Client.Name, luke.Job.Branch.Client.Number),
                BranchID = luke.Job.BranchID,
                BranchName = String.Format("{0} ({1})", luke.Job.Branch.Number, luke.Job.Branch.Number),
                JobBookingStatusName = luke.JobBookingStatus.Name
            };

GridJobSummaryView.Columns["JobID"].Visible = false;
GridJobSummaryView.Columns["ClientID"].Visible = false;
GridJobSummaryView.Columns["BranchID"].Visible = false;

GridJobSummaryView.Columns["JobDate"].DisplayFormat.FormatType = FormatType.DateTime;
GridJobSummaryView.Columns["JobDate"].DisplayFormat.FormatString = "ddd, dd-MMM-yyyy";
GridJobSummaryView.Columns["JobDate"].SortOrder = ColumnSortOrder.Ascending;
现在,

如果[工作日期<今天],则进入过去组

如果[作业日期>=今天将属性“GroupName”添加到所选对象:

select new {
                luke.JobID,
                luke.Job.JobDate,
                ClientID = luke.Job.Branch.ClientID,
                ClientName = String.Format("{0} ({1})", luke.Job.Branch.Client.Name, luke.Job.Branch.Client.Number),
                BranchID = luke.Job.BranchID,
                BranchName = String.Format("{0} ({1})", luke.Job.Branch.Number, luke.Job.Branch.Number),
                JobBookingStatusName = luke.JobBookingStatus.Name,
                GroupName = GetGroupNameByDate(luke.Job.JobDate)
            };

// .....
string GetGroupNameByDate(DateTime date) {
    var today = DateTime.Today;
    if ( date < today ) { return "Past"; }
    else if ( date >= today && date <= today.AddMonths( 1 ) ) { return "Current"; }
    else { return "Future"; }
}
选择新建{
卢克·若比德,
luke.Job.JobDate,
ClientID=luke.Job.Branch.ClientID,
ClientName=String.Format(“{0}({1})”,luke.Job.Branch.Client.Name,luke.Job.Branch.Client.Number),
布兰奇=luke.Job.BranchID,
BranchName=String.Format(“{0}({1})”,luke.Job.Branch.Number,luke.Job.Branch.Number),
JobBookingStatusName=luke.JobBookingStatus.Name,
GroupName=GetGroupNameByDate(luke.Job.JobDate)
};
// .....
字符串GetGroupNameByDate(日期时间日期){
var today=DateTime.today;
如果(日期<今天){返回“过去”}
如果(日期>=今天&&date)发生其他情况