BOS万能报表每页打印固定行数且在表格最后补齐空白行

实现每页打印固定行数方法如下:
在明细detail的属性栏,选择脚本-》打印之前,输入以下脚本:
int row=0;
private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
//控制每页报表显示的条数
if (row!=0&&row%5==0) //每页显示5条
{
Detail.PageBreak = DevExpress.XtraReports.UI.PageBreak.BeforeBand;//无需单独添加分页控件
}
else
{
Detail.PageBreak = DevExpress.XtraReports.UI.PageBreak.None;
}
row++;
}在最后一页补齐空白行的方法如下:
在明细的数据表格(类似xrTable1、xrTable2)属性栏,选择脚本-》打印之前,输入以下脚本:
private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
XRTable pb = (XRTable)sender;
//curRow即为最上面“打印固定行数”脚本中定义的变量,需要与之一起配合使用
//bOSReport1为整个报表对象在设计器中的名称
//Page2为单据第一个表体的数据 Page3为单据第二个表体的数据 其他单据体依次类推。。。
if(curRow == ((System.Data.DataSet)(bOSReport1.DataSource)).Tables["Page2"].Rows.Count) //打印明细表最后一行时
{
XRTable table = xrTable2;//获取到显示明细数据的表格,即在BOS万能报表设计器中的表格名称,类似xrTable1、xrTable2... 根据实际情况修改即可
int rowheight = table.Rows[table.Rows.Count - 1].Height; //取设计时的单元行高度,也可以自定义设置行高度
int SpaceRowCount = 5-curRow%5;//根据每页固定要显示的行数,决定要补齐的空白行数
XRTableRow[] xrRow = new XRTableRow[SpaceRowCount];
if (SpaceRowCount > 0)
{
for (int i = 0; i < SpaceRowCount; i++)
{
xrRow[i] = new XRTableRow();
xrRow[i].Size = new Size(table.Width, rowheight);
xrRow[i].Location = new Point(table.Location.X,i*rowheight);
//设置行边框:Top Left Right Bottom 表示在哪个方向上有边框
xrRow[i].Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right) | DevExpress.XtraPrinting.BorderSide.Bottom)));
xrRow[i].BorderColor = table.Rows[
BOS万能报表每页打印固定行数且在表格最后补齐空白行
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



