资源描述
选择快逸 选择专业
快逸报表V4.0入门教程
目录
第1章 序言 4
第2章 设计器的安装 5
2.1 安装 5
2.2 运行报表设计器 7
2.3 数据库连接 8
第3章 入门 11
3.1 制作一张报表包括哪几个步骤? 11
3.2 一张最简单的报表 11
3.3 将报表发布到web上 14
第4章 网格式报表 15
4.1 网格式报表,体会扩展 15
4.2 显示格式、显示值 20
4.3 报表区域 26
4.4 设置预警条件 31
4.5 增加动态背景色 33
4.6 取数排序 34
第5章 参数 37
5.1 参数的概念 37
5.2 参数的使用 37
5.3 参数模板设计 41
5.4 将报表和参数模板结合起来发布 43
第6章 行式报表 45
6.1 行式报表的概念 45
6.2 把网格报表变成行式报表 48
第7章 分组报表 51
7.1 分组报表,体验主子格概念 51
7.2 多层分组 56
7.3 汇总统计 59
7.4 计算列的汇总 66
7.5 统计图,初步了解统计图的使用 68
7.6 跟随扩展的统计图 70
第8章 交叉报表 73
8.1 交叉报表,体会横向扩展 73
8.2 多层交叉,深入了解扩展 77
8.3 汇总统计,深入了解汇总规则 80
8.4 统计图,与交叉报表的结合 82
8.5 跟随扩展的统计图 84
第9章 自由报表 87
9.1 自由格式的报表,深入了解主格概念 87
9.2 图片字段 89
第10章 主子表 92
10.1 单表式主子报表 92
10.2 嵌入式主子报表 95
10.3 引入式主子报表 98
第11章 打印 105
11.1 打印设置 105
11.2 分页 110
11.3 分栏 124
11.4 套打 126
第12章 宏 130
12.1 宏的概念 130
12.2 实例 130
12.3 参数与宏的区别,在web上如何使用宏 133
第1章 序言
报表,是很多应用系统中很重要的一个组成部分。
快逸报表,是优秀的Web 报表工具。
快逸报表是用于报表制作的报表软件,使用者可以通过报表设计器设计各种复杂格式的报表,通过报表服务器在浏览器端生成纯HTML网页报表,并能无缝导出成Excel、PDF和WORD文件;支持二维/三维饼图、柱图、折线图、雷达图、甘特图等二十五种统计图,且无须在浏览器端安装任何控件。独有的APPLET打印控件,所见即所得的实现了套打、分栏等各种报表的精确打印。
快逸报表采用JAVA开发,由两个部分构成:报表设计器和报表服务器。
快逸报表是一个很容易掌握的报表工具,它部署起来很简单,应用起来很方便,而且其设计工具与Excel 比较相似,很容易上手。
为了帮助读者快速掌握快逸报表,我们编写了这份《快逸报表4.0入门教程》,在教程中,将避免复杂的概念,通过由浅入深的实例,深入浅出的讲解,辅以有针对性的练习题,一步一步帮助读者迅速掌握快逸报表的基本操作和概念。只要你照着本教程去做,半天就可以初步掌握快逸报表。
希望在轻轻松松的过程中,你能很快地掌握报表设计!
第2章 设计器的安装
2.1 安装
1) 直接运行安装包中的快逸报表设计器安装包目录下的quiee-V4.0-Free-install.exe
2) 请您点“下一步”继续。
3) 如果您同意“快逸的许可协议”,请您点击“我同意”
4) 每个选项上都有对应的说明,把鼠标移动该选项上可查看相应的描述。
5) 快逸设计器的安装目录,默认路径:C:\Program Files\quieeReport,我们也可以修改路径,安装到我们指定的位置。JDK的版本可以选择默认的,也可以用我们机器中现有的。选择完毕后点“安装”
6) 点“完成”可完成报表安装
2.2 运行报表设计器
安装完快逸报表之后打开设计器的方式有三种方法:
方法一:在安装目录(C:\Program Files\reportHome\bin)寻找startup.bat的程序文件,双击运行即可;
方法二:从程序组中选择:开始 -> 程序 -> 快逸报表 -> 快逸设计器
方法三,安装完快逸报表之后,在桌面上会出现快逸报表设计器的快捷方式,双击即可。
快逸报表设计器的主界面,如下图所示:
2.3 数据库连接
步骤1:点击菜单“配置”->“数据源”,弹出数据源配置界面。系统默认的会包含一个demo数据源。
步骤2:选中demo数据源,点【连接】 按钮,数据源变成粉色,并且后面的说明也显示[已连接]。
此时数据源已经连接,我们可以操作demo数据源。
注:本文档所有例子数据源均来自该数据库
● 正常情况demo数据库会随设计器一同启动,如果不能正常连接,请通过下面方式查看demo数据库是否正常启动。
● 方法一:在“外挂菜单”中选择“数据库”,我们会看到两个选项,如图:
此时“停止数据库”可以选择,“启动数据库”被灰掉,说明demo数据库已启动,可以连接数据源。反之,若“停止数据库”被灰掉,“启动数据库”为可以选择状态,则说明数据库未启动,点“启动数据库”即可。
方法二:选择“配置”--“选项”,弹出选项窗口,选择“接管控制台”,如图:
重新启动设计器,在“配置”菜单中多了“控制台”一项。如图:
点击进入控制台窗口,如出现下列信息说明数据库正常启动,可以连接数据源。
第3章 入门
1打开设计器
3.1 制作一张报表包括哪几个步骤?
如果数据源已经存在或不需要从数据库取值,此步可跳过。
8 报表发布
2定义数据源连接
如果不需要数据源,此步可跳过。
3连接数据源
4新建报表
数据集是数据的来源,如果报表为静态报表,此步可跳过。
5定义数据集
6定义单元格表达式
7预览报表
3.2 一张最简单的报表
先做一张和数据库无关的报表。该报表保存为3.2.raq
步骤1:直接点击工具栏上的按钮,新建一张空白报表,如下图所示:
步骤2:在B2单元格里填写:=to(1,10)。并选中B2格点击工具栏上的将单元格加上方框。to函数说明
如下图所示:
步骤3:然后点击工具栏上的按钮,查看预览,如下图所示:
我们可以看到,B2格子里的数据自动进行了扩展。
这正是报表工具与电子表格工具的最基本差异。电子表格工具只能在每个格子里填好内容,不能自动进行这种扩展。
● 从这个最简单的例子,我们会发现,定义报表的时候只用到了B2单元格,其他单元格都没有被使用,但是如果我们把其他单元格都设成红色背景,再预览时如下图所示:
大家会发现,那些没用的单元格也被扩展并且复制了,由此导致报表运算过程中存在大量的冗余单元格,这些单元格都占据了内存。因此为了提高报表的运算效率,请把没用的单元格删掉,如下图所示:
这个例子还只是最初级的,后面我们会学到如何基于数据库进行各种复杂的扩展。
●to函数说明:
生成一组连续的整数数据
语法:
to(startExp,endExp{,stepExp})
参数说明:
startExp 整数数据开始的表达式
endExp 整数数据结束的表达式
stepExp 整数数据步长的表达式
函数示例:
to(1,5)=list(1,2,3,4,5)
to(1,5,2)=list(1,3,5)
to(-5,-10,-2)=list(-5,-7,-9)
to(-10,-8)=list(-10,-9,-8)
3.3 将报表发布到web上
将3.2中的报表发布到web上
步骤1:在设计器中打开3.2中的报表,点工具栏的按钮,在弹出的窗口中输入报表发布路径(C:\Program Files\reportHome\webapps\demo\reportFiles)和报表文件名(3.2.raq)。
点“确定”发布报表。
步骤2:点击工具栏的按钮,启动快逸报表中内置的tomcat。
步骤3:点击工具栏的按钮,启动IE浏览器,在浏览器中展现表报。
这样我们刚才做好的报表就可以在页面上展现出来了,上面的工具菜单可以灵活定制,实现打印、保存EXCLE、PDF等功能。
第4章 网格式报表
4.1 网格式报表,体会扩展
第一步:点击桌面图标,或在开始菜单中选择运行快逸设计器。如下图所示:
设计器界面
第二步:在菜单栏中选择“配置”—“数据源”
弹出数据源连接窗口,设计器默认的配置好一个系统数据源,我们选中后点“连接”
Demo数据源显示[已连接],点“关闭”。
第三步:新建报表,在菜单栏中选择“文件”--“新建”,在弹出的窗口中选择“报表”,点“确定”
●新建报表的注意事项:新建报表的窗口中存在 普通报表 和 填报或参数表单 两个选项,如果是汇总类型的报表,一般选择 普通报表,如果需要填写的或者作为参数模板使用的,选择 填报或参数表单。
数据集类型选择“SQL检索”,点“下一步”进入SQL编辑器窗口。
● 数据集是一个二维的视图,是报表的数据来源。数据集可以通过数据库的sql查询获得,也可以来自其他异构的数据文件。报表运算引擎不关心数据集的数据来自哪里,始终基于数据集的数据来运算报表。
● 因此,制作报表的第一步:定义数据集
选择指定模式为全部,在可选表名中双击EMPLOYEE表,点“数据字段”标签
在数据字段列表中选择我们想要展现的字段,通过“语法”标签可以查看到前数据集的语句:
ds1: SELECT EMPLOYEE.EMPID,EMPLOYEE.EMPNAME,EMPLOYEE.BIRTHDAY,EMPLOYEE.SEX,EMPLOYEE.DEGREE,EMPLOYEE.BONUS FROM EMPLOYEE
选好后点“确定” 回到向导窗口。点“生成空白报表”进入设计器编辑界面,我们看到,一张网格式报表就做好了,单元格中自动产生了表达式:
1, A2单元格中表达式为:=ds1.Select(EMPID) select函数说明
2, B2单元格中表达式为:=ds1.EMPNAME
3, C2单元格中表达式为:=ds1.BIRTHDAY
4, D2单元格中表达式为:=ds1.SEX
5, E2单元格中表达式为:=ds1.DEGREE
6, 将第一行的英文名称改写成中文并设置居中显示。居中显示
第四步:保存预览
第五步:发布报表
●设置标题位置:可以通过工具栏上的,,图标将标题设为居左,居中和居右。
●select函数说明
函数说明:
从数据集的当前行集中选取符合条件的记录
语法:
datasetName.select( <select_exp>{, desc_exp{, filter_exp{, sort_exp{,rootGroupExp}}}} )
datasetName.select( <select_exp>, , <filter_exp> )//适用于不需排序或数据集中已排好序
参数说明:
select_exp: 要选择的字段列名/列号,,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
desc_exp: 指定数据排序的顺序,true表示降序排列,false表示升序排列。
filter_exp: 数据过滤表达式,如果全部选出,则此参数省略,仅用“,”占位。
sort_exp: 数据排序表达式。当此项为空时先检查desc_exp是否为空,如果为
空,则不排序,否则使用select_exp排序。
rootGroupExp 是否root数据集表达式
返回值:
一组数据的集合,数据类型由select_exp的运算结果决定
函数示例:
例1:ds1.select( name )
从数据源ds1中选取name字段列的所有值, 不排序
例2:ds1.select( #2, true )
从数据源ds1中选取第二个字段列的所有值并降序排列
例3:ds1.select( name,false,sex=='1')
从数据源ds1中选取性别为男性的name字段列的值并升序排列
例4:ds1.select( name, true, sex=='1', id )
从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列
Select()函数注意事项
select 函数选出了一组字段值,该组字段值保留了一个指针,指向数据集中的源记录,也就是说,该组字段值和数据集中的记录保持一一对应的关系,因此在当前格的附属单元格里(如B2、C2),如果采取dsn.colname 的表达式从当前数据集里取其他字段的值,默认从当前主格指向的记录里取值,而不需要到数据集中检索。
因此,在当前格的附属格里建议尽量使用dsn.colname 表达式,而不采用
dsn.select1(colname, filterexp),因为后者需要对表达式进行解析,速度慢。
● 报表设计好后,点工具栏按钮,保存报表
● 快逸报表模板保存时,和excel一样,一个模板就是一个文件,由用户自己管理。
● 保存的报表模板不含数据,只有表达式和属性定义。
● 使用时,打开模板,连接数据源,点击 预览 按钮或工具栏 即可浏览运算后的结果报表
● 预览后的结果报表也可以保存,此时保存的是报表格式和数据,不含表达式
4.2 显示格式、显示值
在4.1中设计的报表性别、学历都是用数值显示的,而且奖金等格式也并不美观,那么我们可以在4.1的基础上增加显示格式、显示值等设置,使报表可读性更强
第一步:增加一个数据集
ds2: SELECT DEGREE.ID,DEGREE.NAME FROM DEGREE 增加数据集
第二步:定义表达式:
1, 将A2单元格表达式修改为:=ds1.Select(int(EMPID),false) int函数说明
该表达式是将字符串型的EMPID转换成整数,再做排序操作。
2, 设置C2单元格的显示格式为:yyyy年MM月dd日 显示格示设置
3, 设置F2单元格的显示格式为:¥#0.00
4, 设置D2的显示值为:map(list("1","2"),list("男","女")) 显示值说明 map函数说明
5, 设置E2的显示值为:ds2.select1(name,id==value()) select1函数说明 value函数说明
第三步:保存预览
第四步:发布报表
●增加数据集:
单击菜单栏中的【配置】,在下拉菜单中选择【数据集】,在弹出的窗口点【增加】,弹出”数据集类型”窗口,如图:
选择”SQL检索”,点【确定】,即可弹出” SQL检索”窗口,接下来可像新建报表时一样定义SQL。
●Int函数说明
将字符串或数字转换成整数
语法:
int( string )
int( number )
参数说明:
string 需要转换的字符串表达式
number 数字,如果带有小数位,转换后小数位被截掉
返回值:
32位整数
示例:
例1:int( "100" ) 返回:100
例2:int( 100.1 ) 返回:100
例3:int(100.9999) 返回:100
● 显示格式:报表运算出来的数据,往往需要按照一定的格式进行展现,例如金额1234.5678希望显示成¥1,234.56,日期2005/12/25希望显示成2005-12-25,百分比0.2345希望显示成23.5%等等
● 虽然对数据的显示格式有一定的要求,但是单元格里真实的数据不能改变,照样能够被其他单元格引用,例如1234.5678虽然显示成1,234.56,但是其他单元格引用时,引用的是1234.5678而不是1,234.56,否则会导致误差
● 显示格式的设置方法:
选中需要设置显示格式的单元格(可以批量选择),双击属性列表中的 显示格式,如下图所示:
鼠标双击
双击后,弹出显示格式编辑对话框,如下图所示:
选择相关的显示格式,也可手工敲入,点击确定,显示格式设置完成。
● 显示值:由于业务的需要以及设计数据库的考虑,从数据库中事实表中取出来的很多度量字段的值往往是编码,例如员工表的性别字段,往往存的是0或者1,但是在报表中希望显示成 男 或 女
● 虽然编码字段在报表中显示成对应的中文,但是该单元格的真实编码还需要保留,当别的单元格引用该单元格时,引用的是编码而非中文,此时就需要用到单元格的显示值属性
● 单元格的显示值也可以被引用,此时用到disp函数,例如:disp(A1) 代表A1单元格的显示值。
显示值的定义有两种方式:单值和对照表
举例:
单值定义法:
1、例如:"中国",那么该单元格就显示为"中国"
2、例如:ds1.select1(name,value()==id)
对照表定义法:
例如:map(list("0","1"),list("男","女"))
● 特别说明:
当对数据集运用过滤条件后确定只剩一条记录时,虽然select和select1的的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,就不继续检索了,而select要检索完所有的记录才返回。考虑到显示值属性的定义里,几乎所有情况都只需要返回一条记录,因此建议大家使用select1,不要使用select
● map函数说明:
显示值对照表函数,从对照表中找出当前单元格对应值的显示值,没有则返回null
语法:
map(valueListExp, displayListExp)
参数说明:
valueListExp 真实值列表,可以是可扩展单元格或结果为集合列表的表达式
displayListExp 显示值列表,可以是可扩展单元格或结果为集合列表的表达式
真实值列表和显示值列表一一对应
返回值:
字符型,和当前格真实值对应的显示值
示例:
例1:map(to(1,3),list("男","女","不定"))
例2:map(arg1,arg2) 其中arg1为1,2,3组成的参数组,arg2为"男","女","不定"组成的字符串组
例3:map(list(1,2,3),list("男","女","不定"))
●Select1函数说明:
从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值
语法:
datasetName.select1(selectExp{,filterExp{,rootGroupExp}})
参数说明:
selectExp 要选择的字段列名/列号,,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
filterExp 过滤条件
rootGroupExp 是否root数据集表达式
返回值:
数据类型不定,由selectExp的运算结果决定
特别说明:
当对数据集运用过滤条件后确定只剩一条记录时,虽然select
的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,
就不继续检索了,而select要检索完所有的记录才返回。
示例:
例1:ds1.select1(name)
返回数据集ds1中第一条记录的name字段值
例2:ds1.select1(name,score>90)
从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值
●Value函数说明:
取得当前单元格的值
语法:
value()
返回值:
当前单元格的值
4.3 报表区域
用设计器打开报表4.2,在该报表上做修改,增加页眉、页脚、标题、表头、表尾等。
第一步: 定义表达式
1, 在报表4.2中,选中第一行,在行首格点右键,在弹出的菜单中选”插入行”,如图:
2, 此时在报表顶端增加了一行,重复上面的操作,共增加两行。选中第一行的行表头,设置属性列表的“行类型”为“分页页眉”。如图所示:
3, 再选中第二行,设置属性列表的“行类型”为“头标题”。如图
4, 选中第四行,在行首格点右键,在弹出的菜单中选”追加数据行”,如图:
5, 重复上一步操作,共追加两行。追加后选中第六行,设置属性列表的“行类型”为“分页页脚”。如图所示:
6, 选中第五行,设置属性列表的“行类型”为“报表尾”。如图所示:
7, 在页眉、标题、表尾、页脚等区域分别输入相应内容,并调整报表格式。如图所示:
8, 在报表页脚区的F6单元格中输入表达式:="第"+pno()+"页" pno函数说明
9, 在报表页尾区的F5单元格中输入表达式:=now() now函数说明
并设置显示格式为:yyyy-MM-dd 显示格式说明
第二步:保存预览
预览后我们看到,因为设置了表头区和标题区,我们在显示多条数据的时候,表头被冻结,滚动条的拖拽只是数据区随着改变。
第三步:报表发布
在WEB中发布后的报表一样可以显示和设计器里一样的效果,冻结表头。
● pno函数说明:
取得当前页的页码,注意,本函数只是在分页后才有效
语法:
pno({booleanExp})
参数说明:
booleanExp 表达式
返回值:
当前页的页码。
函数示例:
pno() 返回前页在总的页表中的页码
pno(true) 返回前页在纵向分页的页表中的页码
pno(false) 返回前页在横向分页的页表中的页码
● pcount函数说明
函数说明:
取得总的页数,注意,本函数只是在分页后才有效
语法:
pcount({booleanExp})
参数说明:
booleanExp 表达式
返回值:
页数。
函数示例:
pcount() 返回总的页表中的页数
pcount(true) 返回纵向分页的页表中的页数
pcount(false) 返回横向分页的页表中的页数
● pcsum函数说明
函数说明:
计算分页后的当前页中所有的单元格(cellExp)的和,注意,本函数只是在分页后才有效
语法:
pcsum({cellExp})
参数说明:
cellExp 表达式
返回值:
当前页中所有的单元格(cellExp)的和
函数示例:
pcsum(A2{条件}) 返回当前页中所有的A2格之和
● pccount函数说明
函数说明:
计算分页后的当前页中所有的单元格(cellExp)的个数,注意,本函数只是在分页后才有效
语法:
pccount({cellExp})
参数说明:
cellExp 表达式
返回值:
当前页中所有的单元格(cellExp)的个数
函数示例:
pccount(A2{条件}) 返回当前页中所有的A2格的个数
●now函数说明:
函数说明:
获得系统此刻的日期时间
语法:
now()
返回值:
日期时间
4.4 设置预警条件
用设计器打开报表4.3,在该报表上做修改,使奖金高于15000元的员工信息用红色显示。
第一步:定义表达式
1, 选中第四行,设置第四行的前景色表达式为:if(F4>15000,-65536,-16777216) if函数说明
该表达式意思是当员工奖金高于15000时用红色字体显示,否则用黑色字体显示。
第二步:保存预览
第三步:发布报表
●if函数说明:
根据布尔表达式的不同计算结果,返回不同的值。本函数从左到右计算,先出现的
布尔表达式先算,如果出现为true的表达式,则返回相应的结果,后面的不再计算。
如果没有一个布尔表达式为true,而且有缺省值表达式,则返回缺省值,否则返回null。
语法:
if(boolExp1,valueExp1{,boolExp2,valueExp2 {,boolExp3,valueExp3 {, {defaultExp}}}})
参数说明:
boolExp(n) 布尔表达式,如果结果为真,则返回对应的值表达式计算结果
valueExp(n) 值表达式,和布尔表达式一一对应
defaultExp 缺省值表达式,如果所有布尔表达式结果都为假,则返回本表达式计算结果
返回值:
数据类型不定,由valueExp(n)的运算结果决定。
示例:
例1:if(value()>100,-65536,value()<=100 and value()>80,-16776961,-14336 )
表示当前格的值大于100时,返回-65536颜色值,当前格的值小于等于100且
大于80时,返回-16776961颜色值,否则返回-14336颜色值
4.5 增加动态背景色
用设计器打开报表4.4,在该报表上做修改,使单双行显示一同的背景色。
第一步:定义表达式
1, 选中第四行,设置第四行的背景色表达式为:if(row()%2==0,-3342337,-1) if函数说明, row函数说明
该表达式意思是当行数为偶数行时背景色显示为浅蓝色,当行数为奇数行时背景色显示为白色
第二步:保存预览
第三步:发布报表
● row函数说明:
取得当前单元格所在行的行号
语法:
row({cellExp})
参数说明:
cellExp 单元格表达式(不写表示当前单元格)
返回值:
整数
举例:
在第三行单元格中写入=row(),返回值为3,如果第三行存在纵向扩展格,则行号依次改变。
4.6 取数排序
报表中,取数展现的时候往往要求记录按照一定的顺序进行排列,我们称为排序。比如4.1节中的报表,如果想按照员工id进行升序排列,该如何实现?
按”员工编号”升序排序
快逸报表提供了两种排序方式:sql中排序,select函数中排序,下面分别介绍。
第一种:SQL中排序
SQL中排序是指在定义数据集的时候就把数据按着升序或降序排好,在报表设计阶段直接取数即可,我们在例子4.1上做修改。
单击主菜单中的【配置】->【数据集】,在弹出的”数据集设置”窗口中选中ds1数据集,点【编辑】弹出”SQL编辑器”,在【排序】标签页中选择要排序的字段,如图:
生成的语法:
第二种:select函数中排序
该方法是通过设置select函数的参数来实现排序,还以例4.1为例做修改。如果想以”EMPID”字段升序排列,可以将A2单元格表达式改写为:=ds1.Select(int(EMPID),false),此时报表就是以EMPID字段做升序排序了,若将表达式中的false改成true,则是以EMPID做降序排列。如果想用”姓名”字段排序,可以将A2单元格的表达式改写成:=ds1.Select(EMPID,false,,EMPNAME)
更多用法请参考 select函数说明
SQL中排序是在数据库中进行,而通过select函数排序是在报表端进行,数据库中有索引,且数据库是c语言开发的,数据运算速度快,因此如果报表中的排序规则是确定的,那么建议排序操作选择在数据库端进行。
第5章 参数
5.1 参数的概念
在我们设计一张报表的时候,很少有里面的数据是固定不变的,常常需要根据一些条件来过滤出我们想要的数据。这就需要通过参数的形式控制报表中的数据。
下面,根据前面的报表,我们加入参数使它变成一张更灵活的报表。
5.2 参数的使用
用设计器打开报表4.5,在该报表上做修改,增加两个参数,使报表更灵活。
第一步:单击主菜单中的【配置】,在下拉菜单中选择【参数】
弹出【参数编辑】窗体,如下图所示:
第二步:单击【增加】按钮,新增加一个参数,默认名称为“arg1”,名称可根据自己的需要来命名。这里我们把【名称】和【描述】分别改成“name”和“员工姓名”,【数据类型】我们选择默认的“字符串”。如下图所示:
同样的方法再增加一条”奖金”参数,【数据类型】设置为”数值型”。
注:参数名称尽量用英文,中文容易在部署的时候出现乱码,徒增烦恼。
第三步:单击主菜单中的【配置】,在下拉菜单中选择【数据集】,弹出【数据集设置】窗体,如下图所示:
点【编辑】按钮,弹出SQL编辑器,可以在此对数据集进行修改。
选择【检索条件】标签,设置检索条件(EMPLOYEE.EMPNAME like ? and EMPLOYEE.BONUS >?),如图所示:
选择【参数】标签,点【增加】按钮,增加两个参数与检索条件中的”?”匹配。
点确定,完成参数的设置。
第四步:在设计器中预览报表,点按钮,会弹出”设置报表参数窗口”,录入相关信息,如图所示:
点【确定】查询出名字中包含”小”字且奖金高于200的员工,如图:
第五步:此时的报表已经可以实现根据参数的不同而查询出不同的报表了,可是很多时候用户往往希望参数值不录的时候选出所有记录,接下来我们来对报表做一点修改,来实现这一功能。
单击主菜单中的【配置】,在下拉菜单中选择【数据集】,弹出【数据集设置】窗体,点【编辑】按钮,弹出SQL编辑器,将【检索条件】修改为:(EMPLOYEE.EMPNAME like ? or ? is null)and (EMPLOYEE.BONUS >? or ? is null).如图所示:
然后在【参数】标签页中按照问号顺序,写入参数名或含参数的表达式,如下图所示:
此时预览报表,不录入任何参数即可查询出所有记录。
5.3 参数模板设计
报表参数可以通过外部传入,最简单实用的办法是通过快逸报表设计器来设计参数表单。使用参数表单来接受并引入数据。下面我们来做一个配合上述表例的参数表单。
第一步:点击工具菜单上的【文件】->【新建】,如图:打开新建向导对话框,选择【填报或参数表单】,再点【生成空白报表】按钮生成一张参数模板,如图所示:
第二步:
1, 分别在A1和A2中输入“姓名:”和“奖金高于:”,设置单元格内容为居中。如图:
2, 选中B1和B2单元格点右键,在下拉菜单中选择【填报属性】
3, 在弹出的”数据填报”窗口中将”是否可写”选中,点【确定】完成,如图:
4, 选择B1单元格,设置它的【变量名】属性为:name,即对应前面我们做的参数报表中的参数“name”。如图所示:
按以上方法设置B2格的【变量名】属性为:bonus。如图所示:
5, 为了看上去更美观,我们给报表增加边框,并删除多余单元格,这样一张参数模板就做好了,如图所示:
5.4 将报表和参数模板结合起来发布
最后,我们需要把参数模板也部属在服务器上,并让它和参数化报表一起工作。
第一步:在设计器中打开5.3中的参数模板,点工具栏的按钮,在弹出的窗口中输入报表发布路径(C:\Program Files\reportHome\webapps\quiee\reportFiles)和报表文件名(5.4_arg.raq)。发布报表
第二步:按第一步方式发布报表,报表文件名为5.4.raq。
第三步:点击工具栏的按钮,启动快逸报表中内置的tomcat。
第四步:点击工具栏的按钮,启动IE浏览器,在浏览器中展现报表。如图:
第6章 行式报表
6.1 行式报表的概念
行式展现报表是快逸独有的报表展现形式,大多为明细数据的流水帐,例如交易明细、流水清单等等,其特点是报表样式简单(就是数据库中物理表的样式)、数据量大(每发生一次交易,就会有相应的记录),几百上千万,甚至GB级的数据量。
利用快逸提供的行式展现报表方案,在面对大数据量的清单式报表展现问题上,可以大大提高运算速度,一次性处理大批量数
展开阅读全文