分享

帆软软件知识

 俺永不后悔 2012-06-22

1. 操作符

操作符用于执行程序代码运算,会针对一个以上操作数项目来进行运算

操作符

说明

操作对象

示例

+

加号

数或单元格

2+3

-

减号

数或单元格

A1-B1

*

乘号

数或单元格

A1*2

/

除号

数或单元格

A3/3

%

取余,求余数

数或单元格

5%2为1

&&

条件与,需要两个操作数的值都是true时,才取值true

条件

A&&B

||

或,只要两个操作数中有一个是true取值就为true

条件

A||B

&

取单元格所在行列

单元格

&A1

!

取非,即取条件的反面

条件

!A,如果A是true,!A是false

==

等于

数或变量

A==2

!=

不等于

数或变量

A!=null

:

到 ,用于取一段连续范围的单元格

单元格

如A1:B3 即取A1到B3这个单元格集合

>

大于

数或变量或单元格

3>2

<

小于

数或变量或单元格

A1<2

>=

大于等于

数或变量或单元格

A1>=2

<=

小于等于

数或变量或单元格

A1<=2

.

引用对象或方法

对象或方法

ds1.select(#1)

$

参数引用符或绝对定位

参数或绝对定位

前者如$para 后者是在层次坐标中用的如B1=$B1

#

列序号

ds1.select(#1)

${}

宏定义

参数

如在sql中 select * from table ${"where 1=2"},会先计算出${}里面的值,然后拼接出完整的sql语句

Cell[]

层次坐标操作符

单元格

A2[A1:-1]

$$$

表示当前单元格的值即当前值

有数据的单元格

if($$$=0,"",$$$)表示如当前值为0则显示空,否则为当前值

\\

引用“\”,值即为\

单元格

如\"表示引用"号

\n

换行符

字符串

如字符串aabb,希望bb换行显示,则填写aa\nbb

例句:

=if(type = 1, ds1.group(年份), (if(type = 2, ds1.group(月份), ds1.group(订单_订购日期))))

ds1.select()和ds1.group()函数的使用

1. 概述

一般情况下,我们直接使用数据列的拖拽就能制作出想要的报表,但对于习惯编程的用户或者希望根据不同的条件控制某个单元使用哪个数据列时,我们也同样支持直接在单元格中使用来实现,这样的函数我们称为数据集函数。

以下列出所有的数据集函数及用法。

2. tablename.select(colname,筛选条件1,筛选条件2,......)

说明:选出数据集某列中符合条件的数据,返回结果是一个数组,相同数据不会合并。

其中tablename表示数据集名称,注意是报表数据集或者是服务器数据集名,而非数据库中的表名;

colname表示列名,大小写不区分。

示例:如数据集ds1取出内置FRDemo数据库中的销量表

在单元格中输入=ds1.select(销售员),返回数据集ds1销售员列中的所有值。

在单元格中输入=ds1.select(销售员, 地区 = "华东", 销量 > 200),返回数据集ds1华东地区销售总额超过200的销售员。

3. tablename.group(colname,筛选条件1 && 筛选条件2,升降序)

说明:选出数据集某列中符合条件的数据并分组,还可以按照该列进行升降序排列。

其中tablename表示数据集名称、colname表示列名;

升降序为布尔值,true表示升序,false表示降序。

示例:如数据集ds1取出内置FRDemo数据库中的销量表

在单元格中输入=ds1.group(销售员),返回数据集ds1销售员列中的值,并且相邻数据若相同会进行合并。

在单元格中输入=ds1.group(销售员,true,false)或=ds1.group(销售员,,false),返回数据集ds1销售员列中的值,并且其中只要相同就会进行合并,结果为降序排列,中间的参数为条件,若没有条件,可以不写或者使用true,但是不能省略。

在单元格中输入=ds1.group(销售员,地区=="华东"),返回数据集ds1华东地区的销售员,并且相邻数据若相同会进行合并。

在单元格中输入=ds1.group(销售员,地区=="华东",true),返回数据集ds1华东地区的销售员,并且会合并所有相同项,结果为升序排列。

注:tablename.group()中只能有一个筛选条件。

4. tablename.select(#0)

说明:返回数据集ds1中的行号。

示例:如数据集ds1取出内置FRDemo数据库中的销量表

在单元格中输入=ds1.select(#0),数据集ds1中一共有45条数据,因此返回行号1,2,3,......45。

5. tablename.value(row,col/colname)

说明:获取数据集ds1中某行某列的值。

示例:如数据集ds1取出内置FRDemo数据库中的销量表

在单元格中输入=ds1.value(3,2),返回数据集ds1中第3行第2列的值。

在单元格中输入=ds1.value(3,"销售员"),返回数据集ds1中第3行销售员列的值。

6. 实例

6.1 实例1:数据集函数返回的数据进行扩展

直接将数据列拖拽到单元格时会自动从上到下扩展。但是使用数据集函数获得数据为一个数组,是显示在一个单元格中的,需要另外给单元格设置扩展属性,数据才会进行扩展。

6.2 实例2:根据不同条件选择使用哪个字段

在单元格中输入如下公式:

=if(条件,ds1.group(customerid),ds2.group(customerid))

并设置其扩展属性为从上到下。

说明条件为真,则单元格使用数据集ds1中的customerid列,否则使用ds2中的customerid列。

6.3 实例3:对数据集函数返回的数据再进行运算

如公式=sum(ds1.select(销量)),返回数据集ds1销量列的总和。

sum求和公式也可以换用其他如count、max等。

注:表单中暂不支持使用ds1.select(),ds1.group()等数据集函数。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多