历史版本11 :报表函数概述 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

本章节,凡是以 tableName 或 viewName 作为参数因子的。函数在调用的时候均按照先从私有数据源中查找,然后再从公有数据源中查找的顺序。

目录:

1. CNMONEY编辑

CNMONEY(number,unit)返回人民币大写。

number:需要转换的数值型的数。 unit:单位,"s","b","q","w","sw","bw","qw","y","sy","by","qy","wy"分别代表“拾”,“佰”,“仟”,“万”,“拾万”,“佰万”,“仟万”,“亿”,“拾亿”,“佰亿”,“仟亿”,“万亿”。

注: 单位可以为空,如果为空,则直接将 number 转换为人民币大写,否则先将 number 与单位的进制相乘,然后再将相乘的结果转换为人民币大写。

示例:

CNMONEY(1200)等于壹仟贰佰圆整。

CNMONEY(12.5,"w")等于壹拾贰万伍仟圆整。

CNMONEY(56.3478,"bw")等于伍仟陆佰叁拾肆万柒仟捌佰圆整。

CNMONEY(3.4567,"y")等于叁亿肆仟伍佰陆拾柒万圆整。

2. COL编辑

COL()返回当前单元格的列号。

示例:

如果当前单元格是 A5,在 A5 中写入:

=col()返回 1。

如果当前单元格是 C6,在 C6 中写入:

=col()返回 3。

3. COLCOUNT编辑

COLCOUNT(tableData):返回 tableData 中列的个数。 tableData:tableData 的名字,字符串形式的。

注: 先从私有数据源中查找,然后再从公有数据源中查找,返回的是第一个查找到的 tableData 中列数。

示例:

以我们提供的数据源 FRDemo 为例:

新建数据集 ds1:SELECT * FROM CUSTOMER

COLCOUNT("ds1")等于 6。

4. COLNAME编辑

COLNAME(tableData,colIndex)返回的是 TableData 中列序号 colIndex 的列名。 tableData:表示 TableData的名字,字符串形式。 colIndex:表示列序号。

注: TableData 先从私有数据源中查找,再从公有数据源中查找。

示例:

以我们提供的数据源 FRDemo 为例:

新建数据集 ds1:SELECT * FROM CUSTOMER

COLNAME("ds1",3)等于 CITY。

5. FIELDS编辑

FIELDS(connectionName,tableName):返回 tableName 这个表中的所有字段名。

示例:

以我们提供的数据源 FRDemo 为例:

FIELDS("FRDemo","CUSTOMER")等于 CUSTOMERID,CUSTOMERNAME,CITY,COUNTRY,TEL,DISTRICT

6. MAP编辑

MAP(object, string, int, int):四个参数分别是索引值,数据集的名字,索引值所在列序号,返回值所在列序号。

提醒:后两个参数也可以写列名代替。

根据数据集的名字,找到对应的数据集,找到其中索引列的值为key所对应的返回值。

数据集的查找方式是依次从报表数据集找到服务器数据集。

索引列序号与返回值序列号的初始值为1

示例:

MAP(1001, "employee", 1, 2)返回 employee 数据集,第 1 列中值为 1001 那条记录中第 2 列的值。

MAP(1001, "employee", "name", "address")返回 employee 数据集,name 列中值为 1001 那条记录中 address 列的值。

7. RECORDS编辑

RECORDS(connection, table,field):返回数据库表 table 中字段名 field 下的所有元素。

示例:

数据库 BASE 中有个名叫 task 的表的内容如下:

name    start  end
  a  2008  2009
  b  2009  2012

那么 RECORDS("BASE","task","end")等于[2009,2012].

RECORDS(connection, table,field,row)返回 table 中 field 字段下的第 row 行的记录,field 可以为列名也可以为列号。

RECORDS("BASE","task","end",2)等于 2012.

RECORDS("BASE","task",2,2)等于 2009.

8. REVERSE编辑

REVERSE(value):返回与 value 相反的逻辑值。

示例:

REVERSE(true)等于 false。

9. ROW编辑

ROW()返回当前单元格的行号。 

示例:

如果当前单元格为 A5,在 A5 中写入"=ROW()"则返回 5。 

如果当前单元格为 B8,在 B8 中写入"=ROW()"则返回 8。 

具体示例:见 条件属性 专题章节中,条件属性中的 Row()函数的内容。

10. ROWCOUNT编辑

ROWCOUNT(tableData)返回 TableData 的行数。

tableData:TableData 的名字,字符串形式的。

备注:

    先从私有数据源中查找,然后再从公有数据源中查找,返回的是 TableData 的行数

示例:

以我们提供的数据源 FRDemo 为例

新建数据集 ds1:SELECT * FROM CUSTOMER

ROWCOUNT("ds1")等于 20。

11. TABLEDATAFIELDS编辑

TABLEDATAFIELDS(tableData):返回tableData中所有的字段名。

注: 先从报表数据集中查找,然后再从服务器数据集中查找,返回的是 TableData 的列名组成的数组。

示例:

以我们提供的数据源 FRDemo 为例

新建数据集 ds1:SELECT * FROM CUSTOMER

TABLEDATAFIELDS("ds1")等于 CUSTOMERID,CUSTOMERAME,CITY,COUNTRY,TEL,DISTRICT。

12. TABLEDATAS编辑

TABLEDATAS():返回报表数据集和服务器数据集名字。

示例:

服务器数据集有:ds1,ds2,ds3;报表数据集有 dsr1,dsr2,则:

TABLEDATAS()等于[dsr1,dsr2,ds1,ds2,ds3]。

而 TABLEDATAS(0)返回服务器数据集名字;TABLEDATAS(1)返回报表数据集名字;

TABLEDATAS(0)等于[ds1,ds2,ds3]。

TABLEDATAS(1)等于[dsr1,dsr2]。

13. TABLES编辑

TABLES(connectionName):返回名为 connectionName 的数据库中的所有表名。

示例:

假设在 FRDemo 这个数据库中,有 3 个表:a,b,c,则:

TABLES("FRDemo")等于[a,b,c]。

14. VALUE编辑

VALUE(tableData,col,row)返回 TableData 中行号为 row,列号为 col 的值。 TableData:TableData 的名字,字符串形式的。 row:行号。 col:列号。

注: 先从私有数据源中查找,然后再从公有数据源中查找,返回的是 TableData 的符合条件的值。

示例:

VALUE("country",5,3)等于 South America。

VALUE("Simple",8,3)等于 jonnason。

VALUE(tableData,col)返回 tableData 中列号为 col 的一列值。

VALUE(tableData,targetCol, orgCol, element)返回 tableData 中第 targetCol 列中的元素,这些元素对应的第 orgCol 列的值为 element。

示例:

tableData : co

  国家   省份
  中国  江苏
  中国  浙江
  中国  北京
  美国  纽约
  美国  新泽西

VALUE("co",2, 1, "中国")等于["江苏", "浙江", "北京"]。

注:列号也可以写为列名。

VALUE(tableData,targetCol, orgCol, element, idx)返回VALUE(tableData,targetCol, orgCol, element)数组的第idx个值。

注:idx 的值小于 0 时,会取数组的第一个值,idx 的值大于数组长度时,会取数组的最后一个值。