DevExpress.XtraReports.UI.XtraReport表格如何合并单元格?

2025年03月22日 16:16
有2个网友回答
网友(1):

我也遇见这个问题了 网上找了好半天!最后的结果是 

XtraReport 的 XRTable  不能合并行(XRTableRow)

最多可以实现合并列的效果但是没有意义 只不过是吧 XRTableRow 删除一个列

我自己的解决办法是创建多个 XRTable  拼成一个大XRTable的效果

这样就可以实现

有一个小小的问题是 XRTable  和 XRTable   之间的位置要定义好  

也可以代码控制 

/// 

/// 获取XRTable位置

/// 

/// Page容器(只存在XRTable才有效)

/// 得到位置

private Point GetTable(PageHeaderBand p_info)

 {

            Point point = new Point();//XRTable.Location(坐标位置(类型是Point ))

            point.X = 0;//默认位置是纸张减去边距的位置(0就可以了)

            point.Y = 0;//默认是XRTable的高度如果设置高了会出现空白(所以一直不用设置保持0)

            foreach (XRTable item in p_info.Controls)

            {

                //将Page容器里的所有XRTable宽度叠加就是你下一个 XRTable的位置

         //根据情况减去 边框宽度

                point.X += (item.Width-3);            

            }

            return point;

        }

得到了坐标位置后在加入到容器中就可以了

CreateTableHeader 方法只是举例 请勿直接使用

private PageHeaderBand CreateTableHeader()

 {

PageHeaderBand new_PageHeaderBand = new PageHeaderBand();

XRTable tableHeader = new XRTable();

XRTableRow headerRowOne = new XRTableRow ();//一级表头

XRTableRow headerRowTwo = new XRTableRow ();//二级表头

tableHeader.Rows.Add(headerRowOne);

tableHeader.Rows.Add(headerRowTwo);

tableHeader.Location = GetTable(new_PageHeaderBand);

new_PageHeaderBand.Controls.Add(tableHeader);

}

网友(2):

列的合并:如下图操作,其实修改的属性是单元格的Weight属性,属性列表不显示而已

行合并:

设置单元格的RowSpan的数值即可,如下图所示


如果想在运行时候,将绑定的单元格相同数值合并行的话,请设置一下属性为Merge