水晶报表讲义.doc

上传人:文库蛋蛋多 文档编号:3850217 上传时间:2023-03-25 格式:DOC 页数:58 大小:4.35MB
返回 下载 相关 举报
水晶报表讲义.doc_第1页
第1页 / 共58页
水晶报表讲义.doc_第2页
第2页 / 共58页
水晶报表讲义.doc_第3页
第3页 / 共58页
水晶报表讲义.doc_第4页
第4页 / 共58页
水晶报表讲义.doc_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《水晶报表讲义.doc》由会员分享,可在线阅读,更多相关《水晶报表讲义.doc(58页珍藏版)》请在三一办公上搜索。

1、水晶报表课程讲义苏州工业园区博思企业管理咨询有限公司第一章水晶报表的作用4第二章 做一个简单的报表5第三章 报表打印位置与打印机设置71、报表打印位置72、打印机设置7第四章 数据库专家8第五章 报表中字段81、数据库字段82、公式字段83、sql表达式字段84、参数字段95、运行总计字段116、特殊字段127、文本字段128、图片字段13第六章 排序、分组、过滤151、排序152、分组163、过滤17第七章 多节报表181、防止可变长度的对象相互覆盖182、当字段为空时消除空白行193、在特定情况下添加空白行204、使对象延续到后续节22第八章 图表221、图表类型222、使用数据库中字段绘

2、制图表293、使用汇总或小计字段上绘制图表354、在交叉表中绘制图表39第九章 OLE对象391、插入静态OLE对象402、插入嵌入对象403、插入链接对象41第十章 交叉表421、交叉表示例422、在交叉表中插入图表44第十一章 报表警报47第十二章 公式481、公式的用途492、公式的创建49第十三章 自定义函数511、自定义函数的使用51第十四章 子报表541、子报表与主报表之间的区别542、何时使用子报表543、将不相关的报表组合到单个报表中554、一对多查询565、协调无法链接的数据586、在单个报表中显示相同数据的不同视图59第一章 水晶报表的作用一、创建所能想象的任何报表Crys

3、tal Reports 几乎可以从任何数据源生成您需要的报表。本课程主要以sql server数据库为例讲解从数据库中生成报表,本课程注重实战,重点讲述实际编程创建报表时的常用功能,由于时间有限,不常用的功能将只简单论述。二、将报表扩展到 Web可以用各种各样的格式发布报表,包括用 Microsoft 的 Word 和 Excel 发布、PDF、 Web 发布等。三、将报表并入应用程序通过将 Crystal Reports 的报表处理功能整合到自己的数据库应用程序中,应用程序和 Web 开发人员可以节省开发时间并满足用户的需求。Crystal Reports 支持大多数流行的开发语言,可以方便

4、地在任何应用程序中添加报表。第二章 做一个简单的报表1、选择数据源。选择水晶报表自带的xtreme.mdb 这个access数据库,此文件安装在 Program FilesCrystal DecisionsCrystal Reports 10SamplesChsDatabases 目录下。2、选择数据库中的customer表中的Customer Name, City, Region。3、调整位置 4、预览数据点击左方选项卡中的预览选项。5、增加标题增加标题有三种办法。第一种方法:在“字段资源管理器”“特殊字段”中将“报表标题”拉到报表中。“报表标题”显示的文字在“文件”菜单“摘要信息”的“标题

5、”字段中设置。(此方法编程中极少使用)。第二种方法:点击按钮,在报表中插入文本对象,然后编辑文本中的文字。(此方法编程中较少使用,关键在于标题是写死的,灵活性不高)。第三种方法:通过sql语句中从数据库中取标题。(该种方法编程中最常用,在后面会详细论述)。第三章 报表打印位置与打印机设置1、报表打印位置每个报表区域都有自己的打印特性。它们影响到不同的报表对象输出显示的时间和频率。报表区域分报表页眉、组页眉、详细资料、组页脚、报表页脚、页脚、区域按照在“设计”选项卡上出现的顺序(从顶到底)打印。如果在区域内有多个节,则按其出现的顺序打印。例如,如果有三个报表页眉节,在页眉区域内的节开始打印之前,

6、将首先打印这三个节。报表页眉中的对象在报表的开始处打印一次。页眉中的对象在每页的开始处打印一次。组页眉中的对象在每个组的开始处打印一次。组页脚中的对象在每个组的末尾处打印。报表页脚中的对象在报表末尾处打印一次。页脚中的对象在每页的底部打印。2、打印机设置制作报表时必须在“文件”“打印机设置”中设置纸张大小。制作报表时必须在“文件”“页面设置”中设置页边距。第四章 数据库专家“数据库专家”提供可以用于 Crystal Reports 的所有数据源的集成树形视图。“数据库专家”是水晶报表的最重要的部分,它关系到需要显示何种数据,而水晶报表的其它内容只是处理如何显示的问题。在“数据库专家”中,可以从

7、以下内容选择报表数据源:1、 当前已连接的数据源。 2、 已保存到 Crystal 储备库中的 SQL 命令。 3、 已添加到“收藏夹”文件夹中的数据源。 4、 最近访问过的数据源(“数据库专家”自动为您维护一个包含这些数据源的列表)。 5、 现有的数据源(例如,本地驻留的数据文件,或已经建立的 ODBC 数据源)。第五章 报表中字段报表中字段包括数据库字段、公式字段、SQL 表达式字段、参数字段、运行总计字、特殊字段、文本对象、图片字段、Blob字段、超级连接字段等及设置上述字段的格式。1、数据库字段数据库中取出的字段为数据库字段。2、公式字段若要显示为计算所得到的值的数据,需要创建公式字段

8、并将该公式字段放在报表上,详见后续章节。3、sql表达式字段 SQL 表达式与公式相似,但它们以结构化查询语言 (SQL) 编写,而不是以 Crystal Reports 公式语言编写,它们最大的区别是SQL 表达式执行的任务通常是在数据库服务器上执行的,可以优化查询速度。所以尽量少用公式字段,而使用sql语句。4、参数字段 若要提示报表用户输入信息,可创建参数字段。即查询条件。参数字段中的参数支持布尔值、货币、日期、数字、字符串这些数据类型。操作方法:(1)、在“视图”菜单上单击“字段资源管理器”。 选择“参数字段”并单击“新建”。 出现“创建参数字段”对话框。(2)、在“名称” 字段中输入

9、参数的名称(最多 255 个字母数字字符),本例使用“city”。 在“提示文本”字段中输入想要的提示文本,本例中输入“请选择城市:”。“值类型”要根据数据库中查询的字段类型来选择,由于本例中需查询数据库中customer表中的city字段,所以值类型选择字符串。(3)、单击“设置默认值”。出现“设置默认值”对话框。进行检查以确定将“浏览表”设置成“customer”。 从“浏览字段”下拉列表中选择“city”。单击将所有城市移动到“默认值”区域。本例使用户能够从任何城市中进行选择。若想限制选定范围,只移动希望用户从中进行选择的城市。(4) 、单击确定关闭对话框,此时在参数字段下面会添加一个“

10、city”字段。(5)、在“报表”菜单上单击“选择专家”,输入查询条件。(6)、每次预览时会提示输入参数并查询出符合条件的数据。5、运行总计字段显示一个对数字类型字段进行计算的总计。操作方法:(1) 、选中要汇总的字段,然后单击,会自动增加一列汇总字段。(2)、对汇总字段按鼠标右键,在弹出菜单中选择“编辑汇总”选项,可以修改汇总的内容是求和还是平均等。6、特殊字段特殊字段即水晶报表自带的一些如“页码”、“记录号”、“组号”、“打印日期”和“总页数”等字段,可以将之插入到报表中。7、文本字段文本对象在报表中的用途有很多。文本对象是一种功能强大的方法,可用来插入标题、标记汇总及报表上其它数据,并且

11、能方便地组合数据库字段。文本对象的主要功能为a.写入文本。b.组合数据库字段及文本。操作方法:写入文本:将文本字段放入报表,双击文本字段写入文本。组合数据库字段:将文本字段放入报表,将数据库字段拖入文本字段中。例如将customer表中的Contact first name和Contact last name字段放入文本字段中并用“。”隔开。8、图片字段 当设计报表时,经常会需要加入一幅图片。例如,您可能希望将一个公司徽标放在报表页眉中。操作方法:(1)、在“插入工具”工具栏上,单击“插入图片”。出现“打开”对话框。(2)从文件列表选择所需的图片文件,并单击“打开”以返回到报表。出现一个对象框

12、架,其内为该图片,准备进行定位。(3)、将图片对象放在报表中希望它出现的位置,并左击一次。(2) blob字段blob字段即sql server数据库中的image字段、access中的old对象字段,将 BLOB 字段插入到报表中将允许您像访问其他数据类型一样访问这些二进制对象。(3) 超级链接字段点击某个字段可以自动打开设置的超级链接。操作方法:对字段按右键,在弹出菜单中选择“格式菜单”项,出现“格式化编辑器”,在“格式化编辑器”的“超级链接”选项卡中定义超级链接即可。(4) 设置字段格式方法1:对字段按右键,在弹出菜单中选择“格式字段”选项,出现“格式化编辑器”,在“格式化编辑器”中对字

13、段格式进行设置。方法2:对字段按右键,在弹出菜单中选择“突出显示专家”选项,出现“突出显示专家”,在其中对数字类型字段的字体颜色进行设置。第六章 排序、分组、过滤 排序、分组、过滤强烈推荐在数据库专家中使用sql语句来操作,这样可以大大加快查询速度。1、排序排序就是以某种有利于查找及计算数据的顺序放置数据,即sql语句中的order by。操作方法:在“报表”菜单上选择“记录排序专家”,在“记录排序专家”的“可用字段”中选择需排序的字段及排序方向,按确定即可。2、分组分组数据是指将其排序并按一定意义分组的数据,即sql中的group by。操作方法:(1)、在“报表”菜单上,单击“组专家”。

14、出现“组专家”对话框。在“组专家”中选择分组的字段及排序即可。(2)、自定义组:在“报表”菜单上,单击“组专家”。 出现“组专家”对话框。在“组专家”中选择分组的字段及排序即可,然后点击“选项”按钮,选择“自定义组名称和字段”、编写公式即可。3、过滤过滤即是sql中的where语句。操作方法1:在“专家工具”工具栏上,单击“选择专家”。出现“选择专家”对话框。在“选择专家”对话框中组织条件语句。操作方法2:使用公式。在“报表”菜单上,指向“选择公式”,然后单击“记录”。在“记录选定公式编辑器”中输入公式。详见公式章节。第七章 多节报表水晶报表的节分为报表页眉、页眉、详细资料、报表页脚、页脚这五

15、种情况。单击“专家工具”工具栏上的“节专家”可以增加、删除、移动、合并节。报表中使用多节报表主要实现1、防止可变长度的对象相互覆盖;2、当字段为空时消除空白行;3、在特定情况下添加空白行;4、使对象延续到后续节等功能。1、防止可变长度的对象相互覆盖当一个报表的子报表或其他可变长度的对象放到节的其他对象上,而“格式化编辑器”中该可变长度对象的“可以扩大”选项被打开,那么这个对象可能会套印正在其下的对象,除非已经将节扩展到适合对象的最大尺寸。此时可以用创建多个节和将对象放在其所在节的可变长度对象之下的方法来消除这种套印问题。操作方法:(1)、使用节专家新建一个“详细资料”节。(2)、将一个报表的子

16、报表或其他可变长度的对象放到上方的“详细资料”节中,其它对象放到下方的“详细资料”节。2、当字段为空时消除空白行在数据库表employee_addresses表中,地址有address1、address2两行。通常“地址 1”包含值,而“地址 2”经常为空。如果使用这些数据创建了一个客户列表,并且在另一个邮件标签格式之上堆叠了这些字段,那么那些“地址 2”字段为空的客户记录将打印为空白行。可以通过使用多个节或抑制显示空白行的方法来消除该空白行。操作方法:(1)、建立一个使用employee_addresses表的报表。(2)、使用“节专家”来创建两个新的“详细资料”节,这样一共就有三个了。将“

17、地址 2”字段放置于中间一节中,其他的数据则按照想要在报表中显示的位置放置在上面和下面的节中。(3)、在“节专家”中选中中间一节。在“公用”选项卡上选择“抑制显示空白节”复选框。3、在特定情况下添加空白行在特殊情况下使用多个节在报表中打印空白行。例如,可能想在报表中每隔五行插入一个空白行。操作方法:(1)、使用“节专家”来创建两个“详细资料”节,将报表的详细数据放置在顶部的节中,使下方的节为空。(2)、在“节专家”中突出显示第二节,在“公用”选项卡上选择“抑制显示(无深化)”复选框,然后单击其右边的条件格式化按钮。在“格式化公式编辑器”中输入以下公式: Remainder (RecordNum

18、ber,5)0该公式将每个记录号除以 5。如果此除法运算产生了余数,则它抑制显示空白节。但是,如果没有余数,也就是余数为零(每打印五个记录出现一次),那么程序将打印第二节,这样就插入了一个空白行。4、使对象延续到后续节若要使某个对象延伸到后续节,请首先将该对象放在需要将其延伸到的节上方的一节中。然后为放置对象的节选择“节专家”中的“延伸到后续节”复选框。第八章 图表 水晶报表能够用图表方式显示汇总的数据并能深化以查看图形汇总的详细资料。水晶报表可以根据汇总和小计字段、详细资料、公式和运行总计字段、交叉表汇总来绘制图表。图表在报表中的位置决定显示哪些数据以及在哪里打印。例如,如果将图表放置于“报

19、表页眉”节,图表便包含整个报表的数据。如果放置于“组页眉”或“组页脚”节,则显示组的特定信息。1、图表类型不同的数据组适合不同的图表类型。下面是主要图表类型及其常见用途的概述。(1)、条形图大多数条形图(也称作柱形图)显示或比较多个数据组。两种有用的条形图是并排条形图和堆积条形图。并排条形图以一系列垂直条显示数据。这种类型的图表最适于表示跨越一段时间的多个数据组(例如 AZ、CA、OR 和 WA 地区去年的销售数字)。堆积条形图以一系列垂直条显示数据。这种类型的图表最适合表示三个系列的数据,每个系列的数据由一种颜色表示,堆积在一个柱形中(例如 1997 年、1998 年、1999 年的销售)。

20、(2)、折线图折线图用一系列以折线相连的点表示数据。这种类型的图表最适于表示大批分组的数据(例如过去几年的销售总额)。(3)、面积图面积图用填充了颜色或图案的面积来显示数据。这种类型的图表最适于显示有限数量的若干组数据(例如,AZ、CA、OR 和 WA 地区在销售总额中所占的百分比)。(4)、饼图饼图用分割并填充了颜色或图案的饼形来表示数据。饼图通常用来表示一组数据(例如销售占整个库存的百分比)。(5)、圆环图圆环图类似于饼图,将数据显示在圆圈或圆环上。例如,如果在一个特定报表上绘制按地区分类的销售图表,会在圆环的中心看到销售总量(数据),各地区的销售额以不同颜色显示在圆环上。像饼图一样,您可

21、以选择多个圆环图来显示多组数据。(6)、三维梯形图三维梯形图以一系列三维对象显示数据,这些三维对象在三维平面并列排列。三维梯形图显示报表数据中的极端情况。例如,客户以及国家/地区间的销售额差异在此图中可以动态地显示出来。(7)、三维曲面图三维曲面图展示多组数据的地形视图。例如,如果需要一张图表,以可视的动态及相互关联的格式、按客户及国家/地区显示销售数量,或许会考虑使用三维曲面图。(8)、XY散点图XY 散点图是由代表信息池中特定数据的绘制点组成的集合。XY 散点图允许用户考察大范围的数据来确定趋势。(9)、雷达图雷达图将国家/地区或客户等分组数据放置于雷达的边缘。雷达图将数值按升序从中心向边

22、缘排列。通过这种方式,使用者一看便知特定分组数据与全体分组数据的关系。(10)、气泡图气泡图将数据表示为一系列气泡,气泡的大小与数据量成正比,适用范围同XY 散点图。(11)、股票图 股票图(即K线图)用来表示数据值的高低。在监视金融或销售行为方面很有用。(12)、数轴图 数轴图就是以数值字段或日期/时间字段作为其“依据”字段(X轴)的条形图、折线图或面积图。数轴图提供了一种缩放 X 轴的值的方法,从而创建真正的数值 X 轴或真正的日期/时间 X 轴。(13)、量度图量度图以图形化的方式将数值显示为量具上的点。适用范围同饼图,量度图通常用于一组数据(例如,整个库存中销售所占的百分比)。(14)

23、、甘特图甘特图是一种水平条形图,通常用于时间表进度的图形化表示。横轴显示时间范围,纵轴显示一系列任务或事件。图表上的水平条表示纵轴各项的事件序列及时间范围。在创建甘特图时应仅使用日期字段。为数据轴选择的字段应设置为“对于每个记录”,并且应将开始和结束日期字段添加到“图表专家”中“数据”选项卡的“显示值”区域。(15)漏斗图漏斗图。通常用于客户关系管理产品,如销售漏斗图等。2、使用数据库中字段绘制图表此处以customer表为例来制作一个中国客户销售情况的柱状图。(1)、新建一个标准报表。(2)、在数据框中选择xtreme.mdb数据库,选择“添加命令”,输入sql语句(select custo

24、mer_name,country,last_year_sales from customer where country = china)。(3)、在“要显示的字段”中选择所有字段,并调整显示顺序。(4)、点击“完成”,形成报表,并删除“打印日期”和“页码”字段。(5)、把“报表页眉节”拉伸至合适大小,并在“报表页眉节”中按右键,在弹出式菜单中选择“不抑制显示”,将报表页眉显示出来。同理将“页眉节”和“详细资料节”抑制显示(其中的字段删不删都可以)。(6)、点击按钮在报表中插入图表,在图表专家对话框中选择二维并排条形图。(7)、选择“图表专家”的“数据页”,选择“customer_name”作

25、为图表的X轴,“last_year_sales”作为图表的Y轴。(8)、选择“图表专家”的“文本页”,将“标题”(即报表标题)改为“客户销售情况表”,将“组标题”(即X轴的文字说明)改为“客户名称”,将“数据标题”(即Y轴的文字说明)改为“销售额”.(9)、生成的报表如下。(10)、报表预览如下。(11)、此时销售额的具体数字在图中还没有显示。此时在设计状态下对图表按右键、选择“图表选项”“常规”,出现“图表选项”对话框。在“图表选项”对话框中选择“数据标签”页,选择“显示数据标签”。(12)、最终图表显示如下。3、使用汇总或小计字段上绘制图表此处以customer表为例来制作一个国家销售情况

26、的饼状图。操作方法:(1)第一步到第四步同使用数据库中字段绘制图表,只是sql语句为(select customer_name,country,last_year_sales from customer where left(country,1) = C)。(2)、在“报表”菜单中选择组专家,“分组依据”设为“country”字段,完成后如下图。(3)、增加last_year_sales字段的组汇总。(4)、把“报表页眉节”拉伸至合适大小,并在“报表页眉节”中按右键,在弹出式菜单中选择“不抑制显示”,将报表页眉显示出来。同理将“页眉节”和“详细资料节”等抑制显示(其中的字段删不删都可以)。(5

27、)、点击按钮在报表中插入图表,在图表专家对话框中选择饼图。(6)、选择“图表专家”的“数据页”,“布局”选择“组”,选择“country”作为图表的X轴,“last_year_sales的和”作为图表的Y轴。(7)、选择“图表专家”的“文本页”,将“标题”(即报表标题)改为“国家销售情况表”。(8)、此时销售额的具体数字在图中还没有显示。此时在设计状态下对图表按右键、选择“图表选项”“常规”,出现“图表选项”对话框。在“图表选项”对话框中选择“数据标签”页,选择“显示值”。(9)、完成报表。4、在交叉表中绘制图表 参见交叉表章节。第九章 OLE对象OLE 是 Object Linking an

28、d Embedding(对象链接与嵌入)的缩写形式。OLE对象包括静态对象、嵌入对象、链接对象。静态 OLE 对象是对象的图片,它可以显示和打印,但不能在原地进行编辑。它与服务器应用程序之间没有连接。静态对象有两种:静态位图和静态图元文件。嵌入对象包含对象的某种表示形式以及定义其内容的信息。它与服务器文档中的原始对象没有连接。一般来讲,当需要独立于原始服务器文档之外编辑对象时使用嵌入对象。当双击一个嵌入的 OLE 对象时,会激活该对象以进行编辑链接对象包含数据的某种表示形式和一个指向其原始文件的链接。一般来讲,当服务器文档中的数据不断变化,而您希望在打开报表时对报表中的对象进行更新,则使用链接

29、对象。当双击一个链接的 OLE 对象时,程序会打开该对象的服务器应用程序,并在其中显示该对象且该对象可以进行编辑。1、插入静态OLE对象即点击按钮插入图片。2、插入嵌入对象 以在报表中插入excel文档为例。(1)、在“插入”菜单中选择“OLE对象”,出现“插入对象”对话框,在“插入对象”对话框的“对象类型”中选择Excel。(2)、将Ole对象拖放到报表的合适位置并调整大小,双击Excel即可对自动调用excel其进行编辑。3、插入链接对象以在报表中插入excel文档为例。(1)、在“插入”菜单中选择“OLE对象”,出现“插入对象”对话框,选择“由文件创建”,选择要插入的excel文件,并选

30、择“链接”复选框(不选的话就是嵌入对象)。(2)、将Ole对象拖放到报表的合适位置并调整大小,双击Excel即可对自动调用excel其进行编辑,也可以直接在excel中进行编辑。(3)、报表每次重新打开是会自动链接Ole对象,刷新最新的数据。也可以双击Ole对象进行刷新。第十章 交叉表“交叉表”对象是一个网格,用于显示在两个方向进行分组和汇总的值。如上图所示,交叉表中的每一个值显示的都是数据库中的汇总数据。1、交叉表示例(1)、新建一个报表、在“选择向导”区中,单击“交叉表”。 (2)、在数据框中选择xtreme.mdb数据库,选择“添加命令”,输入sql语句(select d.region,

31、a.product_class,b.order_amount from product a,orders b,orders_detail c,customer d where a.product_id=c.product_id and b.order_id=c.order_id and b.customer_id = d.customer_id)。(3)、点击“下一步”,将“region”(即“地区”)字段即添加到“行”区;“product_class”(即“产品类”)字段即添加到“列”区;“order_amount”(即“订单金额”) 字段即添加到“汇总字段”区。(4)、点击“下一步”,出现

32、“图表选择框”,此处暂不选择,后面会讲述;再点击“下一步”出现“网格样式”选择框,此处可选择合适的图表样式。(5)、点击“完成”按钮完成图表。2、在交叉表中插入图表(1)、在上图的交叉表中点击按钮在报表中插入图表,在图表专家对话框中选择条形图。(2)、选择“图表专家”的“数据页”,“布局”选择“交叉表”,选择“product_class”作为图表的X轴,“order_amount的和”作为图表的Y轴。(3)、选择“图表专家”的“文本页”,将“标题”(即报表标题)改为“产品销售情况表”;将“组标题”改为“产品名称”;数据标题改为“销售金额”,按确定增加图表。(4)、此时销售金额的具体数字在图中还

33、没有显示。此时在设计状态下对图表按右键、选择“图表选项”“常规”,出现“图表选项”对话框。在“图表选项”对话框中选择“数据标签”页,选择“显示值”。(5)、完成报表。第十一章 报表警报报表警报是用对指定条件进行计算的公式创建的。如果条件为真,则触发警报并显示出警报消息。创建报表警报时,必须完成下列三个步骤:1、 命名警报。 2、 定义触发警报的条件。 3、 创建希望在触发警报时显示的消息(此步骤是可选的)。 操作方法:1、在“报表”菜单上,指向“警报”,然后单击“创建或修改警报”。 出现“创建警报”对话框。2、单击“新建”。 出现“创建警报”对话框。在“名称”框中输入新警报的名称。在“消息”框

34、中输入警报消息或使用公式创建警报消息。3、单击“条件”出现公式工作室。在其中输入警报条件公式。4、警报设好后,在刷新时可以看到警报。第十二章 公式需要在报表中放置不存在于任何数据字段中的数据时便需要创建公式。建议能用sql语句取代的就不要创建公式,以加快速度。创建公式时,可以选择使用 Crystal 语法或 Basic 语法。1、公式的用途(1)、创建计算字段添加到报表例如:计算打折 15% 后的价格。公式为:订单细节.单价*.85(2)、格式化报表上的文本例如:将“客户名称”字段中的所有值更改为大写字母。公式为:UpperCase (客户.客户姓名)。(3)、提取字段中的一个部分或多个部分例

35、如:提取客户名称的第一个字母。公式为:客户.客户姓名1。(4)、使用自定义函数参见自定义函数章节。2、公式的创建以下以创建customer表中last_year_sales字段中值10000的记录显示红色的公式为例来说明如何创建公式。(1)、创建报表的sql语句为“select * from customer”,创建完成的报表如下:(2)、对last_year_sales字段按右键,在弹出菜单中选择“格式字段”,出现“格式化编辑器”,在“格式化编辑器”中选择字体tab页。(3)、点击“颜色”后的按钮,出现“公式工作室”,在“公式工作室”中输入公式(if 命令.Last_Year_Sales 1

36、0000 then crRedelse crBlack)(4)、确定后预览数据,此时last_year_sales字段中值10000的记录显示红色。第十三章 自定义函数自定义函数是在 Crystal Reports 中创建的用于对数据进行求值、计算或转换的过程。可以在公式中调用。1、自定义函数的使用以下以创建customer表中last_year_sales字段中值10000的记录显示红色的自定义函数并在公式中使用为例来说明如何创建自定义函数。(1)、创建报表的sql语句为“select * from customer”,创建完成的报表如下:(2)、选择“报表菜单”中的“公式工作室”,打开“公

37、式工作室”对话框。(3)、对“报表自定义函数”按右键,在弹出菜单中点击“新建”,在对话框中输入公式名称,并点击“使用编辑器”按钮,在编辑器中输入函数(Function (NumberVar Num1)if Num1 10000 then crRed else crBlack)保存函数。(4)、对last_year_sales字段按右键,在弹出菜单中选择“格式字段”,出现“格式化编辑器”,在“格式化编辑器”中选择字体tab页。(5)、点击“颜色”后的按钮,出现“公式工作室”,在“公式工作室”中输入公式(test(命令.Last_Year_Sales),此时调用了刚才自定义的函数。(6)、确定后预

38、览数据,此时last_year_sales字段中值10000的记录显示红色。第十四章 子报表子报表是报表中的报表。使用子报表,可以将不相关的报表合并到一个报表中。1、子报表与主报表之间的区别(1)、子报表是作为对象插入到主报表中;它不能独立存在(但可以将子报表另存为主报表)。 (2)子报表可以放置在报表的任意一节内,整个子报表将在该节中打印。(3)、不能包含另一个子报表。(4)、不要包含页眉或页脚节。 2、何时使用子报表在如下四种情况下可以使用子报表:(后面会一一详细论述)(1)、将不相关的报表组合到单个报表中。(2)、一对多查询。(3)、协调无法链接的数据。(4)、在单个报表中显示相同数据的

39、不同视图。3、将不相关的报表组合到单个报表中报表中的每一个都是独立的;任何报表中的数据不以任何方式链接到另一个报表中的数据。操作方法:(1)、将最先要打印的报表创建为主报表。(2)、点击“插入”菜单中的“子报表”选项,出现“插入子报表”对话框,输入“新建报表名称”。(3)、点击“报表向导”按钮,创建子报表,子报表的sql语句为“select * from orders”,将创建好的子报表放在“报表页脚”中,它将紧接在主报表之后打印。(如果有多个子报表就创建多个报表页脚)。(4)、可以点击“child1”tab页对子报表进行修改并预览。(5)、完成报表。4、一对多查询主报表报表中的每一条都对应子

40、报表中的多个数据。操作方法:(1)、第一到第四步都与“将不相关的报表组合到单个报表中”的操作步骤相同,只是将子报表拖到主报表的详细资料节中。(2)、对子报表按右键,选择“更改子报表链接”,出现“子报表链接”对话框中,此时我们要将customer表中的customer_id字段与orders表中的customer_id字段链接,使得在主报表中选择一个客户后,在子报表中显示该客户的订单情况。链接如下:(3)、对子报表按右键,选择“设置子报表格式”,出现“格式化编辑器”对话框中,在“格式化编辑器”对话框中选中“子报表”tab页,在其中选择“按需要显示子报表”。(如果不选择“按需要显示子报表”,在详细

41、资料节中的子报表消耗的资源较大)。(4)、完成后的报表如下:(5) 、预览如下,(6)、此时双击每一行后的子报表会显示相对于该行的子报表信息。(即该客户对应的订单信息)。5、协调无法链接的数据 协调无法链接的数据一般情况下即为使用公式字段进行链接。操作方法:(1)、根据“一对多查询”的报表,在主报表和子报表中都建立一个公式customer_id1:(Left (CStr (命令.Customer_ID),1 ) = 1)。(2)、更改子报表链接关键字段为公式customer_id1。(3)、完成报表。6、在单个报表中显示相同数据的不同视图子报表可用于在主报表中提供数据的不同视图。例如,可能需要在报表上部显示汇总值,在下部显示详细信息。这可以通过两种方法完成。 (1)将汇总报表创建成主报表,将详细信息报表创建成子报表。在此方法中,详细信息子报表放置在“报表页脚”节中。 (2)将详细信息报表创建成主报表,将汇总报表创建成子报表。在此方法中,汇总报表放置在“报表页眉”节中。操作方法同一对多查询。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号