[分享]Crystal Reports 2008 (设计篇)------- 参数字段设置及子报表开发

黄巧克力 2009-12-02 08:04:47
加精

列位看官,上期节目(安装及简单报表设计),我们已经成功的用CrystalReport 2008 开发了一张具有汇总功能的初级水晶报表。本期节目我们将在现有报表基础上研究更深层次水晶报表功能。
参数字段的设置:
上图!

前面的介绍中,我们已经对报表进行分组统计,现在我们队这些经过分组后的条目进行汇总统计,我们需要用到运行汇总字段:
比如本报表中,我们需要进行每一分组条目的所有产品的总平方、总重箱、总片数进行统计,我们需要新建三个汇总字段,总平方、总重箱、总片数。
上图!

请看左侧的下拉框,我们可以利用其中的某一字段作为基础数据进行会求和汇总,求积汇总以及求平均值等多种汇总。但是对于我们的总重箱和总平方来说,是由单件重箱和单件平方来进行求和统计的,且我们的报表字段以及数据库原始字段中都找到关于这两个量的记录,我们就需要对上述两个记录进行预先处理,即建立两个名为“平方”和“重箱”的公式字段,按照各自的计算公式得出值。
上图!

公式字段中新添加了两个字段,我们在公示编辑区域,编写他们各自的公式,实际上就是利用已有字段进行加减乘除等数学运算。
建好字段后我们可以进行汇总统计了,上图!

右键单击运行汇总字段---新建三个汇总字段!汇总类型选择“和”,求值选择对于每条记录,重置选择组更改时,选择任何一个组都可以,因为我们的分组形成后,将汇总字段放置于组名字段平行的行内,他们会按每条汇总记录进行计算的,所以上面的求值和重置选择是很重要的,一定要选择正确。注意在总重箱和总平方设置汇总时,“要汇总的字段”应选择前面建好的两个公式字段。
建好以后,将三个汇总字段拖入报表页面,添加三个标题,预览一下,一张带有汇总统计功能的报表就做好了。上图!

这里的数据可能格式不太符和我们的要求,那么我们可以右键—设置格式进行修正,具体修正方法,不多说了。
效果图如下:

小数点保留位数,起始零的设置,都可以进行设计。

汇总做完,我们要进行数据的筛选设置,这是就要用到我们的参数字段了,我们想要根据我们当时分组时的6个字段的值,进行条件查询操作,那么我们就需要建立6个参数字段分别传递我们选择的参数值,然后交给报表进行筛选查询,上图!以产品品种为例:
右键—参数字段-新建:如图

名称填写产品品种,值列表选择动态之后,下方的选择表格会发生相应变化,因为我们希望报表提供给我们数据库中已经有的字段值进行筛选,所以我们选择动态值列表,对应的值为代表产品品种的编码字段,如果你的数据库结构设计中将产品品种的描述也放在其中,那么你可以选择该描述字段放入“说明”一栏,这一步是可选的,后面的参数我们单击后会变成当前字段,下方的值选项,提供给了我们若干选择条件用来控制该参数的作用类型和作用范围,比如我可以定义该参数是否是你报表中的必选参数,它是否可编辑,它一个参数代表一个离散值还是一个范围值,它是否允许多选,等等。你可以根据实际情况定制你的参数。
确定后参数字段设置完成,上图!

这里需要提醒列位的是,不要觉得参数字段中提供了允许范围值这一选项,我们就可以把日期范围的选择寄托在一个参数身上,让这个参数允许范围值,这样做的结果往往是找不到我们想要的正确数据,建议将日期分为开始和结束两个参数分别设置,这样的数据会比较准确。
参数设置完了,还需要进行参数与数据的关联,即要让查询结果根据参数的不同发生改变。上图!
现将各个参数拖入报表的某个区域,建议放在报表头。

然后,右键单击某个与参数值对应的分组字段,选择专家组

找到当前字段单击确定,

选择等于或者介于(针对范围值需要前后两个参数确定范围的需要进行“介于”,比如时间)对应参数字段。

第二个参数可以直接新建。

确定完成。这样就完成了参数的关联动作了。预览一下!上图!

筛选效果为

左侧出现了 输入筛选条件的工具栏。这样我们一张带有选择条件的报表就开发完成了。
不过不足之处是,我们如果前期选择了JDBC(即非水晶报表默认连接),必须手动再输入一次登录数据库信息,比较头疼,有待高手指点。

下面介绍子报表的开发:
前面的主报表,仅仅是对数据库内详细记录的汇总分组,我们根本的目的还是要有效的查看数据库中的详细记录,也就是要查看明细,这样我们就不能再在这张主报表操作详细信息了,需要再另起一张子报表。上图!

你可以添加你已经开发好的报表作为子报表,也可以添加一张新的报表,说白了,子报表也是报表,他在本质上和主报表没有任何区别,只是他在记录显示方面需要依赖于主报表的某些字段。怎么依赖?我们填写好“新建报表名称”(这里最好起用英文名字因为在某些低版本的水晶报表中是不支持中文名称的),选择下方“按需显示子报表”。确定以后,点击报表向导,答案揭晓!!!上图!

首先,要拖拽新的数据表进入设计界面,和前面的报表向导步骤是一样的。

设置完成后,会回到上面的界面。

切换至“链接”选项卡,开始对主报表和子报表进行连接,上图!

从左边选择需要与子报表进行关联的主报表的字段点击向右箭头,选中。
我们此处需要对前面分组的6个字段组进行全部关联,才能查看每个分组上的明细信息,所以我们把之前6个分组全部加进去,上图!

再添加完后几乎同时,系统会自动在子报表中新建参数字段用来连接,我们刚才需要关联的主报表字段,这些信息会在下方字段连接中有所体现,你也可以更改这些链接。一般选择默认。确定,完成!上图!

因为我们之前选择了 ,按需显示所以子报表在主报表中是以超链接形式体现,这样显得思路比较清晰。预览一下!上图!


而且,参数设置完成后,打开预览,出现以下问题。上图!

确定后,焦点停在了这里!上图!

回到报表,重新设定条件,点击确定后,报表查询正常,但单击子报表连接,我的机器死掉了,重启以后,我发现原来做的子报表都没保存,以前同事也遇到过这种情况,我分析可能是连接问题,子报表跟主报表一样需要输入登录信息后才能连接,但是子报表没有提示输入登录信息,子报表连接没有打开,报表强行读取数据,导致长时间占用CPU导致死机。不知这种解释成立不成立。查找原因,我们回到原来的参数字段设计,查看系统为我们建的参数查询条件是什么,从这里找一下原因。
看一下上一幅图,文本框中的查询条件是:
(not HasValue({?产品品种}) OR {数据库字段} = {?产品品种})
and
(not HasValue({?产品长度}) OR {数据库字段} = {?产品长度})
and
(not HasValue({?产品宽度}) OR {数据库字段} = {?产品宽度})
and
{数据库字段} in {?开始日期} to {?结束日期}

系统在添加“介于”条件时,没有添加类似于“not HasValue({?产品宽度}”的允许空条件。所以我们需要人工修改筛选条件,在 最后一个“and”后添加如下代码:
not HasValue({?开始日期}) OR not HasValue({?结束日期}) OR

并将最后关于时间的筛选条件用括号包裹,表示整体成立即合理。返回报表预览,显示正常!但是经过时间筛选后的结果比正式结果少了很多条,所以in…to….条件不太适合。

经过试验我们决定将条件设定进行一定的改造。
将条件中{数据库字段} in {?开始日期} to {?结束日期}
改为
{数据库字段} >= {?开始日期}
and
{数据库字段} <= {?结束日期}


在子报表中也设定两个相应的参数:开始日期和结束日期。在子报表连接中将主报表中的两个参数与子报表中的两个参数相对应,试验后结果正确操作步骤,上图!
注意:分组统计时,如果要显示正确的汇总结果,应把组名字段放在某个组的尾部,统计数据才会正确。



设定子报表连接时,对于特殊的报表字段在选择连接的时候要进行人为选择,才能保证连接正确!


预览一下子报表的效果吧!
主报表效果:

详细的明细信息:

截止本章,我们已经完成主报表和子报表的关联,加前面讲到的分组汇总和条件筛选,我们已经能够用水晶报表完成一些基本的数据统计操作了,后面的文章将对设计格式进行简单讲解,还有就是将介绍如何将水晶报表嵌入.NET 环境和JAVA环境进行集成应用。敬请关注!
...全文
5105 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigheadsheep 2012-05-11
  • 打赏
  • 举报
回复
看着满屏幕的黑条,就没心情看下去了

不过还是谢谢楼主
decode360 2012-02-27
  • 打赏
  • 举报
回复
总是连接数据源这个问题怎么解决?
billy_ou 2012-02-20
  • 打赏
  • 举报
回复
先顶了再说
黄巧克力 2010-10-12
  • 打赏
  • 举报
回复
可以吧,上面说的和子报表的关联应该就可以啊
只要你的子报表的主键设置好就是了
ke_le07 2010-10-12
  • 打赏
  • 举报
回复
用编程怎样去子报表啊
what_up_michael 2010-09-27
  • 打赏
  • 举报
回复
能不能改成当点击某一行的某一字段(此字段是子报表的关键字),然后跳到子报表,显示相应的明细表?
wowowoking 2009-12-07
  • 打赏
  • 举报
回复
好,谢谢。
zxkid 2009-12-07
  • 打赏
  • 举报
回复
楼主在学涂鸦 看着别扭
agel0ver 2009-12-07
  • 打赏
  • 举报
回复
学习了
tandy945 2009-12-07
  • 打赏
  • 举报
回复
不错不错,楼住辛苦了,谢谢啊!
x12x12x 2009-12-06
  • 打赏
  • 举报
回复
好东西!
cici_wang_ 2009-12-06
  • 打赏
  • 举报
回复
thank you
ap0704110 2009-12-05
  • 打赏
  • 举报
回复
?????????????
风斯火 2009-12-05
  • 打赏
  • 举报
回复
阿泰推荐。

重要资料,版面留存。
TOMA_LY 2009-12-05
  • 打赏
  • 举报
回复
谢谢分享,学习中!
kangkgq610 2009-12-05
  • 打赏
  • 举报
回复
好资料谢谢分享!!!学习了。
3tzjq 2009-12-05
  • 打赏
  • 举报
回复
楼主在学涂鸦,鉴定完毕!
czhuestc 2009-12-05
  • 打赏
  • 举报
回复
帮顶
sharpidd 2009-12-05
  • 打赏
  • 举报
回复
学习了.
mingchaozhu 2009-12-04
  • 打赏
  • 举报
回复
帮顶
加载更多回复(16)
======================================================= == 如果喜欢英文文档的朋友 == Crystal-Reports-2008-For-Dummies.pdf == == 链接: == http://download.csdn.net/download/a6566232/4627865 ======================================================= Crystal Reports 2008 用户指南 Crystal Reports 2008 Windows 2.1 介绍.....................................................31 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 利用 Flash、Flex 和 Xcelsius 实现的高级信息可视化...32 改善的最终用户报表查看体验..........................33 增强的报表设计器功能................................33 新增的灵活部署选项..................................34 灵活的应用程序集成..................................35 2.2 不同之处.................................................35 第 3 章安装 Crystal Reports 2008 37 3.1 安装概述.................................................37 3.2 安装 Crystal Reports 2008................................37 3.3 安装要求.................................................38 3.4 在本地计算机上安装 Crystal Reports.......................38 3.4.1 在本地计算机上安装...................................39 3.5 创建安装点并从网络服务器进行安装.........................45 3.5.1 创建 Crystal Reports 的安装点........................46 4 Crystal Reports 2008 用户指南 3.5.2 从网络安装 Crystal Reports...........................46 3.6 自定义安装...............................................52 3.7 运行无提示安装...........................................54 3.8 设置自定义横幅...........................................59 3.9 升级 Crystal Reports 组件................................60 第 4 章快速开始61 4.1 了解如何使用 Crystal Reports.............................61 4.1.1 示例数据 -- Xtreme.mdb...............................61 4.2 报表创建向导.............................................62 4.2.1 标准.................................................62 4.2.2 交叉表...............................................62 4.2.3 邮件标签.............................................62 4.2.4 OLAP.................................................63 4.3 新用户快速入门...........................................63 4.3.1 开始之前.............................................63 4.3.2 创建报表.............................................64 4.3.3 记录选择.............................................75 4.3.4 分组及排序...........................................79 4.3.5 完成报表.............................................82 4.4 高级用户快速开始.........................................83 4.4.1 选择报表类型及数据源.................................83 4.4.2 在“设计”选项卡上处理报表元素.......................84 4.4.3 使用其他报表功能.....................................86 第 5 章报表设计概念88 5.1 基本报表设计.............................................88 目录5 5.2 决定报表内容.............................................88 5.2.1 说明目的.............................................88 5.2.2 确定报表布局 ........................................89 5.2.3 查找数据.............................................90 5.2.4 操作数据.............................................91 5.2.5 确定打印区域特性.....................................92 5.3 设计纸张原型.............................................94 5.3.1 设计纸张原型.........................................94 第 6 章报表创建基础95 6.1 报表创建选项.............................................95 6.1.1 报表创建向导.........................................95 6.1.2 另一个报表...........................................95 6.1.3 新建报表.............................................96 6.1.4 报表创建向导.........................................96 6.1.5 另一个报表...........................................96 6.1.6 新建报表.............................................96 6.2 选择数据源和数据库字段...................................97 6.2.1 数据库专家...........................................97 6.2.2 字段资源管理器.......................................99 6.3 关于报表设计环境........................................101 6.3.1 “设计”选项卡......................................101 6.3.2 “预览”选项卡......................................105 6.3.3 HTML 预览选项卡.....................................109 6.4 创建新报表..............................................110 6.4.1 选择数据源..........................................110 6.4.2 添加表..............................................111 . . . .
Crystal Reports设计用途是,使用数据库来帮助您分析和解释重要的信息。Crystal Reports 可以方便地创建简单的报表,并且,它还拥有生成复杂报表或专用报表所需的一整套工具。 创建所能想象的任何报表 Crystal Reports几乎可以从任何数据源生成您所需要的报表。内置报表专家在您生成报表和完成一般的报表任务过程中,会一步一步地指导您进行操作。报表专家通过公式、交叉表、子报表设置条件格式帮助表现数据的实际意义,揭示可能被隐藏掉的重要关系。如果文字和数字确实不够充分,则用地理地图和图形进行形象的信息交流。 将报表扩展到 Web Crystal Reports 的灵活性并未停留在创建报表这一功能上 — 可以用各种格式来发布报表,其中包括 Microsoft Word 和 Excel,通过电子邮件发布甚至在 Web 上发布。高级的 Web 报表功能允许工作组中的其他成员在他们自己的 Web 浏览器中查看或更新共享报表。 将报表并入应用程序 通过将 Crystal Reports报表处理功能整合到自己的数据库应用程序中,应用程序和 Web 开发人员可以节省开发时间并满足用户的需求。支持大多数流行的开发语言,可以方便地在任何应用程序中添加报表。 无论您是 IT 部门的站点管理员,还是市场营销部门的推广经理,也无论您是财务部门的数据库管理员还是 CEO,Crystal Reports 都堪称是一个功能强大的工具,它可以帮助每一个人分析并理解重要的信息。 Crystal Reports 文档包含典型的报表创建任务过程,比如放置字段设置报表格式和对记录排序。其中还包含多个为人关心的特定内容的有关信息,如创建高级公式、访问不同类型的数据。该文档可作为满足基本报表创建需求的参考,同时也是对报表创建的新概念的介绍。 快速定位信息 可从 Crystal Reports 的帮助菜单访问联机帮助。 使用“内容”选项卡查看联机帮助中所有主要的节,并可向下钻取到每一节中特定的标题;使用“索引”选项卡按字母顺序查看主题;使用“搜索”选项卡输入关键字,以查看与该关键字相关的所有节。 可在 http://support.businessobjects.com/documentation/ 联机访问 Crystal Reports 文档的 PDF 版本。 PDF 版本包含了联机帮助的主题的子集,并且还包括可帮助您了解 Crystal Reports 的附加章节(比如“快速入门”)。 示例报表 Crystal Reports 文档中的许多主题都包含了相关示例报表的列表。使用这些报表可解释主题所描述的概念。您可根据自己的需要改变这些示例报表。 示例报表位于 Business Objects 技术支持网站 http://support.businessobjects.com/samples/ 上。

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧