你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!

XtraReport中的XrTable如何实现单元格合并?

已邀请:

类似grid中的allowcellmerge.

zcjle

赞同来自:

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

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);

} 如果还有什么不懂,可以直接咨询慧都学院慧都学院将于3月底推出《基于图的大数据分析》免费公开课,期待您的参与

要回复问题请先登录注册

微信