我也遇见这个问题了 网上找了好半天!最后的结果是
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格式工具栏定义其背景颜色和自定义文本的外观。
此外,您可以应用奇/偶不同显示的风格特征。表格报表现已准备就绪。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)