統計圖表FineReport之SQL函數
有的時候希望某個單元格能夠直接獲取到數據庫中的某個值,而不是先要定義一個數據集后,再去取數據。這時就可以用函數Sql()公式,下面講解下其用法。
1. 公式解釋
SQL(connectionName,sql,columnIndex,rowIndex):返回的數據是從connectionName數據庫中獲取的sql語句的表中的第columnIndex列第rowIndex行所對應的元素。
connectionName:數據庫名,字符串形式,需要用引號如"FRDemo";
sql:SQL語句,字符串形式;
columnIndex:列序號,整型;
rowIndex:行序號,整型。
備注:行序號可以不寫,這樣返回值為數據列。
2. 以我們提供的數據源FRDemo為例
2.1 示例(就一般的只獲取某個字段內容)
從表 STSCORE中,我們可看到第3行第3列的值為Alex,如下:
現在若要直接在報表的單元格中顯示數據值:Alex,而不通過先定義一個數據集后,再去取數據的方式,這里就可以使用sql()公式,此時只需在單元格中輸入:=sql("FRDemo","SELECT * FROM STSCORE",3,3)即可,預覽就可看到Alex值。
2.2 示例(帶有參數時公式的使用)
帶有參數形式的時候,直接在報表的單元格中獲取數據值,寫法如下:
=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = 'Class1' ",3)
顯示效果(班級為Class1的第3列所有值),如下:
若需要顯示某個具體值,如:顯示 Jonny 的效果(即班級為Class1的第3列第4行的值),寫法如下:
=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = 'Class1' ",3,4)
若參數值為變量如為報表參數或者是某個單元格,則寫法如下:
=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '"+$class+"' ",3,4)
或
=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '"+A1+"' ",3,4)
如果傳遞的參數是獲取當前單元格的值,即用$$$作為參數時,字符串類型同樣需要拼接單引號,如下:
=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '"+$$$+"' ",3,4)
注:如果參數或者單元格值有多個,那么sql函數的寫法如下:
=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO in ('"+$class+"') ",3,4)
并且class參數返回值的分隔符需為',',具體請查看下拉復選框參數聯動。
了解Java報表工具就從這里開始
posted on 2015-05-11 17:17
season 閱讀(323)
評論(0) 編輯 收藏 所屬分類:
Java報表—技術知識 、
Java報表—問題解析