水晶报表 分页 的问题

水晶报表分页汇总
建三个公式字段,第一个(公式1)输入下面的公式:
whileprintingrecords;
global numbervar ptotal;
ptotal:=0;
第二个(公式2)输入下面的公式:
whileprintingrecords;
global numbervar ptotal;
ptotal := ptotal + [要汇总的字段];
如果要汇总的字段不是数字,就用tonumber()函数转换;
第三个(公式3)输入下面的公式:
whileprintingrecords;
global numbervar ptotal;
把公式1放在页眉,公式2放在详细资料,并隐藏公式1和公式2;把公式3放在页脚,格式公式3,设置为你要显示的格式。这样就行了。

水晶报表分页并自动插入空白行
在论坛上经常会看到水晶报表分页的问题,这个很好解决。
但是自动插入空白行的问题却一直没有很好的答案,
经过研究找到一个变通的办法来实现了。
'分页
在详细资料上点格式化节,在后面页新建页打勾
公式中输入:
if onlastrecord then
FORMULA = FALSE
else
if RecordNumber mod 5 =0 then
FORMULA = TRUE
else
FORMULA = FALSE
end if
end if
'(BASIC 语法)
---------------------------------------------------------------------
最后页不足,用空行填充:
新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾
公式中输入:
if not onlastrecord then
FORMULA = TRUE
else
if (RecordNumber mod 5 <= 1) then '第一个,1
FORMULA = TRUE
else
FORMULA = FALSE
end if
end if
'(BASIC 语法)
...接着第二个[ 新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾 ]:
公式中输入:
if not onlastrecord then
FORMULA = TRUE
else
if (RecordNumber mod 5 <= 2) then '第二个,2
FORMULA = TRUE
else
FORMULA = FALSE
end if
end if
...接着第三个[ 新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾 ]:
公式中输入:
if not onlastrecord then
FORMULA = TRUE
else
if (RecordNumber mod 5 <= 3) then '第三个,3
FORMULA = TRUE
else
FORMULA = FALSE
end if
end if
在论坛上经常会看到水晶报表分页的问题,这个很好解决。
但是自动插入空白行的问题却一直没有很好的答案,
经过研究找到一个变通的办法来实现了。
'分页
在详细资料上点格式化节,在后面页新建页打勾
公式中输入:
if onlastrecord then
FORMULA = FALSE
else
if RecordNumber mod 5 =0 then
FORMULA = TRUE
else
FORMULA = FALSE
end if
end if
'(BASIC 语法)
---------------------------------------------------------------------
最后页不足,用空行填充:
新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾
公式中输入:
if not onlastrecord then
FORMULA = TRUE
else
if (RecordNumber mod 5 <= 1) then '第一个,1
FORMULA = TRUE
else
FORMULA = FALSE
end if
end if
'(BASIC 语法)
...接着第二个[ 新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾 ]:
公式中输入:
if not onlastrecord then
FORMULA = TRUE
else
if (RecordNumber mod 5 <= 2) then '第二个,2
FORMULA = TRUE
else
FORMULA = FALSE
end if
end if
...接着第三个[ 新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾 ]:
公式中输入:
if not onlastrecord then
FORMULA = TRUE
else
if (RecordNumber mod 5 <= 3) then '第三个,3
FORMULA = TRUE
else
FORMULA = FALSE
end if
end if
...(同理第四个,即最后5-1个)
(注:此方法适用于行数较少,上面是为5行为例,不过不觉得麻烦,对行数较多也可以用)...(同理第四个,即最后5-1个)

(0)

相关推荐

  • 什么是水晶报表与水晶报表功能分析

    水晶报表水晶报表(Crystal Report)是业内最专业.功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口.在VS.Net平台做过报表开发的程序员,一定都对水晶报表强大.高效.集成等特性留下了深刻印象. 除了开发新程序外,在工作中我们常需要接触到很多较早的软件系统报表功能升级的需求,如果能结合水晶报表这一强大的工具,往往能事半功倍. VB是以前流行的数据库开发平台,用其开发的C/S系统在社会上有非常大的保有量,但VB超弱的报表功能往往让程序员面

  • VS2010 水晶报表的使用方法

    在VS2010中新建一个"Windows 窗体应用程序"项目,在该项目中添加一个水晶报表"CrystalReport1.rpt",然后在项目上点击鼠标右键属性,将"目标框架"改为".Net Framework 4" 打开app.config文件,在"startup"节点一个"useLegacyV2RuntimeActivationPolicy="true""属性 复制

  • ASP.NET中水晶报表的使用方法详解

    前一段时间,由于在项目中要用到报表做统计,所以我学习了一下ASP.NET水晶报表的使用.水晶报表的执行模式(也就是取数据的方法)可以分为两种: 第一种是Pull模式:被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据. 另外一种就是Push模式:此时开发者不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表.在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化. 水晶报表中的报表类型也分为两种: --StrongTyped 报表: 当你将报表文

  • ASP.NET 水晶报表打印功能实现代码

    1.用IE的打印,调用window.print(),但这种办法对于页面上即有报表,又有其它控件情况就无法区分,不能达到只打印报表内容的目的: 2.自已写打印代码 代码如下: 复制代码 代码如下: CrystalDecisions.CrystalReports.Engine.ReportDocument rd=new CrystalDecisions.CrystalReports.Engine.ReportDocument(); rd.Load(Server.MapPath("Crystalrep

  • VS2005 水晶报表在时部署时遇到的问题

    Retrieving the COM class factory for component with CLSID {11BD5260-15B6-412D-80DB-12BB60B8FE50} failed due to the following error: 800736b1. Description: An unhandled exception occurred during the execution of the current web request. Please review

  • .NET 水晶报表使用代码

    需要的命名空间 using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Web; using CrystalDecisions.Shared; ---------------------------------------------------- 建一个数据集文件 *.xsd ----------------------------------------------------- 在页面中加一个报表查看控件 C

  • asp.net 水晶报表隔行换色实现方法

    在报表中右键 -> Insert -> Sections,找到要设置背景色的区域,我这里是Details区域.在右边选项卡中选择Color,勾上背景色选项,设置好默认颜色.点击表达式按钮,输入以下代码. 复制代码 代码如下: if recordnumber mod 2=0 then Color (220, 225, 214) else crWhite 上面的代码需要说明的是Color()函数,这是水晶报表提供的设置自定义颜色函数,里面三个参数分别对应R.G.B三种基础颜色,通常我们必须把在CS

  • 编写的vs2005水晶报表程序在vs2008下正常使用的一些实现方法

    一.没有安装部署好水晶报表:(vs2008安装后,不等于安装了vs2008水晶报表) 二.源程序中:VS2008和v2005的水晶报表版本号不对:vs2008的版本号是:Version=10.5.3700.0 ,造成水晶报表无法使用: 三.有时出现找不到水晶报表相对应的命名空间错误:一般是using CrystalDecisions.Shared; using CrystalDecisions.CrystalReports.Engine; 这两个命名空间引用找不到: 解决方法: 一.VS2008

  • vb.net发布水晶报表程序步骤

    下面是用vs.net打包的过程,注意最后关于水晶的问题: 1.打开你的.net,用鼠标右击你的工程(解决方案),选择add new project(添加新建项目).  2.选择setup and deployment projects(安装和部署项目)的 web setup project(web安装项目).(注意setupproject的存放路径.通常默认) 3.vs的窗口会显示文件系统(you setup name).用鼠标点击左栏下的"web application folder"

  • 水晶报表asp.net的webform下基本用法实例

    本文实例讲述了水晶报表asp.net的webform下基本用法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: protected void Page_Init(object sender, EventArgs e) {      ConfigureCrystalReport();  } protected void Page_Unload(object sender, EventArgs e)  {          if (rptDocument == null)     

随机推荐