这两天为了做报表,研究了一下XtraReport 。为了添加空行,想了很多办法。其中如果有分组时,网上给出的办法就会失败。
现将经验公布一下,希望各位都能少走弯路。

1.加入自定义函数CreateCellArray,用于创建空行。
2.生成报表的 FillEmptySpace 事件,填写如下代码。
3.tableDetail 是指细节 区带
4.****注意,如果有分组,必须将分组PrintAtBottom设置为true,就是将其下沉。

  1. private void CreateCellArray(XRTableRow xrRow, XRTableRow xrRowTemplate)
  2. {
  3. int Xmargin = 0;
  4. for (int i = 0; i < xrRowTemplate.Cells.Count; i++)
  5. {
  6. XRTableCell xrcell = new XRTableCell();
  7. xrcell.BorderWidth = 1;
  8. xrcell.Borders = (DevExpress.XtraPrinting.BorderSide)((BorderSide.Left | BorderSide.Right) | BorderSide.Bottom);
  9. xrcell.WidthF = xrRowTemplate.Cells.WidthF;
  10. xrcell.BackColor = xrRowTemplate.Cells.BackColor;
  11. xrcell.Height = xrRowTemplate.Height;
  12. if (i != 0)
  13. {
  14. xrcell.Location = new Point(Convert.ToInt32(Xmargin + xrRowTemplate.Cells.WidthF), 0);
  15. }
  16. else
  17. {
  18. xrcell.Location = new Point(0, 0);
  19. }
  20. xrRow.Cells.Add(xrcell);
  21. }
  22. }
  23. private void XR_HT_RT_FillEmptySpace(object sender, BandEventArgs e)
  24. {
  25. XRTable table = tableDetail;//Template Detail Band XRTable
  26. int iheight = table.Rows[table.Rows.Count - 1].Height;
  27. XRTable xrTable = new XRTable();
  28. xrTable.Size = new Size(table.Width, e.Band.Height - 1);
  29. xrTable.BorderWidth = table.BorderWidth;
  30. xrTable.Location = table.Location;
  31. xrTable.BackColor = table.BackColor;
  32. int SpaceRowCount = e.Band.Height / iheight;
  33. XRTableRow[] xrRow = new XRTableRow[SpaceRowCount];
  34. if (SpaceRowCount > 0)
  35. {
  36. for (int i = 0; i < SpaceRowCount; i++)
  37. {
  38. xrRow = new XRTableRow();
  39. xrRow.Size = new Size(table.Width, iheight);
  40. xrRow.Location = new Point(table.Location.X, i * iheight);
  41. xrRow.Borders = (DevExpress.XtraPrinting.BorderSide)((BorderSide.Left | BorderSide.Right) | BorderSide.Bottom);
  42. xrRow.BorderWidth = 1;
  43. xrRow.BorderColor = table.Rows[table.Rows.Count - 1].BorderColor;
  44. //CreateCell
  45. XRTableRow row = table.Rows[table.Rows.Count - 1];
  46. CreateCellArray(xrRow, row);
  47. }
  48. xrTable.Rows.AddRange(xrRow);
  49. e.Band.Controls.Add(xrTable);
  50. }
  51. }

  

XtraReport 添加空行的办法,很详细的更多相关文章

  1. 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序

    很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用m ...

  2. [转]很详细的devexpress应用案例

    很详细的devexpress应用案例,留着以后参考. 注:转载自http://***/zh-CN/App/Feature.aspx?AppId=50021 UPMS(User Permissions ...

  3. C++内存管理(超长,例子很详细,排版很好)

    [导语] 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不 ...

  4. 很详细的SpringBoot整合UEditor教程

    很详细的SpringBoot整合UEditor教程 2017年04月10日 20:27:21 小宝2333 阅读数:21529    版权声明:本文为博主原创文章,未经博主允许不得转载. https: ...

  5. 讲的很详细的一篇关于object equals() & hashCode() 的文章

    转: 讲的很详细的一篇关于object equals() & hashCode() 的文章 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java ...

  6. SecureCRT的安装与破解(过程很详细!!!)

    SecureCRT的安装与破解(过程很详细!!!) 使用SecureCRT可以方便用户在windows环境下对linux主机进行管理,这里为大家讲一下SecureCRT的破解方法,仅供大家参考学习: ...

  7. ETL讲解(很详细!!!)

    ETL讲解(很详细!!!) ETL是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决策提供分析依据. ETL是BI项目重要 ...

  8. 00-01.PHP 网站假设win7配置自己的IIS服务器亲自做的图文很详细 [转 - 赞 ]

    win7配置自己的IIS服务器亲自做的图文很详细 分步阅读 跟人网站爱好初学者必看的win7系统配置自己的IIS,可以在你自己的电脑上配置网站服务器发不到网上,下面就跟着我的步骤一起做吧100%成功. ...

  9. 在MyEclipse(2015)中上传项目到github的步骤(很详细)

    (图文)在MyEclipse(2015)中上传项目到github的步骤(很详细) git|smartGit使用详解 SmartGit使用教程

随机推荐

  1. 对restful的理解

    最近在学习web api,从而涉及到了restful风格,我的理解是restful风格,每个链接都会对资源进行相应的操作(CRUD),如果一个链接不包含资源,则可能不符合restful风格,借此想请教 ...

  2. Android自动化学习笔记之MonkeyRunner:用Eclipse执行MonkeyRunner脚本

    Info: 初步学习,难免会有疏漏,以后我会不断修改补全,直到完美.转载请注明出处,谢谢. 2014-10-11: 初版 2014-10-16: 完善 ------------------------ ...

  3. AX7: Quick and easy debugging

    This purpose of this blog is to show how you can get quickly get started with debuggingin AX7, speci ...

  4. SpringBoot和数据库连接

    就像单机Java应用程序一样,和数据库连接需要DataSource,然后生成到数据库的Connection再进行数据库操作 SpringBoot和原生的JDBC 先看SpringBoot项目源码 从上 ...

  5. [转] ACM中国国家集训队论文集目录(1999-2009)

    国家集训队1999论文集 陈宏:<数据结构的选择与算法效率——从IOI98试题PICTURE谈起>来煜坤:<把握本质,灵活运用——动态规划的深入探讨>齐鑫:<搜索方法中的 ...

  6. 用adox 取 access 自增列

    百度很久 最后在 (.NET2.0下用ADOX动态创建ACCESS数据库(C#)) http://blog.csdn.net/black4371/article/details/4423739 找到了 ...

  7. 关于Oracle数据库字符集

    我们现在使用的字符集有以下两种: 推荐使用 AL32UTF8,避免以后数据导入导出字符集不同的麻烦. 推荐数据库设置参考图:

  8. 1.mysql基础之 php 连接

    1.连接数据库 $db=@mysql_connect('DB_HOST','DB_USER','DB_PASS') or die("Unable to connect"); DB_ ...

  9. JAVA-系统-【3】-java应用连接oracle正常,但是网页却报错java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

    这是因为jar包已经导入了项目的应用部分,网页的lib去没有导入. 导入以后还要刷新项目,最好重启tomcat,就解决了..

  10. ASP.NET MVC WEBAPI第一次接触

    asp.net 的MVC4 WEBAPI的出现已经有段时间了.最近因为做自己的一些小玩儿,要做一个API,正好可以学习一下这个WEBAPI. WEBAPI项目的创建我就不啰嗦,先来看看webapi的路 ...