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。