版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunshineBlog/article/details/80897807
1.首先改变gridcontrol的MianView为BandedGridView
#region 创建合并表头 创建列
BandedGridView view = this.bandedGridView1;
view.BeginUpdate(); //开始视图的编辑,防止触发其他事件
view.BeginDataUpdate(); //开始数据的编辑
view.Bands.Clear();
view.Columns.Clear();
//创建表头
GridBand bandOrderBillNo = view.Bands.AddBand("单号");
GridBand bandDepName = view.Bands.AddBand("班组");
GridBand bandStyleNo = view.Bands.AddBand("款号");
GridBand bandStandardTime = view.Bands.AddBand("标准工时");
GridBand bandBeginTime = view.Bands.AddBand("上线时间");
GridBand bandEndTime = view.Bands.AddBand("下线时间");
GridBand bandPlanQty = view.Bands.AddBand("订单计划数");
GridBand bandSumQty = view.Bands.AddBand("累计生产数");
GridBand bandSumBadQty = view.Bands.AddBand("不良总数");
bandOrderBillNo.Visible = false;
bandDepName.MinWidth = 175;
bandStyleNo.MinWidth = 225;
bandStandardTime.MinWidth = 125;
bandBeginTime.MinWidth = 150;
bandEndTime.MinWidth = 150;
bandPlanQty.MinWidth = 100;
bandSumQty.MinWidth = 100;
bandSumBadQty.MinWidth = 100;
// GridBand bandSumBadsdQty = view.Bands.Add(new GridBand() {Caption="hhh",Visible=true });
//给表头绑定数据字段
//方法1
bandOrderBillNo.Columns.Add(new BandedGridColumn() { FieldName = "OrderBillNo", Visible = false });
bandDepName.Columns.Add(new BandedGridColumn() { FieldName = "DepName", Visible = true });
bandStyleNo.Columns.Add(new BandedGridColumn() { FieldName = "StyleNo", Visible = true });
bandStandardTime.Columns.Add(new BandedGridColumn() { FieldName = "StandardTime", Visible = true });
bandBeginTime.Columns.Add(new BandedGridColumn() { FieldName = "BeginTime", Visible = true });
bandEndTime.Columns.Add(new BandedGridColumn() { FieldName = "EndTime", Visible = true });
bandPlanQty.Columns.Add(new BandedGridColumn() { FieldName = "PlanQty", Visible = true });
bandSumQty.Columns.Add(new BandedGridColumn() { FieldName = "SumQty", Visible = true });
bandSumBadQty.Columns.Add(new BandedGridColumn() { FieldName = "SumBadQty", Visible = true });
var dTime = Convert.ToDateTime(beginTime);
while (dTime <= Convert.ToDateTime(endTime))
{
string nextDay = dTime.ToString("yyyyMMdd");
GridBand BandTime = view.Bands.AddBand(dTime.ToString("MM月dd日"));
BandTime.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
//给指定的表头添加下面列
GridBand bandP = BandTime.Children.AddBand("计划");
GridBand bandA = BandTime.Children.AddBand("实际");
GridBand bandW = BandTime.Children.AddBand("完成率%");
GridBand bandB = BandTime.Children.AddBand("不良");
//给列绑定值
//方法1
bandP.Columns.Add(new BandedGridColumn() { FieldName = nextDay + "P", Visible = true });
bandA.Columns.Add(new BandedGridColumn() { FieldName = nextDay + "A", Visible = true });
bandW.Columns.Add(new BandedGridColumn() { FieldName = nextDay + "W", Visible = true });
bandB.Columns.Add(new BandedGridColumn() { FieldName = nextDay + "B", Visible = true });
//方法2 OwnerBand,该列的拥有者(上一级)
//view.Columns.Add(new BandedGridColumn() { FieldName = nextDay + "P", OwnerBand = bandP, Visible = true });
//view.Columns.Add(new BandedGridColumn() { FieldName = nextDay + "A", OwnerBand = bandA, Visible = true });
//view.Columns.Add(new BandedGridColumn() { FieldName = nextDay + "W", OwnerBand = bandW, Visible = true });
//view.Columns.Add(new BandedGridColumn() { FieldName = nextDay + "B", OwnerBand = bandB, Visible = true });
dTime = dTime.AddDays(1);
}
#endregion
view.EndDataUpdate();//结束数据的编辑
view.EndUpdate(); //结束视图的编辑
效果如下图: