如何合并GridControl的表头

版权声明:本文为博主原创文章,未经博主允许不得转载。 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();   //结束视图的编辑
效果如下图:

猜你喜欢

转载自blog.csdn.net/SunshineBlog/article/details/80897807