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[table.Rows.Count - 1].BorderColor;
xrRow[i].BorderWidth = 1;
CreateCellArray(xrRow[i],table);
}
table.Rows.AddRange(xrRow);
}
}
}
///<summary>
///创建空白行的Cell
///在XRTableRow中添加单元格
///</summary>
///<param name="xrRow"></param>
private void CreateCellArray(XRTableRow xrRow, XRTable table)
{
XRTableRow row = table.Rows[table.Rows.Count - 1];//显示数表的最后一行
int Xmargin = 0;
for (int i = 0; i < row.Cells.Count; i++)
{
XRTableCell xrcell = new XRTableCell();
xrcell.BorderWidth = 1;
//设置单元格边框:Top Left Right Bottom 表示在哪个方向上有边框
xrcell.Borders = (DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
xrcell.Width = row.Cells[i].Width;
xrcell.BackColor = row.Cells[i].BackColor;
xrcell.Height = row.Height;
if (i != 0)
{
xrcell.Location = new Point(Xmargin + row.Cells[i].Width, 0);
}
else
{
xrcell.Location = new Point(0, 0);
}
xrRow.Cells.Add(xrcell);
}
}
BOS万能报表每页打印固定行数且在表格最后补齐空白行
本文2024-09-22 16:40:20发表“k3wise知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3wise-89443.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf