当前位置:文档之家› 润乾报表学习笔记(函数)

润乾报表学习笔记(函数)

润乾报表学习笔记

zeven

2015-12-7 |- 索引图----学习目录

报表设计

初级设计

报表设计步骤: 函数to()

示例

函数select():

从数据集的当前行集中选取符合条件的记录

示例:

|- ds1.select( name ) 从数据源ds1中选取name 字段列的所有值, 不排序 |- ds1.select( #2, true ) 从数据源ds1中选取第二个字段列的所有值并降序排列 |- ds1.select( name,false,sex=='1') 从数据源ds1中选取性别为男性的name 字段列的值并升序排列 |- ds1.select( name, true, sex=='1', id ) 从数据源ds1中选取性别为男性的name 字段列的值并按id 字段降序排列 语法:

datasetName.select({, desc_exp{, filter_exp{, sort_exp{,rootGroupExp}}}} ) datasetName.select( , , )//适用于不需排序或数据集中已排好序 参数:

|- select_exp :要选择的字段列名/列号,,也可以是表达式。列号用#n 表示,例如#0代表第0列,#1代表第1列,依此类推

|- desc_exp: 指定数据排序的顺序,true 表示降序排列,false 表示升序排列。 |- filter_exp: 数据过滤表达式,如果全部选出,则此参数省略,仅用“,”占位。 |- sort_exp: 数据排序表达式。当此项为空时先检查desc_exp 是否为空,如果为空,则不排序,否则使用select_exp 排序。rootGroupExp 是否root 数据集表达式 |- 返回值:一组数据的集合,数据类型由select_exp 的运算结果决定 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) 语法:to(startExp,endExp{,stepExp})

参数: |- startExp 整数数据开始的表达式 |- endExp 整数数据结束的表达式

|- stepExp 整数数据步长的表达式

第一步:打开设计器

第二步:连接数据源

第三步:新建空白报表

第四步:定义数据集

第五步:定义表达式

第六步:美化外观

第七步:保存预览

第八步:发布报表

注意:select 函数选出了一组字段值,该组字段值保留了一个指针,指向数据集中的源记录,也就是说,该组字段值和函数集中的记录保持着一一对应的关系,因此在当前格的附属单元格里(如B2、C2),如果采取dsn.colname 的表达式从当前数据集里取其他字段的值,默认从当前主格指向的记录里取值,而不需要到数据集中检索.因此,在当前格的附属格里尽量使用dsn.colname 表达式,而不采用dsn.select1(colname,filterexp),因为后者需要对表达式进行解析,速度慢.

函数int

|- 将字符串或数字转换成整数

注意: 当对数据集运用过滤条件后确定只剩一条记录时,虽然select 和select1的的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,就不继续检索了,而select 要检索完所有的记录才返回。考虑到显示值属性的定义里,几乎所有情况都只需要返回一条记录,因此建议大家使用select1,不要使用select 函数map()

显示值对照表函数,从对照表中找出当前单元格对应值的显示值,没有则返回null 函数select1()

从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp 值

注意:当对数据集运用过滤条件后确定只剩一条记录时,虽然select 的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,就不继续检索了,而select 要检索完所有的记录才返回。 函数value()

取得当前单元格的值

返回值:当前单元格的值 函数now()

获得系统此刻的日期时间

语法:value()

|- ds1.select1(name) 返回数据集ds1中第一条记录的name 字段值

|- ds1.select1(name,score>90) 从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name 字段值 语法:datasetName.select1(selectExp{,filterExp{,rootGroupExp}})

参数: |- selectExp 要选择的字段列名/列号,也可以是表达式。列号用#n 表示,例如#0代表第0列,#1代表第1列,依此类推filterExp 过滤条件rootGroupExp 是否root 数据集表达式 |- 返回值:数据类型不定,由selectExp 的运算结果决定 语法:map(valueListExp, displayListExp)

参数: |- valueListExp 真实值列表,可以是可扩展单元格或结果为集合列表的表达式

|- displayListExp 显示值列表,可以是可扩展单元格或结果为集合列表的表达式

真实值列表和显示值列表一一对应 |- 返回值:字符型,和当前格真实值对应的显示值 语法:int( string ) int( number )

函数pno()

取得当前页的页码,注意,本函数只是在分页后才有效 示例: 函数pcsum()

计算分页后的当前页中所有的单元格(cellExp)的和,注意,本函数只是在分页后才有效 示例:

函数pccount()

计算分页后的当前页中所有的单元格(cellExp)的个数,注意,本函数只是在分页后才有效 实例:

函数pcount()

取得总的页数,注意,本函数只是在分页后才有效

语法:pcount({booleanExp})

参数: |- booleanExp 表达式

|- 返回值:页数。 pccount(A2{条件}) 返回当前页中所有的A2格的个数 语法:pccount({cellExp})

参数: |- cellExp 表达式

|- 返回值:当前页中所有的单元格(cellExp)的个数 pcsum(A2{条件}) 返回当前页中所有的A2格之和 语法:pcsum({cellExp})

参数: |- cellExp 表达式

|- 返回值:当前页中所有的单元格(cellExp)的和 pno() 返回前页在总的页表中的页码

pno(true) 返回前页在纵向分页的页表中的页码

pno(false) 返回前页在横向分页的页表中的页码 语法:pno({booleanExp})

参数: |- booleanExp 表达式 |- 返回值:当前页的页码

函数if()

根据布尔表达式的不同计算结果,返回不同的值。本函数从左到右计算,先出现的布尔表达式先算,如果出现为true 的表达式,则返回相应的结果,后面的不再计算。如果没有一个布尔表达式为true,而且有缺省值表达式,则返回缺省值,否则返回null 。 示例: 函数row()

取得当前单元格所在行的行号

函数

group() 根据分组表达式,从数据集中选出一组组集。

示例:

|- ds1.group(class) 把数据集ds1中所有记录按照class 字段进行分组,并返回每组的class

值组成的集合

|- ds1.group(class, true ) 把数据集ds1中所有记录按照class 字段降序排列,然后根据class 进行分组,并返回每组的class 值组成的集合

|- ds1.group(class,false,sex=='1') 从数据源ds1中选取性别为"1"的记录,按照class 字段升

序排列,然后根据class 进行分组,并返回每组的class 值组成的集合 |- ds1.group(class, true, sex=='1', id ) 从数据源ds1中选取性别为"1"的记录,按照id 字段

降序排列,然后根据class 进行分组,并返回每组的class 值组成的集合

|- ds1.group(省份,true,,,sum(工业产值),true) 对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),然后按照这个汇总值对组进行逆序排列 语法:datasetName.group(

datasetName.group(selectExp{,descExp{,filterExp{,sortExp{,groupSortExp{,groupDescExp{

,rootGroupExp}}}}}})

参数: |- selectExp 选出的分组表达式,可以是字段列名/列号,也可以是表达式。列号用

#n 表示,例如#0代表第0列,#1代表第1列,依此类推

|- descExp 分组前记录的排序顺序,true 为逆序,false 为顺序 |- terExp 过滤表达式 |- sortExp 分组前记录的排序依据表达式 |- groupSortExp 分组后对组的排序表达式,一般是汇总运算的表达式,如组合计等

|- groupDescExp 组排序顺序,true 为逆序,false 为顺序 |- rootGroupExp 是否root 数据集表达式 |- 返回值:一组数据的集合,数据类型由selectExp 的运算结果来决定 语法:row({cellExp})

参数: |- cellExp 单元格表达式(不写表示当前单元格)

|- 返回值:整数 if(value()>100,-65536,value()<=100 and value()>80,-16776961,-14336 ) 表示当前格的值大

于100时,返回-65536颜色值,当前格的值小于等于100且大于80时,返回-16776961颜色值,否则返回-14336颜色值 语法:if(boolExp1,valueExp1{,boolExp2,valueExp2 {,boolExp3,valueExp3 {, {defaultExp}}}}) 参数: |- boolExp(n) 布尔表达式,如果结果为真,则返回对应的值表达式计算结果

|- valueExp(n) 值表达式,和布尔表达式一一对应

|- defaultExp 缺省值表达式,如果所有布尔表达式结果都为假,则返回本表达式

计算结果 |- 返回值:数据类型不定,由valueExp(n)的运算结果决定。

函数count()

对可扩展单元格或集合表达式进行计数 示例:

|- count(A1:B10,false) 以当前格为基格计算A1和B10之间总共有几个单元格,如果单元格的值为空则不进行计数

|- count(A1[1]:B10[3])计算A1扩展出来的第一个格和B10扩展出来的第三个格之间总共有几个单元格

|- count(arg1) 其中arg1是参数组,统计arg1中有几个数据

|- count(B1{})表示求得当前主格扩展区域内所有扩展后的B1单元格的个数 |- count(B1{`0}{})表示求得根坐标下所有扩展后的B1单元格的个数 语法:count(expression{,containNull})

参数: |- expression 需要被计数的单元格或表达式,一般为可扩展单元格或集合表达式 |- containNull 缺省为true ,表示对null 元素也进行计数;false 则相反

|- 返回值:整数

|- 什么是报表

|- 报表的特点是什么

|- 报表的难点是什么

|- 报表的设计包括哪些方面|- 如何开始设计报表

|- 基本报表有哪些

|- 各个报表的特点

|- 样式和布局的异同点

相关主题
文本预览
相关文档 最新文档