润乾报表函数文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据集函数
Avg
函数说明:
从数据集中,从满足条件的记录中,算出给定字段或表达式的平均值
语法:
datasetName.avg(selectExp{,filterExp})
datasetName.average(selectExp{,filterExp})
参数说明:
selectExp 需要计算平均值的字段或表达式,数值类型
filterExp 过滤条件表达式
返回值:
实数
举例:
例1:ds1.avg(score,sex="1")
表示从数据集的当前记录行集中过滤出sex为"1"的记录集合,
求得其score字段的平均值,score字段要求为数值型。

例2:ds2.avg(quantity*price)
表示对数据集的当前记录行集求得表达式quantity*price的平均值
函数说明:
此函数功能等同select1(),但是算法不同,采用二分法,适用于数据集记录
已经按照参考字段排好序的情况,运算速度比select1()快
bselect1
语法:
datasetName.bselect_one(selectExp,referExp1,referDescExp1,referV alueExp1
{,referExp2,referDescExp2,referV alueExp2{....}}})
datasetName.bselect1(selectExp,referExp1,referDescExp1,referV alueExp1)
参数说明:
selectExp 选出字段或表达式
referExp1 参考字段表达式
referDescExp1 参考字段表达式的数据顺序,true表示降序排列,false表示升序排列
referV alueExp1 参考字段的值表达式,一旦找到参考字段和该值相同的记录,即返回selectExp的值
返回值:
数据类型不定,由selectExp的运算结果决定
示例:
例1:ds1.bselect1(name,id,false,@value)
采用二分法,找到数据集ds1中id和当前格的值相等的记录,返回其name字段值
例2:ds1.bselect1(name,id,false,@value,class,false,A1,sex,true,B1)
采用二分法,找到数据集ds1中id和当前格的值相等、class和A1相等
且sex和B1相等的记录,返回其name字段值
Bselect_one()
此函数同数据集函数bselect1
colcount()
函数说明:
获得数据集的列数
语法:
datasetName.colcount()
返回值:
整数
举例:
例1:ds1.colcount() 获得ds1数据集的列数,整数类型
函数说明:
计算数据集当前记录行集中,满足条件的记录数
count()
语法:
datasetName.count({filterExp})
参数说明:
filterExp 条件表达式,如果全部选出,则不要此参数,
返回值:
整数
举例:
例1:ds1.count()
例2:ds1.count(true)
含义同上,但是运算速度比ds1.count()慢,因此当记录全部选出时,
建议不要true
例3:ds1.count(quantity>500)
表示从ds1当前记录行集中选出quantity>500的记录进行计数,
返回记录数。

Field
函数说明:
获得数据集的列对象
语法:
datasetName.field( stringExp )
datasetName.field( intExp )
参数说明:
stringExp 数据集列名的表达式
intExp 数据集列号的表达式
返回值:
数据集的列对象,只能作为表达式的元素使用,不能作为最终单元格的值
说明:
此函数性能比较低,请慎用
举例:
例1:在报表中写入如下表达式
A B
┌─────────┬────────────┐
1 ││= 1 TO ds2.colcount() │
│├────────────┤
2 ││= ds2.fieldname(b2) │
├─────────┼────────────┤
3 │= ds2.Select(#0) │= ds2.field(b2) │
└─────────┴────────────┘
该报表相当于在B1中根据数据集ds2的列数进行横向扩展,在A3中根据
数据集的行数进行纵向扩展,然后在B2和B3中动态获取列名和列对象,
算出列值,这种用法可以实现动态列报表
该报表的预览结果如下:
┌───────┬───────┬───────┬───────┐
│客户编码│客户名称│电话│传真│
├───────┼───────┼───────┼───────┤
│ 2 │天津长城化工厂│3452346 │4562674 │
├───────┼───────┼───────┼───────┤
│ 3 │江苏天龙食品集│4576546 │7465675 │
├───────┼───────┼───────┼───────┤
│ 4 │中国化工原料厂│4563456 │5675763 │
└───────┴───────┴───────┴───────┘fieldname
函数说明:
根据列号取数据集的列名
语法:
datasetName.fieldName( intExp )
参数说明:
intExp 数据集列号的表达式
返回值:
字符型
举例:
例1:ds1.fieldName(3) 返回"score",
表示数据集ds1中第三列的列名为"score"
例2:运用举例,在报表中写入如下表达式
A B
┌─────────┬────────────┐
1 ││= 1 TO ds2.colcount() │
│├────────────┤
2 ││= ds2.fieldname(b2) │
├─────────┼────────────┤
3 │= ds2.Select(#0) │= ds2.field(b2) │
└─────────┴────────────┘
该报表相当于在B1中根据数据集ds2的列数进行横向扩展,在A3中根据
数据集的行数进行纵向扩展,然后在B2和B3中动态获取列名和列对象,
算出列值,这种用法可以实现动态列报表
该报表的预览结果如下:
┌───────┬───────┬───────┬───────┐
│客户编码│客户名称│电话│传真│
├───────┼───────┼───────┼───────┤
│ 1 │无锡食品加工厂│3454356 │4575775 │
├───────┼───────┼───────┼───────┤
│ 3 │江苏天龙食品集│4576546 │7465675 │
├───────┼───────┼───────┼───────┤
│ 4 │中国化工原料厂│4563456 │5675763 │
└───────┴───────┴───────┴───────┘
First
函数说明:
从数据集满足条件的记录集合中,选出第一条记录,
返回给定字段或表达式的值
语法:
datasetName.first(selectExp{,descExp{,filterExp{,sortExp}}})
参数说明:
selectExp 要选择的字段列,可以是字段列名/列号,也可以是表达式。

列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
descExp 排序的顺序,true代表逆序,false代表顺序
filterExp 过滤条件表达式
sortExp 排序依据表达式
返回值:
数据类型不定,由selectExp的计算结果决定
举例:
例1:ds1.first(name,true,score>90,id)
从ds1数据集中选出成绩大于90的记录,按照id逆序排列,
返回第一条记录的name字段值
例2:ds1.first(name,true,,score)
对ds1数据集的所有记录按照成绩逆序排列,然后返回第一条记录的name字段值例3:ds1.first(name) 返回数据集ds1中第一条记录的name字段值
Get()
此函数等同于select_one()
Group()
函数说明:
根据分组表达式,从数据集中选出一组组集。

//适用于不需要排序或数据集中已排好序
datasetName.group(selectExp{,descExp{,filterExp{,sortExp{,groupSortExp{,groupDescExp}}}}})
参数说明:
selectExp 选出的分组表达式,可以是字段列名/列号,也可以是表达式。

列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
descExp 分组前记录的排序顺序,true为逆序,false为顺序
filterExp 过滤表达式
sortExp 分组前记录的排序依据表达式
groupSortExp 分组后对组的排序表达式,一般是汇总运算的表达式,如组合计等
groupDescExp 组排序顺序,true为逆序,false为顺序
返回值:
一组数据的集合,数据类型由selectExp的运算结果来决定
示例:
例1:ds1.group(class)
把数据集ds1中所有记录按照class字段进行分组,
并返回每组的class值组成的集合
例2:ds1.group(class, true )
把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组,
并返回每组的class值组成的集合
例3:ds1.group(class,false,sex='1')
从数据源ds1中选取性别为"1"的记录,按照class字段升序排列,
然后根据class进行分组,并返回每组的class值组成的集合
例4:ds1.group(class, true, sex='1', id )
从数据源ds1中选取性别为"1"的记录,按照id字段降序排列,
然后根据class进行分组,并返回每组的class值组成的集合
例5:ds1.group(省份,true,,,sum(工业产值),true)
对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),
然后按照这个汇总值对组进行逆序排列
Isfield()
函数说明:
判断数据集中是否有该列名
语法:
datasetName.isfield( stringExp )
布尔型
举例:
例1:ds1.isfield("score") 返回true,表示ds1中含有score这个列名
Last()
函数说明:
从数据集满足条件的记录集合中,选出最后一条记录,返回给定字段或表达式的值
语法:
st(selectExp{,descExp{,filterExp{,sortExp}}})
参数说明:
selectExp 要选择的字段列,可以是字段列名/列号,也可以是表达式。

列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
descExp 排序的顺序,true代表逆序,false代表顺序
filterExp 过滤条件表达式
sortExp 排序依据表达式
返回值:
数据集中最后一条记录指定字段的值,数据类型由selectExp的运算结果决定
示例:
例1:st(name,true,,score)
将ds1数据集的记录按成绩逆序排列,并返回最后一条记录的name字段值max
函数说明:
从数据集中,从满足条件的记录中,选出给定字段或表达式的最大值
语法:
datasetName.max(selectExp{,filterExp})
参数说明:
selectExp 需要获得最大值的字段或表达式
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推filterExp 过滤表达式
返回值:
例1:ds1.max(score) 获得数据集ds1中的score最大值
例2:ds1.max(score,sex="1") 获得数据集ds1中sex="1"的记录中score最大值
Min()
函数说明:
从数据集中,从满足条件的记录中,选出给定字段或表达式的最小值
语法:
datasetName.min(selectExp{,filterExp})
参数说明:
selectExp 需要获得最小值的字段或表达式
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
filterExp 过滤表达式
返回值:
集合中的最大值,数据类型不定,由selectExp的运算结果决定
示例:
例1:ds1.min(score) 获得数据集ds1中的score最小值
例2:ds1.min(score,sex="1") 获得数据集ds1中sex="1"的记录中score最小值
Plot()
函数说明:
根据数据值段进行分组,俗称“按段分组”
语法:
datasetName.plot( valueExp, listExp{, filterExp}{, eqExp}{, ascExp} )
参数说明:
valueExp 用于分组的值表达式
ListExp 数据值段列表,同valueExp数据类型相同的数组,要求其中元素从小到大排列
filterExp 过滤表达式
eqExp 返回布尔值的表达式,缺省为false,表示与元素比较时不包含等于
ascExp 返回布尔值的表达式,缺省为true,表示listExp返回的数组按从小到大排,否则为从大到小排
特别说明:
ascExp为true(即listExp从小到大排列)时,eqExp为true时,与元素比较时采用<=,eqExp为false时,采
ascExp为false(即listExp从大到小排列)时,eqExp为true时,与元素比较时采用>=,eqExp为false时,采用>
返回值:
整数组,代表记录按值段分组后组的顺序,如{0,1,2,3}代表第一组,第二组,第三组,第四组
因此,定义完单元格数据值表达式后还需要定义显示值表达式,比如第一组代表不及格,第二组代表及格等等
示例:
例1:ds1.plot(成绩,{60,80,90},,true,false) ,返回值为{0,1,2,3}
对数据集ds1的记录按成绩段进行分组,60分以下、60-80,80-90,90分以上等四组
同时定义显示值表达式为:map({0,1,2,3},{不及格,及格,良好,优秀})
例2:ds1.plot(成绩,arg1,,true,false),其中arg1为整数组,其值为{60,70,80,90}
显示值表达式为:map(0 to count(arg1),arg2),其中arg2为字符串组,
其值为{"不及格","及格","中","良好","优秀"}
本例通过参数动态控制分组值段以及结果组的显示值
rbselect_one()
函数说明:
此函数功能等同rselect1(),但是算法不同,采用二分法,适用于数据集记录
已经按照参考字段排好序的情况,运算速度比rselect1()快
语法:
datasetName.rbselect_one(selectExp,referExp1,referDescExp1,referV alueExp1
{,referExp2,referDescExp2,referV alueExp2{....}}})
datasetName.rbselect1(selectExp,referExp1,referDescExp1,referV alueExp1)
参数说明:
selectExp 选出字段或表达式
referExp1 参考字段表达式
referDescExp1 参考字段表达式的数据顺序,true表示降序排列,false表示升序排列
referV alueExp1 参考字段的值表达式,一旦找到参考字段和该值相同的记录,即返回selectExp的值......参考字段及其值可以多个,如果是多个,则找到多个参考字段都和值匹配的记录才返回
返回值:
数据类型不定,由selectExp的运算结果决定
示例:
例1:ds1.rbselect1(name,id,false,@value)
采用二分法,找到数据集ds1中id和当前格的值相等的记录,返回其name字段值例2:ds1.rbselect1(name,id,false,@value,class,false,A1,sex,true,B1)
Rbselect_one()
此函数同数据集函数rbselect1
rgroup()
函数说明:
重新取得数据集中所有数据,并分组,和group的区别在于:group对数据集
当前记录行集操作,而rgroup对数据集所有记录操作,所有参数均和group相同
语法:
datasetName.rgroup( <selectExp>, , <filterExp> )
//适用于不需要排序或数据集中已排好序
datasetName.rgroup(selectExp{,descExp{,filterExp{,sortExp{,groupSortExp{,groupDescExp}}}}})
参数说明:
selectExp 选出的分组表达式,可以是字段列名/列号,也可以是表达式。

列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
descExp 分组前记录的排序顺序,true为逆序,false为顺序
filterExp 过滤表达式
sortExp 分组前记录的排序依据表达式
groupSortExp 分组后对组的排序表达式,一般是汇总运算的表达式,如组合计等
groupDescExp 组排序顺序,true为逆序,false为顺序
返回值:
一组数据的集合,数据类型由selectExp的运算结果来决定
示例:
例1:ds1.rgroup(class)
把数据集ds1中所有记录按照class字段进行分组,
并返回每组的class值组成的集合
例2:ds1.rgroup(class, true )
把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组,
并返回每组的class值组成的集合
例3:ds1.rgroup(class,false,sex='1')
从数据源ds1中选取性别为"1"的记录,按照class字段升序排列,
然后根据class进行分组,并返回每组的class值组成的集合
例4:ds1.rgroup(class, true, sex='1', id )
从数据源ds1中选取性别为"1"的记录,按照id字段降序排列,
然后根据class进行分组,并返回每组的class值组成的集合
对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),
然后按照这个汇总值对组进行逆序排列
rselect()
函数说明:
从根数据组(即包含数据集所有记录的组)中选取符合条件的记录
语法:
datasetName.rselect( <select_exp>{, desc_exp, filter_exp, sort_exp} )
参数说明:
select_exp:要选择的字段列名/列号,,也可以是表达式。

列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推desc_exp: 指定数据排序的顺序,true表示降序排列,false表示升序排列。

filter_exp: 数据过滤表达式,如果全部选出,则此参数省略,仅用“,”占位。

sort_exp: 数据排序表达式。

当此项为空时先检查desc_exp是否为空,如果为空,
则不排序,否则使用select_exp排序。

返回值:
一组数据的集合,数据类型由select_exp的运算结果决定
示例:
例1:ds1.rselect( name )
从数据源ds1中选取name字段列的所有值, 不排序
例2:ds1.rselect( #2, true )
从数据源ds1中选取第二个字段列的所有值并降序排列
例3:ds1.rselect( name,false,sex='1')
从数据源ds1中选取性别为男性的name字段列的值并升序排列
例4:ds1.rselect( name, true, sex='1', id )
从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列
rselect1()
此函数等同于rselect_one()
rselect_one
函数说明:
从根数据组(即包含数据集所有记录的组)中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值语法:
参数说明:
selectExp 选出字段或表达式
filterExp 过滤条件
返回值:
数据类型不定,由selectExp的运算结果决定
特别说明:
当对数据集运用过滤条件后确定只剩一条记录时,虽然rselect和rselect_one
的运算结果一样,但是rselect_one运算效率高,因为他只要找到符合条件的记录,
就不继续检索了,而rselect要检索完所有的记录才返回。

示例:
例1:ds1.rselect_one(name)
返回数据集ds1中第一条记录的name字段值
例2:ds1.rselect_one(name,score>90)
从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值select
函数说明:
从数据集的当前行集中选取符合条件的记录
语法:
datasetName.select( <select_exp>{, desc_exp, filter_exp, sort_exp} )
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排序。

返回值:
一组数据的集合,数据类型由select_exp的运算结果决定
函数示例:
例1:ds1.select( name )
从数据源ds1中选取name字段列的所有值, 不排序
例2:ds1.select( #2, true )
从数据源ds1中选取第二个字段列的所有值并降序排列
从数据源ds1中选取性别为男性的name字段列的值并升序排列
例4:ds1.select( name, true, sex='1', id )
从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列select1()
此函数等同于select_one()
select_one
函数说明:
从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值
语法:
datasetName.select_one(selectExp{,filterExp})
datasetName.select1(selectExp{,filterExp})
参数说明:
selectExp 选出字段或表达式
filterExp 过滤条件
返回值:
数据类型不定,由selectExp的运算结果决定
特别说明:
当对数据集运用过滤条件后确定只剩一条记录时,虽然select和select_one
的运算结果一样,但是select_one运算效率高,因为他只要找到符合条件的记录,
就不继续检索了,而select要检索完所有的记录才返回。

示例:
例1:ds1.select_one(name)
返回数据集ds1中第一条记录的name字段值
例2:ds1.select_one(name,score>90)
从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值sum()
函数说明:
从数据集当前记录行集中检索出符合条件的记录集合,算出给定字段或表达式的汇总值
语法:
datasetName.sum(selectExp{,filterExp})
filterExp 条件表达式
返回值:
实数
示例:
例1:ds1.sum(quantity) 求得数据集ds1当前行集中quantity字段的汇总值
例2:ds1.sum(quantity,productid="1")
从数据集ds1当前行集中检索出productid="1"的记录集,求得其quantity字段的汇总值top
函数说明:
从数据集中符合条件的记录中选取头num条并返回
语法:
datasetName.top( <select_exp>,<num_exp>{, desc_exp, filter_exp,sort_exp} )
参数说明:
select_exp:要选择的字段列,可以是字段列名/列号,也可以是表达式。

列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
num_exp:要取得记录个数表达式,该字段计算的最终结果为整型
desc_exp: 指定数据排序的顺序,true表示降序排列,false表示升序排列。

filter_exp: 数据过滤表达式。

sort_exp: 排序表达式。

返回值:
一组数据的集合,数据类型由select_exp的运算结果决定
示例:
例1:ds1.top(name,10) 返回数据集ds1中头十条记录的name字段值
例2:ds1.top(name,10,true,,score)
将数据集记录按成绩降序排列,返回头十条记录的name字段值
单元格函数
avg()
函数说明:
对可扩展单元格或集合表达式求平均值
语法:
avg(expression)
expression 需要求平均值的单元格或表达式,一般为可扩展单元格或集合表达式
返回值:
实数
示例:
例1:avg(A1:A10) 表示求得A1至A10之间10个单元格的平均值
例2:avg(arg1) 其中arg1是整数组,表示求得arg1中所有数据的平均值
例3:avg(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的平均值
例4:avg(B1{`0}{}) 表示求得根坐标下所有扩展后的B1单元格的平均值
call()
函数说明:
执行存储过程,返回结果数据集合,只能返回单列数据,如果存储过程返回多个字段,则返回第一个字段的结果值
语法:
call(sqlStatement{,arg1{,arg2{,arg3{,……}}}})
参数说明:
sqlStatement 合法的调用存储过程的sql语句
arg(n) sql语句的参数,可以是常数也可以是表达式,
如果是输出结果集的参数,对应的参数表达式写成"@@result"
返回值:
一组数据的集合,由结果集的第一个字段决定数据类型
示例:
例1:call("{call ResultSet (?,?,?)}","@@result","000001",a2)
表示执行存储过程ResultSet,第一个输出参数输出结果集,第二、三个
参数传入"000001",a2作为参数值
call2()
函数说明:
除第一个参数为数据源连接外,其他参数可call()函数相同,功能也和call()
函数相同,通过第一个参数,可以实现不同的单元格连接不同的数据源。

语法:
dbName 数据源名称
sqlStatement 合法的调用存储过程的sql语句
arg(n) sql语句的参数,可以是常数也可以是表达式,
如果是输出结果集的参数,对应的参数表达式写成"@@result"
返回值:
一组数据的集合,由结果集的第一个字段决定数据类型
示例:
例1:call2("demo","{call ResultSet (?,?,?)}","@@result","000001",a2)
表示对数据源demo执行存储过程ResultSet,第一个输出参数输出结果集,
第二、三个参数传入"000001",a2作为参数值
case()
函数说明:
根据布尔表达式的不同计算结果,返回不同的值。

本函数从左到右计算,先出现的
布尔表达式先算,如果出现为true的表达式,则返回相应的结果,后面的不再计算。

如果没有一个布尔表达式为true,而且有缺省值表达式,则返回缺省值,否则返回null。

语法:
case(boolExp1,valueExp1{,boolExp2,valueExp2 {,boolExp3,valueExp3 {, {defaultExp}}}})
参数说明:
boolExp(n) 布尔表达式,如果结果为真,则返回对应的值表达式计算结果
valueExp(n) 值表达式,和布尔表达式一一对应
defaultExp 缺省值表达式,如果所有布尔表达式结果都为假,则返回本表达式计算结果
返回值:
数据类型不定,由valueExp(n)的运算结果决定。

示例:
例1:case(@value>100,-65536,@value<=100 and @value>80,-16776961,-14336 )
表示当前格的值大于100时,返回-65536颜色值,当前格的值小于等于100且
大于80时,返回-16776961颜色值,否则返回-14336颜色值
col()
函数说明:
取得当前单元格所在列的列号
语法:
col()
整数
举例:
在B列单元格中写入=col(),返回值为2,如果B列存在横向扩展格,则列号依次改变。

count()
函数说明:
对可扩展单元格或集合表达式进行计数
语法:
count(expression)
参数说明:
expression 需要被计数的单元格或表达式,一般为可扩展单元格或集合表达式
返回值:
整数
示例:
例1:count(A1:A10) 统计A1至A10之间有几个单元格
例2:count(arg1) 其中arg1是参数组,统计arg1中有几个数据
例3:count(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的个数
例4:count(B1{`0}{}) 表示求得根坐标下所有扩展后的B1单元格的个数
disp()
函数说明:
取单元格的显示值
语法:
disp( cell )
参数说明:
cell 单元格
返回值:
字符型
示例:
例1:if(disp(A1) like "中国*",true,false)
表示如果A1单元格的显示值含有中国的字样,返回true,否则返回false。

ds()
函数说明:
按名称取得数据集对象,本函数用于动态改变表达式的数据集对象,用法很灵活,
但是性能较低,须慎用。

语法:
ds( stringExp )
参数说明:
stringExp 数据集的名称
返回值:
数据集对象
说明:
本函数的返回值是表达式的一个元素,不能作为单元格的数据值,必须经过二次运算。

示例:
例1:ds("ds1").select(#0) 表示取出ds1数据集中的记录行号集合
esc()
函数说明:
输出打印机控制码序列。

注意,此函数首先在类路径上查找printer.ini文件,
然后根据报表文件中定义的虚拟打印机名称,查找当前需要输出的打印机控制码序列。

语法:
esc( stringExp )
参数说明:
stringExp 虚拟打印机的名称
返回值:
字符型,打印机控制码序列
示例:
例1:esc("LQ1600") 输出打印机LQ1600的控制码序列
eval()
函数说明:
动态解析并计算表达式
eval( StringExp )
eval( StringExp, SubRptExp )
eval( StringExp, DataSetExp )
参数说明:
StringExp 待计算的表达式串
SubRptExp 嵌入式子报表对象,一般是含有子报表的单元格
DataSetExp 数据集对象,一般是ds函数
返回值:
表达式的结果值,数据类型由表达式决定
示例:
例1:eval( "1+5" ) 返回6
例2:eval("B2+10", A1),其中A1为嵌入式子报表,表示计算A1子报表中的B2+10
例3:eval("salary+100", ds("ds1")),表示计算数据集ds1中salary加100
if()
函数说明:
根据布尔表达式的不同结果,返回不同的值
语法:
if(boolExp, trueV alueExp, falseV alueExp)
参数说明:
boolExp 结果为布尔类型的表达式
trueV alueExp 布尔表达式为真时,返回本参数的计算结果,本参数可以是常数或表达式falseV alueExp 布尔表达式为假时,返回本参数的计算结果,本参数可以是常数或表达式
返回值:
trueV alueExp或falseV alueExp的运算结果值
示例:
例1:if(A1>0,A1,"--") 如果A1大于0,返回A1,否则返回"--"
list()
函数说明:
获得一个枚举的数据集合
语法:
list(valueExp1{,valueExp2{,valueExp3{,……}}})
valueExp(n) 可以是常数或表达式,也可以是集合表达式
返回值:
一组枚举数据的集合
示例:
例1:list(1,3,5,7,9)
例2:list("abc","def","ghj")
例3:list(arg1,1 to 3,"a","b","c") 假设arg1是个整数组,其值为7,8,9,
那么该表达式的结果值为{7,8,9,1,2,3,"a","b","c"}
map()
函数说明:
显示值对照表函数,从对照表中找出当前单元格对应值的显示值,没有则返回null
语法:
map(valueListExp, displayListExp)
参数说明:
valueListExp 真实值列表,可以是可扩展单元格或结果为集合列表的表达式
displayListExp 显示值列表,可以是可扩展单元格或结果为集合列表的表达式
真实值列表和显示值列表一一对应
返回值:
字符型,和当前格真实值对应的显示值
示例:
例1:map(1 to 3,{"男","女","不定"})
例2:map(arg1,arg2),其中arg1为1,2,3组成的参数组,arg2为"男","女","不定"组成的字符串组例3:map(list(1,2,3),list("男","女","不定"))
max(expression)
函数说明:
对可扩展单元格或集合表达式求最大值
语法:
max(expression)
expression 需要求最大值的单元格或表达式,一般为可扩展单元格或集合表达式
返回值:
数据类型不定,由expression的计算结果决定
示例:
例1:max(A1:A10) 求出单元格A1至A10之间的最大值
例2:max(arg1) 其中arg1是参数组,求出arg1中的最大值
例3:max(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的最大值例4:max(B1{`0}{}) 表示求得根坐标下所有扩展后的B1单元格的最大值maxwidth()
函数说明:
求当前列中所有非合并格的显示串的最大字符长度
(注意:ASCII码大于255的字符长度为2)
语法说明:
maxwidth()
返回值:
整数
示例:
一般用于列首格中,动态控制列宽
例1:在列首格的单元格宽属性中写入8*maxwidth(),表示动态调整当前列宽为单元格显示值最大字符长度*8个像素
min()
函数说明:
对可扩展单元格或集合表达式求最小值
语法:
min(expression)
参数说明:
expression 需要求最小值的单元格或表达式,一般为可扩展单元格或集合表达式
返回值:
数据类型不定,由expression的计算结果决定
示例:
例1:min(A1:A10) 求出单元格A1至A10之间的最小值
例2:min(arg1) 其中arg1是参数组,求出arg1中的最小值
例3:min(B1{}) 表示求得当前主格扩展区域内所有扩展后的B1单元格的最小值
例4:min(B1{`0}{}) 表示求得根坐标下所有扩展后的B1单元格的最小值
nvl( valueExp1, valueExp2 )
函数说明:
根据第一个表达式的值是否为空,返回其他值
语法:
nvl( valueExp1, valueExp2 )
参数说明:
valueExp1 需要计算的表达式,其结果不为空时返回其值
valueExp2 需要计算的表达式,当valueExp1结果为空时返回此值
返回值:
valueExp1或valueExp2的结果值
示例:
例1:nvl(A1,"") 表示当A1为空时,返回空串,否则返回A1
例2:nvl(@value,0) 表示当当前格为空时返回0,否则返回当前格的值
plot()
函数说明:
计算一个值在一个完全划分中的位置
语法:
plot( valueExp, ListExp{, eqExp}{, ascExp} )
参数说明:
valueExp 返回值的表达式,值可以是字符串、数值、日期、时间等
ListExp 返回同valueExp数据类型相同的数组,要求其中元素从小到大排列
eqExp 返回布尔值的表达式,缺省为false,为false表示与ListExp元素比较时不包含等于
ascExp 返回布尔值的表达式,缺省为true,即表示ListExp中元素从小到大排列,否则为从大到小排列
示例:。

相关文档
最新文档