Crystal报表设计以及公式详细
水晶报表CryStalReport简单应用精选全文
可编辑修改精选全文完整版水晶报表CryStalReport使用教程(动态数据绑定)
第一步:添加水晶报表报表
1、右击鼠标,选择水晶报表
2、选择作为空白报表
第二步:添加数据集DataSet 1、右击鼠标,选择数据集
2、单击工具箱,拖拽一个DataTable到右边
3、根据数据表设计好DataTable
第三步:设计报表
1、从工具箱拖拽一个文本对象到页眉,并输入文字
2、选择字段资源管理器,右击数据库字段,选择数据库专家
3、从我的连接中选择MYDataSet到右边的选定的表
4、从左边的数据库字段中拖拽一些需要的字段到右边详细资料
5、展开特殊字段,拖拽一个第N页共M页,到页脚
第四步:添加页面
在页面中添加一个CryStalReportViewer控件
第五步、双击页面,编写数据绑定代码
protected void Page_Load(object sender, EventArgs e)
{
BLL.QueryAllStuService Qas = new BLL.QueryAllStuService();
MyCrystalReport Mcr = new MyCrystalReport();
Mcr.SetDataSource(Qas.QueryAllStudents());
CrystalReportViewer1.ReportSource = Mcr;
}
单击F5,运行效果如下:。
水晶报表知识汇总
Crystal水晶报表基础知识汇总(一)制作B/S的朋友肯定对Crystal Report绝不陌生功能强大,方便我在网上查找了许多关于Crystal Report的资料对其做了整理、调试在自己学习的同时,也希望拿出来与大家分享不足之处请多指教一、Crystal报表的建立水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PU SH)拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL语句而生成的dataset对像也就是说,推模式是用dataset组装水晶报表水晶报表组件介绍:水晶报表在VS2005中有两种组件:WEB项目中分别是CrystalReportSource,CrystalReportViewerFORM项目里是分别是CrystalReport,CrystalReportViewerCrystalReportSource,crystalReport是水晶报表的数据提供者;CrystalReportViewer是水晶报表的浏览器另外还要介绍一下水的报表的文件是以rpt为扩展名的文件,该文件可以用VS2005生成WINFORM中的建立:1.首先建立一个新的项目工程,在项目中添加一个Crystal报表在报表的创建向导中我们创建一个新的OLE DB (ADO)连接,以便于我们对SQL数据库中表的连接2.在弹出的连接类型窗口内,选择Microsoft OLE DB Provider for SQL Server一项,以确立报表的数据连接为SQL服务类3.在连接信息当中选择所需使用的服务器名,并输入相应用户ID和密码,选择好报表所要连接的数据库后,新的数据库连接便建立完成此时,我们可以从报表数据连接窗口中看到我们所创建的报表,并选择需要的表,进行数据连接4.此后,我们可以根据报表向导进行表间关联、排序索引设置、;样式选择等表的初始化设置完成Crystal 报表与SQL服务器内数据连接以后,我们可以在报表中预览所创建的报表样5.对Crystal报表进行保存后,在WINFORM的窗口中建立CrystalReportViewer控件,生成水晶报表的预览窗口在建立中,我们可以根据需要对该控件的添加项进行筛选,包括显示工具栏、显示组树、显示状态栏三项6.在WINFORM窗口中添加ReportDocument控件,并为该控件选择一个需要进行类型化的Report表单WEBFORM中的建立:建立方法与WINFORM方式基本相同,但不需要建立ReportDocument 在建立过程中一定注意,在.aspx 设计器中建立CrystalReportViewer与CrystalReportsource两个控件,前者用作水晶报表的预览,后者起到报表与预览连接的作用,负责建立CrystalReportViewer与Crystal报表间的连接二、报表数据的连接拉模式(PULL):WINFORM中建立连接:方式一:如果该页面只调用固定的一个Crystal报表,可以直接在CrystalReportViewer中进行选择报表,将Crystal 报表与其进行绑定方式二:如果页面需根据具体要求,调用不同的报表进行显示,那么我们就需要通过对报表的连接的设置来完成这一功能程序如下://CrystalReport1.rpt是水晶报表文件的名称;CrystalReport11是从工具箱加到页面上的CrystalDocument crystalReport11.Load(Application.StartupPath + "CrystalReport1.rpt");//运用CrystalDocument读取所需Crystal表单路径;crystalReport11.SetDatabaseLogon("sa", "", @"BENQ-JA Y", "Userdatabase");//进行CrystalDocument连接服务器的设置,其中第一参数:用户名;第二参数:密码;第三参数:服务器名;第四参数:数据库名crystalReportViewer1.ReportSource = crystalReport11;//将CrystalReportViewer的报表源指向CrystalDocumentWEBFORM中建立连接:方式一:在CrystalReportSource中直接对表单源进行配置,选择需要宣示的表单在CrystalReportViewer中将报表源指定为CrystalReportSource,即可在该网页中生成指定报表的水晶报表方式二:通过程序进行具体配置,将所需Crystal报表与预览页面进行连接实现报表的灵活性选择程序如下:// CrystalReport.rpt是水晶报表文件的名称;CrystalReportSource1是从工具箱加到页面上的水晶报表数据源对像CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));//读取Crystal表单所在路径,将其与CrystalReportSource进行绑定CrystalReportSource1.ReportDocument.SetDatabaseLogon("sa", "", @"BENQ-JA Y", "UserDatabase");//进行数据库连接,参数一:用户名;参数二:密码;参数三:服务器名;参数四:数据库名CrystalReportSource1.DataBind();//对CrystalReportSource进行数据绑定CrystalReportViewer1.ReportSource = CrystalReportSource1;//将预览源指定为CrystalReportSourceCrystalReportViewer1.DataBind();//对CrystalReportViewer进行数据绑定推模式(PUSH):在推模式下,必须建立DataSet数据集,用来进行数据源填充在推模式中编程组装的DataSet里的SQL 语句中的字段要与水晶报表里的SQL语句字段一致WINFORM中建立连接:程序如下:string sql = "select * from UserInfor";string conn = "server=BENQ-JA Y;Database=UserDatabase;uid=Sa;Pwd=;";DataSet ds = new DataSet();SqlConnection con1 = new SqlConnection(conn);SqlCommand cmd1 = new SqlCommand(sql, con1);SqlDataAdapter sqlad = new SqlDataAdapter();sqlad.SelectCommand = cmd1;//获得一个TRANSACT-SQL存储过程,用于在数据源中选择记录sqlad.Fill(ds, "sql");//填充SQL命令所指定的行crystalReport11.Load(Application.StartupPath + "CrystalReport1.rpt");crystalReport11.SetDataSource(ds.Tables["sql"]);crystalReportViewer1.ReportSource = crystalReport11;WEBFORM中建立连接:程序如下:string sql = "select * from UserInfor";string con1 = "server=BENQ-JA Y;Database=UserDatabase;uid=sa;pwd=;";DataSet ds = new DataSet();SqlConnection con = new SqlConnection(con1);SqlCommand com = new SqlCommand(sql, con);SqlDataAdapter sqlad = new SqlDataAdapter();sqlad.SelectCommand = com;sqlad.Fill(ds, "sql");CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt")); CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["sql"]);CrystalReportSource1.DataBind();CrystalReportViewer1.ReportSource = CrystalReportSource1;CrystalReportViewer1.DataBind();三、报表打印水晶报表的CrystalReportViewer中默认配备的工具栏可实现打印功能,但其功能比较单一,无法进行打印机选择。
CrystallReport 常用公式
else
Truncate (Count ({PICKDETAIL.QTY}, {WAVEDETAIL.WAVEKEY}) / 47)
---------------分组总页数,第几页-----------------------------------
+ ToText({PICKDETAIL.QTY} - Truncate({PICKDETAIL.QTY}/ToNumber ({SKU.SUSR5})) * ToNumber ({SKU.SUSR5}), 0) + TrimRight ({SKU.SUSR2})+")"
ELSE
""
-----------------------------------------
ELSE IF {ORDERDETAIL.SKU} IN ['A49125F0055','A4902700055','A49125F0155','A4902700155'] and Len>=8 THEN
'请盖章:'+{ORDERS.EXTERNALORDERKEY2}[Len-8+1 TO Len]
------------------------CRRedist2005_X64-----------------------
C:\Program Files\Microsoft Visual Studio 8\Crystal Reports\CRRedist\X64\CRRedist2005_X64.msi
水晶报表公式大全
水晶报表公式大全汇总函数的条件以下是每个汇总函数的条件列表:布尔型条件任何更改更改为“是”更改为“否”对每个“是”对每个“否”对下一个“是”对下一个“否”日期条件每天每周每两周每半月每月每季每半年每年时间条件每秒每分钟每小时上午/下午SumBasic语法和Crystal语法。
重载Sum(fld)Sum(fld,condFld)Sum(fld,condFld,cond)Sum(x)参数fld是可由函数求值的任何有效的数据库字段或公式字段。
condFld是用于对fld中的值进行分组时所依据的字段。
cond是表明condFld分组类型的字符串。
只能在condFld是一个日期、时间、日期时间或布尔字段时才指定此参数。
有关此参数有效字符串的详细信息,参见汇总函数的条件。
x是可由正在使用的函数求值的数字或货币值的数组。
返回数字操作使您能够添加报表中出现的值。
例如:如果销售报表包含一个显示每张订单金额的字段,则可以计算报表上出现的所有订单的总和(总计和)。
如果对订单进行分组(例如,按订单所来自的省份对其分组),则可以计算每组订单金额的总和(在本例中,为每个省)。
如果将订单按日期或布尔值分组(例如,对订单按其发出的月份进行分组),则可以根据日期字段或布尔字段中的特定变化来计算每组订单金额的总和(在本例中,为每月)。
如果指定单个值的集合,则也可以计算该集合中值的总和。
有关这种汇总的详细信息,参见数组汇总函数。
示例下列示例适用于Basic语法和Crystal语法:Sum({file.QTY})计算QTY字段中所有值的总和。
Sum({订单.金额},{订单.客户ID})对“金额”字段中每个订单组的订单求和(总计)。
每当“客户ID”字段中的值变化时,订单都将进行分组。
Sum({订单.金额},{订单.日期},"monthly")%Sum({订单.金额})对“金额”字段中的值按月分组,并计算每个月组中值的总和相对于整个报表值的总和的百分比。
CrystalReport水晶报表详细教程
从“生成”菜单中选择“生成解决方案” 为该项目生成一个数据集对象 注意:生成的数据集对象不包含实际的数据,只包含对数据库结构的描述
17
水晶报表应用程序示例 8-4
向该窗体添加水晶报表项。选择“Crystal Report 库”窗口中的默认项 可用于指定一个或多个字段来汇总特定组
在“标准报表专家”窗口中展开“项目数据”文件夹 展开 数据集, 并选择 DataSet 对象 选择 Book 表,单击“插入表”。在“字段”选项卡中添加所有列
11
使用水晶报表专家 4-2
选择水晶报表
12
使用水晶报表专家 4-3
扩展 OLE DB(ADO) 部分
用于 SQL Server 的 OLE DB 提供程序
13
使用水晶报表专家 4-4
可以将表的所有字段或指定字段 添加到报表中。
选择所需的表并将其插 入到报表中。
14
水晶报表应用程序示例 8-1
22
总结
水晶报表是用于创建报表的标准工具 水晶报表的优点包括: 运行时自定义 报表查看器与其他控件之间的交互 报表作为 Web 服务 开发 Windows 应用程序时,可以使用 CrystalReportViewer控件将报表绑定到 WinForms窗体上 数据集设计器用于创建只包含数据结构而不包 含实际数据的数据集对象 水晶报表中的选择公式可用于计算字段和汇总,确定如何 显示报表的输出结果
7
水晶报表的功能
运行时自定义 报表查看器与其他 控件之间的交互
水晶报表
借助交互式界面更 加容易地创建报表
报表作为Web服务
8
水晶报表查看器
拖放
9
CrystalReportViewer 的属性、方法和事件
Crystal_Reports_公式详解
– 可使用圆括号将想要的元素索引括起来,以从数组中 提取个别元素。这叫下标 数组: • Array (10, 5, 20) (2) 'Equal to 5
Basic语法
• 变量
Dim areaCode As String areaCode = Left ({Customer.Fax}, 3) Rem could also use: areaCode = {Customer.Fax} (1 To 3)
Basic语法
• 布尔值
• 日期、时间和日期时间
#8/6/1976 1:20 am# #August 6, 1976# #6 Aug 1976 13:20:19# #6 Aug 1976 1:30:15 pm# #8/6/1976# #10:20 am# CDateTime ("8/6/1976 1:20 am") CDateTime ("10:20 am") CDate ("Aug 6, 1969") CDate (1969, 8, 6) 'Specify the year, month, day CDate (#Aug 6, 1969#) CTime ("10:30 am") CTime (10, 30, 0) 'Specify the hour, minute, second CTime (#10:30 am#)
expression}
– 摘要和组名字段看起来象函数调用。但是,它们实 际上是报表字段的速记写法 • 摘要字段:Sum({订单.订单金额}, {订单.承运商}) • 组名字段:GroupName({订单.承运商})
Basic语法
Crystal报表设计以及公式详细
报表设计练习
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
基础报表培训
规划报表 创建报表 组织报表数据 格式化报表
创建公式
创建参数 应用报表节 直观显示数据 警报
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
报表分析方案整体架构
销售信息
数据整合*
“ETL” Extract –Transform - Load Rapid Mart
数据仓库/ 数据集市/ ODS
信息展现*
绩效管理(EPM)
决策者
财务信息
随机查询(ad*hoc)
管理者
多维分析(OLAP)
分析门户 分析员
业务员
…
库存信息
Data Integration
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
企业需要什么样的报表?
联通多种数据源
-对数据源的广泛支持
把数据转化为形色丰富、易交互的报告
-方便易用,功能强大的报表设计器
以安全可靠的方式满足组织内外大量多 样的信息需求
-安全稳定,易于管理的发布平台
详细资料
报表页脚 页脚
所有符合条件的数据,一笔笔地呈现
每一页都会出现的最上方和最下方
适合放置一些每页都需要出现的信息
COPYRIGHT © 2007 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
创建报表-练习
水晶报表-控制结构-If表达式(Crystal语法)
⽔晶报表-控制结构-If表达式(Crystal语法)当对公式求值时,没有控制结构的公式只执⾏⼀次公式中的每个表达式。
表达式按顺序执⾏,从公式的第⼀个表达式到最后⼀个表达式。
控制结构能使这种死板的顺序有很多变化。
根据所选的控制结构不同,您可以跳过⼀些表达式或根据某些条件对⼀些表达式重复求值。
控制结构是表达商务逻辑的主要⽅法,典型的报表公式都⼴泛采⽤它。
If 表达式(Crystal 语法)If 表达式是最有⽤的控制结构之⼀。
它使您得以在条件为 true 时对⼀系列表达式求值,⽽在条件不为 true 时对其他⼀系列表达式求值。
注意⽤条件公式格式设置时,始终要包括 Else 关键字;否则,不符合 If 条件的值可能不会保留原来的格式。
为避免此类情况发⽣,可以使⽤DefaultAttribute 函数 (If...Else DefaultAttribute)。
某公司计划发给其员⼯ 4% 的奖⾦,⽽销售部门的员⼯将得到 6% 的奖⾦。
下⾯的公式使⽤ If 表达式实现这⼀⽬的:If {Employee.Dept} = "Sales" Then{Employee.Salary} * 0.06Else{Employee.Salary} * 0.04在本⽰例中,若条件 {雇员.部门} = "Sales" 求值为真,则处理{Employee.Salary} * 0.06表达式。
否则处理 Else 后⾯的表达式,也就是{Employee.Salary} * 0.04表达式。
假设另⼀公司想要发给其员⼯ 4% 的奖⾦,但奖⾦最低⾦额是 $1,000。
注意没有包含 Else ⼦句;该⼦句是可选的,在这种情况下并不需要。
Local CurrencyVar bonus := {Employee.Salary} * 0.04;If bonus < 1000 Thenbonus := 1000;//最后⼀个表达式正好是变量 'bonus'。
跟我一起学VisualStudio2005(18):CrystalReport篇之公式详解。。。
跟我⼀起学VisualStudio2005(18):CrystalReport篇之公式详解。
⼀,Basice 语法1,公式的结果--每个公式必须返回⼀个值--Basice语法通过设置特殊变量“formula”的值来实现,不能返回数组或范围类型。
2,注释-- REM, ' 注释3,furmula变量在设置为⼀种数据类型,则后⾯不能在同⼀个公式中设置为另⼀种类型值。
例如:Global a AS string ,b AS Number,z AS DateTimeif{Orders.Order Amount} >= 1000 thenformula = "Insured shipping";elseformula = "Regular shipping"end if4,字段-- 许多字段可以在公式中引⽤。
例如,数据库,参数,运⾏总计,SQL表达式,摘要,组名等。
也可以在公式中引⽤其他公式字段。
5,公式中表⽰字段-- 参数字段:{?我的参数字段}--公式字段: {@ another formula}--运⾏总计字段:{# my running total}--SQL表达式字段:{% my SQL expression}--摘要和组名看起来像函数,实际上是报表字段的速记写法-- 摘要: Sum({订单.订单⾦额},{订单.承运商})-- 组名: GroupName({订单.承运商})6,语句-- 每个语句占⼀⾏(新⾏或冒号分开) y = “” : x = 30 :formula = true-- 截断, x = 10 + _10 + 10-- 数字:不带任何逗号分隔符-- 货币: CCur(10000)-- 字符串: "hello” === hello“ "" hello "" ” === "hello""hello"(2) === "e""hello"(-5) === "h""604-555-1234"(1 to 3) === "604""abcdef"(-3 to -1) === "def"-- ⽇期,时间,⽇期时间#8/6/1978 1:20 am#CDateTime("8/6/1978 1:20 am")CDateTime("1:20 am")CTime(10,30,0) --- 分隔 hour,minute,secondCTime(#10:30 am#)7,范围-- 2 到 5 === 2 To 5 (包括2和5)-- 2 到 5 === 2 _To 5 (不包括2,包括5)-- ⼩于或等于 5 === Is <= 5-- ⽇期范围#8/6/1978 1:20 am# To #10/7/1978 1:20 am#Is <= #8/6/1978 1:20 am#8,数组-- Array(10,5,20)-- Array("aaa","bbb","ccc")-- Array(#8/6/1978 # To #10/7/1978# , #8/6/1978 #)-- Array(10,5,20)(2) === 59,变量-- Dim a AS Stringa = left({Customer.Fax}, 3)a = {Customer.Fax}(1 to 3)注释:全局变量只在1个报表中⽤,不包括⼦报表⼦报表要使⽤共享变量。
水晶报表传递参数及使用公式参数
⽔晶报表传递参数及使⽤公式参数向⽔晶报表传递参数及使⽤公式参数下⾯的说明是关于向⽔晶报表⾥传递字符串类型参数和数字参数,以及⽤公式参数进⾏运算和转换。
阅读本站更多相关的⽂章:向⽔晶报表中传递参数,现在⽔晶报表中设置参数,然后把参数赋给选择公式CrystalDecisions.Shared.ParameterValues mypaVal = new CrystalDecisions.Shared.ParameterValues();CrystalDecisions.Shared.ParameterDiscreteValue mypaDVal = new CrystalDecisions.Shared.ParameterDiscreteValue(); mypaDVal.Value = 参数值;mypaVal.Add(mypaDVal);myrep.DataDefinition.ParameterFields[\"⽔晶报表中的参数\"].ApplyCurrentValues(mypaVal);第⼀步:⽣成数据集DataSet1.xsd,连好数据库,这在“⽔晶报表打印⼆”⾥⾯有详细说明,这⾥不再说明。
第⼆步:添加⼀个空⽩⽔晶报表CrystalReport1.rpt,在字段资源管理器中,右击“参数字段”选择“添加”,此处我们命名为p1(值类型为字符串),p2(值类型为数字,并且设为区域值),如下图:其它不做修改。
(图3.1)右击“公式字段”,选“新建”,新建两个为:f1和f2,确定后会出现“公式编辑器”如下图,先不做改变,保存后关闭。
(图3.2)第三步:将p1,p2拖⼊报表中,并保存报表。
第四步:编写代码。
在WebForm1.aspx中以CrystalReportViewer1为对象编写代码如下:// 声明将参数传递给// 查看器控件所需的变量。
ParameterFields paramFields = new ParameterFields ();ParameterField paramField = new ParameterField ();ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();ParameterRangeValue rangeVal = new ParameterRangeValue ();// 第⼀个参数是具有多个值的离散参数。
水晶报表制作说明
BS报表制作向导一、制作报表样式1.新建水晶报表样式打开Visual Studio或水晶报表工具,点击菜单条中的文件—新建项目,在弹出的页面中选择其他语言-Visual J#-Crystal Reports应用程序修改名称和位置后,点击确定按钮,再在弹出的页面中选择作为空白报表,再点击确定按钮;如果已有一个水晶报表,要在现有项中再新增一个水晶报表样式,可以在解决方案资源管理器中在解决方案子主目录下,右键-添加新项,弹出以下页面,选择Crystal报表即可水晶报表工具Crystal Reports2008制作报表:工具栏文件->新建->空白报表/标准报表/交叉报表->数据库专家2.将报表数据源绑定数据库在显示的页面中,单击鼠标右键选择数据库-数据库专家在创建新连接中,点击OLE DB(ADO),弹出页面,提供程序中选择Microsoft OLE DB Provide for SQL Server,再点击下一步按钮,在弹出的页面中输入内容后,点击下一步按钮在弹出的页面中点击添加命令,输入SQL查询—报表所需字段(也可以是视图或存储过程),再点击确定按钮。
3.制作水晶报表A.工具箱--在左边工具箱中,可以选择工具画报表,文本对象(文本框及内容的输入),线条对象(画线),框对象(表格外面的框)水晶报表工具Crystal Reports2008:工具栏插入->文本对象/线/框B.字段--在字段中可以直接将要显示在报表中的字段拖放到报表中去C.合计的显示—选中要合计的字段,如金额,点击右键,插入-汇总在弹出的页面中,选择要汇总的字段和方式(求和,差,平均~~)点击确定后自动生成一个汇总字段,将该字段拖放到合计金额的位置即可水晶报表工具Crystal Reports2008:在“公式字段”新建“合计”,汇总字段为CalFee,拖动到页脚D.合计金额小写转换成大写—在右边字段中,选择公式字段,右键-新增(名为test),点击使用专家按钮,在弹出的页面中,选择报表自定义函数,再点击右键-新建,在弹出的页面中输入自定义函数有的名称(AmountToWord2),点击使用编辑器在下面的输入框中,输入以下函数(语法选择Basic语法)选择之前添加的公式字段test,在下面的输入框中输入以下内容(调用上面的函数)(语法选择Basic语法)Function CNMoney(ls As Number) As StringDim dx_sz As StringDim dx_dw As StringDim str_int As StringDim str_dec As StringDim dx_str As StringDim fu As StringDim a As StringDim b As StringDim c As StringDim d As StringDim b2 As StringDim num_int As NumberDim num_dec As NumberDim len_int As NumberDim i As NumberDim a_int As NumberDim pp As Numberdx_sz = "零壹贰叁肆伍陆柒捌玖"dx_dw = "万仟佰拾亿仟佰拾万仟佰拾圆"If ls = 0 ThenCNMoney = "零圆整"Exit FunctionEnd IfIf ls < 0 Thenls = Abs(ls) --返回绝对值fu = "负"Elsefu = ""End Ifdx_str = CStr(ls) --返回表达式,该表达式已被转换为String 子类型的V ariant--Dim MyDouble, MyString--MyDouble = 437.324 - ' MyDouble 是双精度值。
水晶报表公式必读
水晶报表公式必读水晶报表公式必读水晶报表公式使用必读一、公式组件二、公式语法三、公式类型----------------------------------------------------------------公式包含两个关键部分:组件和语法。
组件是创建公式所添加的部分,而语法是组织组件所遵循的规则。
在Crystal Reports 中有几种不同种类的公式:报表、格式化、选定、搜索、运行总计条件和警报公式。
报表中的多数公式为报表公式和条件格式化公式。
----------------------------------------------------------------一、公式组件在Crystal Reports 中创建公式与在任何电子数据表应用程序中创建公式类似。
可以在公式中使用下列组件:字段示例:{客户.客户名}、{客户.去年销售额}数字示例:1、2、3.1416Text示例:“数量”、“:”、“您的文本”运算符示例:+(加)、/(除)、-x(求负)运算符是可以在公式中使用的操作。
函数示例:Round (x)、Trim (x)函数执行求平均值、求和与计数之类的计算。
列出所有可用的函数,其参数一并列出,并根据用途排列。
自定义函数示例:cdFirstDayofMonth、cdStatutoryHolidays 自定义函数提供了一种共享和重复使用公式逻辑的途径。
它们可存储在Crystal 储备库中,而后可将其添加到报表中。
一旦自定义函数添加到报表后,当创建公式时,用户就可在“公式专家”中使用自定义函数。
控制结构示例:“If”和“Select”、“For”循环组字段值示例:Average (fld, condFld)、Sum (fld, condFld, "条件")组字段值对组进行汇总。
例如,可以使用组字段值来得出各个组在总计中所占百分比。
其它公式示例:{@GrossProfit}、{@QUOTA}有关详细信息,请参阅公式语法。
水晶报表公式大全
水晶报表公式大全汇总函数的条件以下是每个汇总函数的条件列表:布尔型条件任何更改更改为“是”更改为“否”对每个“是”对每个“否”对下一个“是”对下一个“否”日期条件每天每周每两周每半月每月每季每半年每年时间条件每秒每分钟每小时上午/下午SumBasic语法和Crystal语法。
重载Sum(fld)Sum(fld,condFld)Sum(fld,condFld,cond)Sum(x)参数fld是可由函数求值的任何有效的数据库字段或公式字段。
condFld是用于对fld中的值进行分组时所依据的字段。
cond是表明condFld分组类型的字符串。
只能在condFld是一个日期、时间、日期时间或布尔字段时才指定此参数。
有关此参数有效字符串的详细信息,参见汇总函数的条件。
x是可由正在使用的函数求值的数字或货币值的数组。
返回数字操作使您能够添加报表中出现的值。
例如:如果销售报表包含一个显示每张订单金额的字段,则可以计算报表上出现的所有订单的总和(总计和)。
如果对订单进行分组(例如,按订单所来自的省份对其分组),则可以计算每组订单金额的总和(在本例中,为每个省)。
如果将订单按日期或布尔值分组(例如,对订单按其发出的月份进行分组),则可以根据日期字段或布尔字段中的特定变化来计算每组订单金额的总和(在本例中,为每月)。
如果指定单个值的集合,则也可以计算该集合中值的总和。
有关这种汇总的详细信息,参见数组汇总函数。
示例下列示例适用于Basic语法和Crystal语法:Sum({file.QTY})计算QTY字段中所有值的总和。
Sum({订单.金额},{订单.客户ID})对“金额”字段中每个订单组的订单求和(总计)。
每当“客户ID”字段中的值变化时,订单都将进行分组。
Sum({订单.金额},{订单.日期},"monthly")%Sum({订单.金额})对“金额”字段中的值按月分组,并计算每个月组中值的总和相对于整个报表值的总和的百分比。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组织报表数据
排序专家 选择专家 组专家 插入汇总
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
组织报表数据 - 练习
变更数据的排序方式
继续上一个练习 将您的报表设定成依照发货日期、订单金额由大而小排序。
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
集成到企业已有的应用中
-强大的二次开发支持
类似相关概念: 生产力报告、运营报告、可管理的报告
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
完整的报表解决方案
数据 访问
报表 设计
报表 发布管理
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
分析性报告
交互性及每客 户实现成本
企业报表平台
Adapted from Gartner “BI Pyramid of Needs”
潜在的信息消费需求
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
水晶报表简介
水晶报表定位于商务智能领域,可应用于任何需要商务智 能的行业及领域 水晶报表“Crystal Reports” 是业界最据盛名、最畅销的 报表设计与开发工具。 水晶报表已成为报表的标准:
与应用系统 集成
数据访问
连接所有数据源
超过35种数据驱动 可以选择通过原生驱动、ODBC、 JDBC、OLE DB连接数据库、文件、 日志、企业应用程序等 用户可以使用SQL语言更加灵活地 控制数据源 支持在一份报表中整合多个数据源
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
Microsoft .NET的Visual Basic和Visual Studio .NET 2019 Java阵营的BEA 的Weic、Borland的JBuilder、IBM的WebSphere 以及Eclipse 都选用Crystal Reports做为其中的报表工具。 SAP ,Peoplesoft作为全球合作伙伴,有专门的解决方案
日期时间字段的群组
继续上一个练习,将报表之所有选择条件清除。 以订单.送货日期分组,并依照每半年分组
实现钻取功能
为报表加入第二个组
持续上一个练习,利用客户.国家字段插入第二个组。
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
组织报表数据 - 练习
创建报表 - 熟悉报表设计环境
了解水晶报表的组织结构 了解设计和预览界面的不同 了解字段资源管理器、报表资源管理器 了解页面控制栏、工具栏、状态栏
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
报表结构
5个最基本的节:
每份报表只出现一次的节
Crystal Report 报表设计
objects
内容简介
水晶报表解决方案 基础报表设计培训 报表设计进阶 报表设计练习
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
创建报表-从数据源开始我们的工作
ODBC数据源: 名称为Xtreme 示例数据库 11.5
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
创建报表-范例数据库结构
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
完整的报表解决方案
数据 访问
报表 设计
报表 发布管理
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
与应用系统 集成
与门户和应用程序的集成
广泛验证的业界标准
超过500个独立软件开发商的选择 目前在全球累计销售量近 2000 万套 . 在中国的销售也已经超过了 7000 套 嵌入在Microsoft, SAP, Borland, BEA和IBM软件中 支持主流的web server,例如:IIS、Apache/Tomcat, Weic, Websphere
汇总数据
其他备注信息/特殊的格式
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
创建报表
目标 创建空白报表 添加数据库字段 熟悉设计器环境 在报表中插入对象 预览报表 保存报表 调整报表中对象的位置和大小 格式化对象
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
组织报表数据 - 练习
为报表加上选择条件
继续上一个练习 为您的报表找出订单.订单金额大于5000的订单。 问题:如何找出,金额大于5000或者城市为Austin的纪录?
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
组织报表数据 - 练习
报表分析方案整体架构
销售信息
数据整合* 数据仓库/ 数据集市/
ODS
财务信息
“ETL” Extract –Transform - Load Rapid Mart
…
库存信息
Data Integration
Oracle DB2 SQL Server Sybase TeraData …
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
设计报表 - 提高报表设计和维 护的效率
强大的公式语言
提供Basic和Crystal两种语法格式,用户可以简单方便地自定 义函数 囊括了160多种内置功能模块和函数,包括日期函数、格式函 数、统计函数、字符函数、类型转换函数等
参数与告警功能 多种导出格式的支持
Microsoft Word、Microsoft Excel、HTML、ODBC、 PDF、RTF、XML、CSV、TXT等
信息展现*
绩效管理(EPM)
决策者
随机查询(ad*hoc)
管理者
分析门户 分析员 多维分析(OLAP)
业务员
固定报表
BOE 商务智能平台
有关BI的市场观点
报表和信息交付是BI应用的基础
报表和信息交付解决 了相当一部分的用户
信息需求
BI
报表和信息 交付
高端BI应用:数据挖掘、统 计、分析
即时查询、分析 、报告
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
基础报表培训
规划报表 创建报表 组织报表数据 格式化报表 创建公式 创建参数 应用报表节 直观显示数据 警报
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
规划报表 - 设计报表的准备工作
页眉页脚的内容?
是否需要分组? 是否需要汇总? 是否需要排序?
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
设计报表的准备工作
报表的目的
看报表的人
报表标题
数据库信息
页眉
页脚
分组
排序
记录筛选
计算公式
报表管理(包含BOE平台)
安全的平台
灵活的权限模型 不同粒度的权限控制:文件夹、报表对象、记 录行 支持第三方的安全授权数据库:LDAP, Kerberos, Netegrity Siteminder,Windows NT/Active Directory.
报表计划
定期运行、事件触发、基于日历 可配置报表运行后发送的目的地和格式
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
企业需要什么样的报表?
联通多种数据源
-对数据源的广泛支持
把数据转化为形色丰富、易交互的报告
-方便易用,功能强大的报表设计器
以安全可靠的方式满足组织内外大量多 样的信息需求
-安全稳定,易于管理的发布平台
继续上一个练习 针对订单.发货日期字段组,设上Top N功能。指定N为2,以 订单.订单金额之求和为依据,并保留其余归类为其它组
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
加入数据汇总
继续上一个练习,针对客户.国家组,插入订单.订单ID的计 数汇总,以及订单.订单金额的求和汇总。 在这二个字段前加入文本对象以说明
COPYRIGHT © 2019 BUSINESS OBJECTS S.A. ALL RIGHTS RESERVED.
组织报表数据 - 练习
Top N组排序
报表页眉
适合放置一些说明一整份报表的信息
页眉
详细资料 报表页脚
所有符合条件的数据,一笔笔地呈现
页脚