反饋已提交
網絡繁忙
將資料集中的資料欄直接拖曳到儲存格中使用時,如果想要「條件顯示」某些資料欄的值,那麼可以使用資料集函式。
1)參數面板中不支援使用。
2)不支援模擬計算,模擬計算詳情參見:2.4節。
3)決策報表填報事件不支援使用資料集函式。
1)概述
篩選出資料集某列中符合條件的資料,傳回結果是一個陣列,相同資料不會合併
注:當僅傳回一筆資料時,資料型別是「字串」而不是陣列。
表示資料集名稱,注意是「報表資料集」或者是「伺服器資料集」名,而非資料庫中的表名
注:資料集名稱盡量使用純中文/純英文,不要使用數字或特殊符号,否則函式可能失效。。
表示列名,不區分大小寫
注:若欄名爲中英數字混合,建議加上引号,确保正确讀取。例如ds1.select("1月產品名稱")。
2)注意事項
篩選條件中的判斷既可以使用單等號,也可以使用雙等號;
字串也同時可以使用單引號或者是雙引號,對結果均沒有影響;
tablename.select() 與 sql() 的差別主要在於 tablename.select() 是從資料集取數,sql() 是從資料庫取數,不需要先定義一個資料集。詳情參見 SQL 函式
在公式中,以 0 開頭的字串在匹配判斷時,例如:ds1.select(colname,ID="003") 結果會傳回對應 ID 為 0、03、003…… 的結果。若只希望傳回 003 ,可以使用 EXACT 來做匹配判斷。例如:ds1.select(colname,exact(ID,"003"))
如果想要進行模糊查詢,可透過與 Find 函式 巢實現,例如公式:ds1.select(產品名稱,FIND("蘋果",產品名稱)!=0),如下圖所示:
3)範例
例如資料集 ds1 取出內建 FRDemo 資料庫中的「S產品」表,分別在儲存格中輸入以下公式:
傳回資料集 ds1 產品名稱列中的所有產品名稱。
傳回資料集 ds1 庫存量大於 20 且訂購量大於 30 的產品。
傳回資料集 ds1 供應商為1或者庫存量大於 30 的產品。
為布爾值,true 表示升冪,false 表示降冪。
注:若使用升降冪參數,那麼必須寫篩選條件參數,若沒有篩選條件,可以用 true 或者空格代替:例如=ds1.group(銷售員,true,false)或者=ds1.group(銷售員, ,false)
2)範例
如資料集 ds1 取出內建 FRDemo 資料庫中的「銷量」表:
傳回資料集 ds1 華東地區銷售總額超過 200 的銷售員,並且相鄰資料若相同會進行合併。
傳回資料集 ds1 銷售員列中的值,並且其中只要資料相同就會進行合併,結果為降冪排列,中間的參數為過濾條件,若沒有條件,可以用空替代或者使用 true 。
傳回資料集 ds1 華東地區的銷售員,並且相鄰資料若相同會進行合併。
表示列號。
如果tablename.select(#0)則匯出資料表行號陣列(資料條數)
tablename.select(#1)則匯出資料庫表中第一欄的陣列資料
填報場景下 ds1.select(#0) 這個公式如果聯動計算有異常,需要檢查父子格關系。例如出現下圖所示的計算結果時:
remoteEvaluate(String) 方法不支援 tablename.select 函式。
例如資料集 ds1 取出內建 FRDemo 資料庫中的「銷量」表:
傳回資料集中的行號
傳回資料集中對應列資料
表示行號
報表的圖表標題不支援該函式。
決策報表裏的圖表塊不支援該函式。
JavaScript 中不支援該函式。
在儲存格中輸入如下公式:
=if(條件,ds1.group(customerid),ds2.group(customerid))
並設定其擴展屬性為從上到下。
公式說明:
條件為真,儲存格使用資料集 ds1 中的 customerid 列,否則使用 ds2 中的 customerid 列 。
在儲存格輸入公式=sum(ds1.select(銷量)),傳回資料集 ds1 銷量列的總和。
sum 求和公式也可以換用其他如 count、max 等。
直接將資料列拖曳到儲存格時會自動從上到下擴展。但是使用資料集函式獲得資料為一個陣列,是顯示在一個儲存格中的,需要另外給儲存格設定擴展屬性,資料才會進行擴展。
例如在儲存格輸入公式=ds1.group(銷售員,地區=="華東",true),設定擴展房方向為「縱向」,如下圖所示:
預覽報表如下圖所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙