1. 程式人生 > >web報表工具FineReport常用函式的用法總結(報表函式)

web報表工具FineReport常用函式的用法總結(報表函式)

說明:本次總結中,凡是以tableName或viewName作為引數因子的。函式在呼叫的時候均按照先從私有資料來源中查詢,然後再從公有資料來源中查詢的順序。

CLASS

CLASS(object):返回object物件的所屬的類。

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")等於叄億肆仟伍佰陸拾柒萬圓整。

COL

COL()返回當前單元格的列號。

示例:

如果當前單元格是A5,在A5中寫入"=col()"則返回1。

如果當前單元格是C6,在C6中寫入"=col()"則返回3。

COLCOUNT

COLCOUNT(tableData):返回tableData中列的個數。

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

備註:

先從私有資料來源中查詢,然後再從公有資料來源中查詢,返回的是第一個查詢到的tableData中列數。

示例:

以我們提供的資料來源FRDemo為例

COLCOUNT("Check")等於6。

COLCOUNT("country")等於5。

COLNAME

COLNAME(tableData,colIndex)返回的是tableData中列序號colIndex的列名。

tableData:表示TableData的名字,字串形式。

colIndex:表示列序號。

備註:

TableData先從私有資料來源中查詢,再從公有資料來源中查詢。

示例:

COLNAME("Check",3)等於AcceName。

COLNAME("country",4)等於Area。

EVAL

EVAL(exp):返回表示式exp計算後的結果。

exp:一個表示式形式字串。

備註:

只要EVAL中的引數exp最終可以轉化成一表達式形式的字串,比如"sum(2,4)","2+7"等等,那麼它就可以被計算。

示例:

EVAL("2+5")等於7。

EVAL("count(2,3)")等於2。

EVAL("sum"+"(2,3,5)")等於10。

EVAL(IF(true,"sum", "count") + "(1,2,3,4)")等於10。

EVAL(IF(false,"sum", "count") + "(1,2,3,4)")等於4。

FIELDS

FIELDS(connectionName,tableName):返回tableName這個表中的所有欄位名。

示例:

資料庫BASE中有個名叫task的表的內容如下:

namestart end

a2008 2009

b2009 2012

那麼FIELDS("BASE","task")等於[name,start,end].

FORMAT

FORMAT(object,format):返回object的format格式。

object:需要被格式化物件,可以是String,數字,Object(常用的有Date, Time)。

format:格式化的樣式。

備註:

此處的格式中大小寫必須嚴格按照上面例子中的規則,月份:大寫MM,年份小寫:yyyy或yy,天份:小寫dd.

此處作為引數因子的格式可以用' '也可以用" "引用。

示例:

Format(TODAY(),'yyyy-MM-dd')結果是2008-11-01

INMAP

INMAP(key,value, mapName):判斷資料字典mapName中是否包含鍵值為key,值為value的資料對。返回值為布林型。有返回TRUE,沒有返回FALSE。

key:檢測的key。

value:檢測的value。

mapName:指定的資料字典名。

備註:

mapName必須為String型的。

示例:

INMAP(1,2, "customerdic")返回 Boolean.TRUE(布林型的)。

ISNULL

ISNULL(object):判斷物件中所有的值是否全部都是Primitive.NULL。

MAP

MAP(key,mapName):返回名字為mapName的資料字典中的key所對應的值。

key:與返回值相應的資料字典中的key。

mapName:指定的資料字典名,注意資料字典名要加引號

示例:

MAP(1,"customername")等於"Yixing HongdaFood Co."。

RECORDS

RECORDS(connection,table,field):返回資料庫表table中欄位名field下的所有元素。

示例:

資料庫BASE中有個名叫task的表的內容如下:

namestart end

a2008 2009

b2009 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.

REVERSE

REVERSE(value):返回與value相反的邏輯值。

示例:

REVERSE(true)等於false。

ROW

ROW()返回當前單元格的行號

示例:

如果當前單元格為A5,在A5中寫入"=ROW()"則返回5。

如果當前單元格為B8,在B8中寫入"=ROW()"則返回8。

ROWCOUNT

ROWCOUNT(tableData)返回tableData的行數。

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

備註:

先從私有資料來源中查詢,然後再從公有資料來源中查詢,返回的是tableData的行數。

示例:

以我們提供的資料來源FRDemo為例

ROWCOUNT("Check")等於3。

ROWCOUNT("country")等於18。

TABLEDATAFIELDS

TABLEDATAFIELDS(tableData):返回tableData中所有的欄位名。

備註:

先從報表資料集中查詢,然後再從伺服器資料集中查詢,返回的是tableData的列名組成的陣列。

示例:

TABLEDATAFIELDS("國家")等於[名字,首都,大陸,面積,人口

TABLEDATES

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].

TABLES

TABLEAS(connectionName):返回名為connectionName的資料庫中的所有表名。

示例:

假設在FRDemo這個資料庫中,有3個表:a,b,c;

那麼TABLES("FRDemo")等於[a,b,c].

VALUE

VALUE(tableData,row,col)返回tableData中行號為row,列號為col的值。

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

row:行號。

col:列號。

備註:

先從私有資料來源中查詢,然後再從公有資料來源中查詢,返回的是tableData的符合條件的值。

示例:

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

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