xtrareport实现指定记录数以及填补空白行

在Detail的事件中:

int i=0;
private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
   //控制每页报表显示的条数
if (i!=0&&i%8==0) //每页显示8条
{
  Detail.PageBreak = DevExpress.XtraReports.UI.PageBreak.BeforeBand;  
}
else
{
  Detail.PageBreak = DevExpress.XtraReports.UI.PageBreak.None;   
}
i++;
}

在Table的事件中:

private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
  //////////////////////////////////////////////////数据集“StorageBillMatItem”进行替换即可
 if(i==((System.Data.DataSet)(xtraReport1.DataSource)).Tables["StorageBillMatItem"].Rows.Count)
   {
      XRTable table = xrTable2;//Template Detail Band XRTable
      int iheight = table.Rows[table.Rows.Count - 1].Height;

int SpaceRowCount = 8-(i)%8;
      XRTableRow[] xrRow = new XRTableRow[SpaceRowCount];

for(int k=0;k<SpaceRowCount ;k++)
        {
            xrRow[k] = new XRTableRow();
            xrRow[k].Size = new Size(table.Width, iheight);
            xrRow[k].Location = new Point(table.Location.X, k * iheight);
            xrRow[k].Borders = (DevExpress.XtraPrinting.BorderSide)((BorderSide.Left | BorderSide.Right) | BorderSide.Top);
            xrRow[k].BorderWidth = 1;
            xrRow[k].BorderColor = table.Rows[table.Rows.Count - 1].BorderColor;
            //CreateCell
            XRTableRow row = table.Rows[table.Rows.Count - 1];
            CreateCellArray(xrRow[k], row);
       } 
      xrTable2.Rows.AddRange(xrRow); 
   }  
}

/// <summary>
/// CreateCell
/// </summary>
/// <param name="xrRow">Current Row</param>
/// <param name="xrRowTemplate">Row Template</param>
private void CreateCellArray(XRTableRow xrRow, XRTableRow xrRowTemplate)
{
    int Xmargin = 0;
    for (int i = 0; i < xrRowTemplate.Cells.Count; i++)
    {
        XRTableCell xrcell = new XRTableCell();
        xrcell.BorderWidth = 1;
        xrcell.Borders = (DevExpress.XtraPrinting.BorderSide)((BorderSide.Left | BorderSide.Right) | BorderSide.Top);
        xrcell.Width = xrRowTemplate.Cells[i].Width;
        xrcell.BackColor = xrRowTemplate.Cells[i].BackColor;
        xrcell.Height = xrRowTemplate.Height;
        if (i != 0)
        {
            xrcell.Location = new Point(Convert.ToInt32(Xmargin + xrRowTemplate.Cells[i].Width), 0);
        }
        else
        {
            xrcell.Location = new Point(0, 0);
        }
        xrRow.Cells.Add(xrcell);
    }
}

http://www.dxper.net/documents/html/DevExpressXtraReportsUIXtraReport_ScriptLanguagetopic.htm

时间: 2024-10-02 16:25:20

xtrareport实现指定记录数以及填补空白行的相关文章

ExtJS4.2 Grid知识点六:自动选中指定记录、自动选中全部记录、反向选择

本节主要学习ExtJS4.2 Grid自动选中指定记录.自动选中全部记录.反向选择,即在表格Grid加载数据后自动将符合条件的记录行选中,示例图片: 示例代码  /  在线演示 本例是通过监听Grid的afterrender事件来实现自动选择指定记录行,代码如下实现自动选中性别为男性的记录行: 自动选中指定记录代码 'userlist': {     afterrender: function(testGrid){//侦听goodslistview渲染           // 选中所有记录  

Apache不指定记录文件日志

编辑虚拟主机配置文件 在Errorlog和Customlog中间加入不指定记录文件日志的格式, 如下所示: ErrorLog "lam.com-error_log" SetEnvIf Resquest_URI ".*\.gif$" image-request SetEnvIf Resquest_URI ".*\.jpg$" image-request SetEnvIf Resquest_URI ".*\.png$" image

查看Oracle表中的指定记录在数据文件中的位置

查看Oracle表中的指定记录位置select rowid,user_id from sshr.xx_user where user_id=3010586 select rowid,       dbms_rowid.rowid_object(rowid) object_id,              dbms_rowid.rowid_relative_fno(rowid) file_id,              dbms_rowid.rowid_block_number(rowid) b

在DataTable和DataView中查找指定记录

一.在DataTable中查找 1. 使用Select方法查找没有主键的表DataTable的Select方法返回一个DataRow数组,有四个重载的函数. DataRow[] drs = dt.Select("UserName LIKE '张%'"); 2. 使用Find方法查找有主键的表 分两种情况:(1) 主键只有一个字段 DataRow dr = dt.Rows.Find("主键字段的值");dt.PrimaryKey = new DataColumn[]

用sql获得指定记录的空段数目和字段名称--实在想不通,这种场景应用在哪

1)表结构如下 现在查询第四条记录 1)demo 2)查询有几个为null或者''的字段,跟预期一样,两个1,说明两个字段为null或者'' 3)求和吧--得到为空的字段数目 4)查出空字段,的字段名 /* `IF`(expr1,expr2,expr3)三目运算符,参数1,为真,返回参数2,否则返回参数3 在这里,参数1为null或者''为真, 我们让他返回1 */ select sum( IF(ISNULL(name)||LENGTH(trim(name))<1,1,0) + IF(ISNUL

insert into values 插入多条指定记录 - sql server 2008新功能

之前碰到一条如下语句 declare @t1 table (catId int, id int) insert into @t1(catid,id) values (15,33), (15,49), (15,113) sql server 2000及2005上跑,均报错--Line 3: Incorrect syntax near ','. 后来查了一下,这是sql server2008出来的新特性.所以此语句仅限于sql server 2008及以上版本使用. PS:顺道提一下,sql ser

根据权重随机选取指定条数记录的简单算法实现(C#)

一.应用场景: 有时我们需要从一些列数据中根据权重随机选取指定条数记录出来,这里需要权重.随机,我们根据权重越大的,出现概率越大.例如广告系统:可根据客户支付金额大小来调控客户们的广告出现概率,客户支付金额越大,其广告出现频率越频繁,例如:加入有10条广告,然后每条广告都有一个权重,我们每次要根据权重选取5条广告出来进行显示.有了需求,我们就进行解决,本文章就是利用一种简单的算法来实现根据权重来随机选取. 二.简单算法的实现: 根据我们需求,上网找了不少资料,都没有找到一种比较适合的方案,就自己

nginx不记录指定文件类型的日志

1.指定记录文件日志记录的内容. vim /usr/local/nginx/conf/nginx.conf如下部分: log_format dd '$remote_addr $http_x_forwarded_for [$time_local]' '$host "$request_uri" $status' '"$http_referer" "$http_user_agent"'; 其中dd是指日志格式的名字,可修改.2.在虚拟主机配置文件中,指

ci日志记录

log_message($level, $message) 参数: $level (string) -- Log level: 'error', 'debug' or 'info' $message (string) -- Message to log 返回类型: void 该函数用于向你的日志文件中写入信息,第一个参数你必须提供 三个信息级别中的一个,用于指定记录的是什么类型的信息(调试, 错误和一般信息),第二个参数为信息本身. 示例: if ($some_var == '') { log_