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

DevExpress.XtraReports.UI.XtraReport表格如何合并单元格?,第1张

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

XtraReport 的 XRTable  不能合并行(XRTableRow)

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

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

这样就可以实现

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

也可以代码控制

/// <summary>

/// 获取XRTable位置

/// </summary>

/// <param name="p_info">Page容器(只存在XRTable才有效)</param>

/// <returns>得到位置</returns>

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)

}

一、开启MS Visual Studio (2008或2010),创建一个支持任何平台的新应用程序,或打开一个现有的。

二、添加一个新的空白报表(DevExpress XtraReports如何为应用程序添加新报表)。

三、绑定该报表到示例数据库Northwind的“产品”表上(nwind.mdb文件,和XtraReports一起安装的)。

四、在报表的PageHeader和Detail新增两个XRTable控件。

打开DX.11.2: 报表控件工具栏,点击XRTable选项。然后,在PageHeader内容区域里,点击鼠标左键并向下拖动,使鼠标指针越过Detail区域。

五、绑定表的单元格数据字段,只需从“Field List”窗口将“ProductName”,“QuantityPerUnit”和“UnitPrice”拖放到相应的单元格中。

然后,在第一个表单元格中输入相应的列名。

六、为了改善报表的外观,你可以自定义某些表中的参数。

为两个表中的XRControl.Borders定义属性值(设置xrTable1的所有属性值和xrTable2的左、右、底部属性值)。此外,使用XtraReports格式工具栏定义其背景颜色和自定义文本的外观。

此外,您可以应用奇/偶不同显示的风格特征。表格报表现已准备就绪。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11321627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存