如何透過JS呼叫某段SQL語句,這樣的需求在報表、資料平台開發中很常見。以報表平台FineReport開發為例,例如在點擊某個按鈕之後,來判斷資料庫條數,再決定下一步操作。那這在後台如何實現呢?
解決思路
實現這個功能,首先需要了解Finereport內建的公式,SQL函數,這個肯能大家都懂,就不做介紹了。
呼叫FineRepor的內建公式:FR.remoteEvaluate("具體公式"),傳回值為:這個具體公式的結果。
例如:
var a = FR.remoteEvaluate("sum(1+2)");
這時變數a的值就是3了。
這裡要注意的是,由於在SQL函數中,需要多次用到雙引號("),所以大家要注意用反斜線()進行轉義:
var sql = "SQL("FRDemo" ,"Select count(*) fromsales_basic",1,1)"
或為了降低轉義帶來的複雜度,可以寫成如下格式:var sql="select count(*) from sales_basic"; varres=FR. remoteEvaluate('sql("FRDemo","'+sql+'",1,1)');
在參數面板上新增一個按鈕,在按鈕的點擊事件中寫如下SQL:
var sql ="SQL(\"FRDemo\",\"Select count(*) fromsales_basic\",1,1)" alert(sql); var Count = FR.remoteEvaluate(sql); alert(Count);
分頁預覽
分頁預覽分模板,點選按鈕,效果如下: