反馈已提交

网络繁忙

报表函数概述

  • 文档创建者:lu123
  • 历史版本:25
  • 最近更新:Alicehyy 于 2024-05-16
  • 注:报表函数不支持在远程设计情况下模拟计算

    1. COL-当前单元格的列号

    1)概述

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

    2)示

    公式
    结果
    col()

    如果当前单元格是 A5,在 A5 中写入:=col()返回 1。

    如果当前单元格是 C6,在 C6 中写入:=col()返回 3。

    3)视频教程COL 函数

    2. COLCOUNT

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

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

    示例:

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

    新建数据集 ds1:SELECT * FROM CUSTOMER

    COLCOUNT("ds1")等于 6。

    视频教程:COLCOUNT 函数

    3. COLNAME

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

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

    示例:

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

    新建数据集 ds1:SELECT * FROM CUSTOMER

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

    视频教程:COLNAME 函数

    4. FIELDS-返回数据表的所有字段名

    1)概述

    语法FIELDS(connectionName,tableName)返回 tableName 这个表中的所有字段名
    参数1connectionName

    数据连接名称

    参数2tableName

    数据表名称

    返回值String返回 tableName 这个表中的所有字段名。

    2)注意事项

    对于 Mysql 数据库,如果数据库表名即 tableName 为纯数字,需要为 tableName 参数前后添加符号。

    例如需要对 FineReport 中已经定义的数据源「mysql」显示该数据源中数据表「11」的所有字段名,则使用公式:

    FIELDS("mysql","`11`")

    3)示例

    公式结果备注
    FIELDS("FRDemo","CUSTOMER")CUSTOMERID,CUSTOMERNAME,CITY,COUNTRY,TEL,DISTRICT以 FineReport 内置数据源 FRDemo 下的 CUSTOMER 数据表为例
    FIELDS("mysql","`11`")aa,bb,cc对于 Mysql 数据库,如果数据库表名即 tableName 为纯数字,需要为 tableName 参数前后添加符号

    5. 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 列的值。

    视频教程:MAP 函数

    6. RECORDS-返回数据表字段下指定元素

    1)概述

    用法一:

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

    数据连接名称

    参数2table

    数据表名称

    参数3field字段名
    返回值String返回数据库表 table 中字段名 field 下的所有元素。

    用法二:

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

    数据连接名称

    参数2table

    数据表名称

    参数3field字段名
    参数4row字段对应的行数
    返回值String返回数据库表 table 中字段名 field 下的第 row 行的记录。

    2)注意事项

    对于 Mysql 数据库,如果数据库表名即 table 为纯数字,需要为 table 参数前后添加符号。

    例如 FineReport 中已经定义的数据源「mysql」有一张名为「11」的数据表

    aa
    bbcc
    0.32277
    0.5551

    则使用公式:

    公式结果备注
    RECORDS("mysql","`11`","aa")
    0.3,0.5-
    RECORDS("mysql","`11`","aa",2)
    0.5-

    3)示例

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

    name    start  end
      a  2008  2009
      b  2009  2012


    公式结果备注
    RECORDS("BASE","task","end") 2009,2012-
    RECORDS("BASE","task","end",2)2012-
    RECORDS("BASE","task",2,2)2009-

    7. SQL

    1)概述

    语法SQL(connectionName,sql,columnIndex,rowIndex)返回通过 sql 语句从 connectionName 中获得数据表的第 columnIndex 列第 rowIndex 行所对应的元素。
    参数1connectionName

    数据库库的名字,字符串形式;

    参数2sqlSQL语句,字符串形式;
    参数3columnIndex列序号,整型;
    参数4rowIndex行序号,整型。

    2)注意事项

    行序号可以不写,这样返回值为数据列。

    3)示例

    公式结果备注

    SQL("HSQL","SELECT*FROM CUSTOMER",2,2)

    注:以数据源 HSQL 为例。

    王先生-

    4)视频教程SQL函数

    8. I18N

    1)概述

    i18n为本软件内置的国际化公式,可以对一些常用的词语进行国际化。

    2)示例

    公式结果备注

    i18n('File')

    会在中文语言环境下显示为:文件;

    而在英文语言环境下显示为:File

    -

    9. ROW

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

    示例:

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

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

    具体示例:隔行/列设置背景色

    视频教程:ROW 函数

    10. ROWCOUNT-返回TableData的行数

    ROWCOUNT(tableData):返回 TableData 的行数。

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

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

    示例:

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

    新建数据集 ds1:SELECT * FROM CUSTOMER

    ROWCOUNT("ds1")等于 20。

    视频教程:ROWCOUNT 函数

    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 的值大于数组长度时,会取数组的最后一个值。

    视频教程:VALUE 函数

    15. DECODE——字符串解码

    1)概述

    语法decode(string)使用指定的编码机制(UTF-8)对 application/x-www-form-urlencoded 字符串解码。
    参数string

    -

    返回值String-

    2)注意事项

    给定的编码用于确定任何 “%xy”格式的连续序列表示的字符。

    3)示例

    公式结果备注
    decode("%E5%B8%86%E8%BD%AF")帆软-

    16. ENCODE——字符串编码

    1)概述

    语法encode(string)使用指定的编码机制(UTF-8)将字符串转换为application/x-www-form-urlencoded格式。
    参数string

    -

    返回值String-

    2)注意事项

    该方法使用提供的编码机制获取不安全字符的字节。

    3)示例

    公式结果备注
    encode("帆软")“%E5%B8%86%E8%BD%AF”-

    17. 注意事项

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

    附件列表


    主题: 报表专题
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持