反饋已提交
網絡繁忙
報表伺服器版本
功能變動
11.0.2
新增:開放官方介面 chart.getLayerIndex() 、chart.getLayerNames()
使用鑽取地圖時,希望地圖展示全國區域時不顯示明細資料,下鑽到第二層級省市時展示下鑽區域各市的明細資料。預期效果如下圖所示:
通過圖表「特效>超連結」中的 JavaScript 進行傳參。用到的鑽取地圖介面如下:
chart.getLayerIndex() // 獲取鑽取地圖當前鑽取層級,獲取的層級從0開始:0、1、2 ……
chart.getLayerNames() // 獲取鑽取地圖當前鑽取層級名稱,返回結果為陣列,例如:["中國", "湖南省", "長沙市"]
注:FVS API可參考文檔 FVS圖表API 。本文範例效果在 FVS 中,可直接使用組件聯動事件實現,可參考文檔 地圖鑽取與聯動。
點擊設計器左上角「檔案>新建決策報表」,新建空白範本。
新建資料集 ds1,SQL 查詢語句為:SELECT * FROM 地圖1。如下圖所示:
將 body 的佈局方式設定為「絕對佈局」,將鑽取地圖和報表塊分別拖入 body 並調整位置和大小。如下圖所示:
1)按兩下鑽取地圖,進入編輯狀態,選擇區域地圖,設定地圖邊界和 GIS圖層。如下圖所示:
2)地圖資料選擇「各層級分別指定」,第 1 層綁定 ds1 的 pid 欄位,即省份數據,第 2 層綁定 ds1 的省份欄位,即區市數據。如下圖所示:
1)按兩下報表塊進入編輯介面,設計表格樣式如下圖所示:
2)按兩下 A2 儲存格,添加過濾條件,條件為 pid 欄位等於參數 $province,province 需手動輸入。這裡設定過濾是為了實現參數篩選效果,$province 的值由地圖傳參得來。
3)給 A1 和 A2 儲存格設定條件屬性,若 A2 值為空,則行高為 0,可實現沒有傳參時表格隱藏的效果。
同時選中 A1 和 A2 儲存格,點擊右側屬性面板「條件屬性>新增條件」,設定滿足公式條件 len(A2)=0 時,行高為 0。如下圖所示:
設定完成後,點擊左下角「表單」返回 body 介面。
按兩下鑽取地圖,點擊屬性面板「特效>交互屬性」。在鑽取地圖中設定超連結的地方有兩處,分別是「鑽取」和「超連結」。
鑽取:針對鑽取地圖左上角的「鑽取目錄」設定超連結,點擊目錄時即可聯動;若不設定,則點擊目錄無聯動效果。
超連結:針對地圖區域設定超連結,點擊地圖區域時即可聯動。
在「鑽取」處添加一個 JavaScript 超連結,輸入 JavaScript 代碼如下:
var chart = FR.Chart.WebUtils.getChart("chart0").getChartWithIndex(0);var layer = chart.getLayerIndex(); //獲取鑽取層級//如果當前鑽取層級是第一層,那麼將空參數province傳給報表塊if (layer == 0) { var province = null; _g().getWidgetByName("report0").gotoPage(1, "{province:" + province + "}", true);}
這裡的代碼設定可實現點擊鑽取目錄「中國」返回第一層時,報表塊接收參數為空,表格可隱藏。
步驟如下圖所示:
在下方「超連結」處同樣添加一個 JavaScript 超連結,輸入 JavaScript 代碼如下:
var chart = FR.Chart.WebUtils.getChart("chart0").getChartWithIndex(0);var names = chart.getLayerNames(); //獲取鑽取目錄層級名var layer = chart.getLayerIndex(); //獲取鑽取層級//如果當前鑽取層級是第二層,那麼將參數province傳給報表塊if (layer==1){ var province = names[layer]; _g().getWidgetByName("report0").gotoPage(1,"{province:'"+province+"'}",true); }
這裡的代碼設定可實現點擊點擊區域下鑽到第二層時,報表塊接收參數為對應區域的省份名稱,則表格可顯示對應省份。
如下圖所示:
保存報表,點擊「PC端預覽」,效果如 1.2 節預期效果所示。
注1:gotoPage 傳參不支援普通報表。
注2:介面不支援行動端。
點擊下載範本:判斷鑽取地圖層級控制參數傳遞.frm
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙