1. 概述1.1 預(yù)期效果
如下圖所示: 1.2 實現(xiàn)思路通過設(shè)置參數(shù)聯(lián)動「鉆取地圖」和其他組件,但聯(lián)動其他圖表時,由于地圖各層級數(shù)據(jù)需要先進行匯總處理,所以圖表需要使用單元格數(shù)據(jù)源。 注:在普通報表中,無法直接在一張模板中實現(xiàn)圖表傳參給單元格,需借助網(wǎng)頁框控件,詳情可參考文檔 數(shù)據(jù)鉆取到當前模板 。 2. 示例一本示例使用內(nèi)置的「地圖」數(shù)據(jù)表進行講解,其中「省份」字段既包含了省又包含了市。若數(shù)據(jù)中的省市區(qū)分別是三個字段,請查看示例二。 2.1 準備數(shù)據(jù)1)點擊設(shè)計器左上角「文件>新建決策報表」,新建空白模板。在決策報表左下方新增數(shù)據(jù)庫查詢 ds1,SQL 查詢語句為:SELECT * FROM 地圖 。如下圖所示: 2)點擊設(shè)計器左上角「模板>模板參數(shù)」,添加一個模板參數(shù),雙擊參數(shù)名稱重命名為 province。參數(shù)是用于地圖聯(lián)動時過濾數(shù)據(jù)的。 如下圖所示: 2.2 設(shè)計鉆取地圖2.2.1 拖入鉆取地圖將「鉆取地圖」拖入決策報表 body 中,如下圖所示: 2.2.2 地圖類型編輯圖表,右側(cè)圖表屬性面板選擇「類型」,選擇「鉆取地圖>區(qū)域地圖」,地圖邊界選擇「中國」,GIS 圖層選擇「標準>遠山黛」,其余設(shè)置默認即可。如下圖所示: 2.2.3 綁定數(shù)據(jù)1)右側(cè)屬性面板選擇「數(shù)據(jù)>鉆取層級」,可設(shè)置鉆取層級屬性,詳情可參見:地圖鉆取 。這里我們就使用默認設(shè)置即可,如下圖所示: 2)選擇「數(shù)據(jù)>數(shù)據(jù)」,選擇「各層級分別指定」。這里根據(jù)讀取的地圖文件,默認有 3 個層級,我們只需要設(shè)置「第1層」和「第2層」的數(shù)據(jù)即可。詳細設(shè)置如下:
2.3 設(shè)計報表塊2.3.1 拖入報表塊拖拽一個報表塊到鉆取地圖的右邊,適當調(diào)整地圖與報表塊的尺寸比例。如下圖所示: 2.3.2 設(shè)計表格表格根據(jù)點擊的地圖省市一一對應(yīng)顯示,并用柱形圖輔助展現(xiàn)數(shù)據(jù),柱形圖數(shù)據(jù)來源于單元格。 最終樣式如下圖所示: 1)設(shè)置標題 A1 單元格插入公式:if(len($province) = 0 || $province = '中國', '全國數(shù)據(jù)', $province + '數(shù)據(jù)') 公式說明:作為表格的標題,可隨著 province 參數(shù)動態(tài)變化,且當 province 為空或等于「中國」時,標題為全國數(shù)據(jù)。 2)數(shù)據(jù)單元格內(nèi)容如下表:
3)為了與地圖產(chǎn)生聯(lián)動,A3 單元格需要添加過濾條件: 雙擊 A3 單元格,選擇「過濾」,添加過濾條件為:(列名:省份)等于 F(x):if(len($province) = 0 || $province = '中國',ds1.select(省份, len(pid) = 0),$province) 條件說明:當 province 為空或等于「中國」時,獲取 ds1 數(shù)據(jù)集中滿足「pid」為空的「省份」數(shù)據(jù),參數(shù)不為空時根據(jù)參數(shù) province 顯示數(shù)據(jù)。 如下圖所示: 4)A3 單元格設(shè)置過濾條件之后, B3 單元格無法根據(jù) A3 單元格顯示數(shù)據(jù),故設(shè)置過濾條件使其跟隨 A3 單元格顯示數(shù)據(jù)。 雙擊 B3 單元格,選擇「過濾」,添加過濾條件為:(列名:省份) 等于單元格 A3。 如下圖所示: 5)設(shè)置條件屬性 給 A3 單元格設(shè)置一個「新值」條件屬性,實現(xiàn)當參數(shù) province 為空或等于「中國」時,A3 單元格顯示為字符串「全國」。 條件屬性:新值為字符串「全國」。條件為公式= len($province) = 0 || $province = '中國' 。 步驟如下圖所示: 2.3.3 柱形圖綁定數(shù)據(jù)柱形圖的數(shù)據(jù)來源選擇「單元格數(shù)據(jù)」,分類名 =A3 ,表示點擊的省份;系列名 =[B2:E2] ,表示 B2 單元格到 E2 單元格的數(shù)據(jù);值 =[B3:E3],表示 B3 單元格到 E3 單元格的數(shù)據(jù)。詳情可參見文檔:圖表單元格數(shù)據(jù)源 。 2.4 聯(lián)動設(shè)置鉆取地圖和報表塊都已經(jīng)設(shè)置好后,如果要實現(xiàn) 聯(lián)動,則需要設(shè)置交互屬性。在鉆取地圖中設(shè)置超鏈的地方有兩處,分別是「鉆取」和「超級鏈接」。如下圖所示:
2.4.1 鉆取目錄處添加超鏈編輯地圖,右側(cè)屬性面板選擇「特效>交互屬性」,「鉆取目錄」點擊開啟,點擊「添加鏈接」按鈕,選擇「當前表單對象」,選擇表格所在報表塊 report0,添加 province 參數(shù),值選擇「區(qū)域名」。如下圖所示: 2.4.2 超級鏈接處添加超鏈在下方「超級鏈接」處添加一個一樣的超鏈,如下圖所示: 注:AREA_NAME 是圖表自帶的參數(shù),對應(yīng)區(qū)域名稱。 2.5 效果預(yù)覽2.5.1 PC 端保存模板,點擊「PC 端預(yù)覽」,效果如 1.1 節(jié)預(yù)期效果所示。 2.5.2 移動端App 端和 HTML5 端均支持,效果如下圖所示: 3. 示例二本例針對數(shù)據(jù)表中省市區(qū)分別存放在不同字段的情況。僅使用內(nèi)置數(shù)據(jù)集作簡單演示。 3.1 準備數(shù)據(jù)1)新建決策報表,新建內(nèi)置數(shù)據(jù)集,將名字修改為 ds1。示例數(shù)據(jù)如下圖所示: 2)參考示例一 2.1 節(jié),設(shè)置模板參數(shù) province 。 3.2 設(shè)計鉆取地圖3.2.1 鉆取地圖綁定數(shù)據(jù)綁定數(shù)據(jù)使用「各層級分別指定」。如下圖所示: 注:綁定第 3 層區(qū)域名為「區(qū)」后,注意下區(qū)域名是否正確匹配。詳情請參見文檔:地圖模糊匹配 。 3.2.2 設(shè)置超鏈參考 2.4 節(jié)設(shè)置超鏈即可,這里不再贅述。 3.3 設(shè)計報表塊1)表格樣式如下圖所示: 2)每個單元格的內(nèi)容、設(shè)置項及作用如下表所示:
3)雙擊 B3 單元格,設(shè)置過濾條件為:(列名:省) 等于 $province or (列名:市) 等于 $province or (列名:區(qū)) 等于 $province 。 如下圖所示: 4)設(shè)置條件屬性 B3 單元格條件屬性如下圖所示,即當 province 為空或為「中國」時,B3 單元格等于 B1 單元格的值。 同理 C3 單元格條件屬性如下圖所示,即當 province 為空或為「中國」時,C3 單元格等于 C1 單元格的值。 5)柱形圖綁定數(shù)據(jù)原理可參考 2.3.3 ,具體如下圖所示: 3.4 效果預(yù)覽保存報表,點擊「PC端預(yù)覽」,效果如下圖所示: 4. 模板下載示例一: 已完成模板可參考:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Map\Chart\地圖鉆取與聯(lián)動.frm 點擊下載模板:地圖鉆取與聯(lián)動.frm 示例二: 已完成模板可參考:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Map\Chart\地圖鉆取與聯(lián)動示例二.frm 點擊下載模板:地圖鉆取與聯(lián)動示例二.frm |
|