反饋已提交
網絡繁忙
事物之間存在分支層次關系時,一般可用折疊或縮排形式的組織樹展現。
在資料表結構中,這種分支層次關系一般透過類似 ID 與 parentID 兩個欄位表示,下圖為表結構關系及其實現的組織樹效果,組織的每個物件都由第一欄唯一表示,每個物件之間的關系(上層物件)都是由第二列表示(值為第一欄中中存在的值)。如下圖所示。
建立普通報表,新增資料集 ds1,SQL 語句為:【SELECT * FROM 公司部門】,如下圖所示。
透過分析資料集中的資料可以看出,該組織結構包含 3 層,因此我們需要將這三層分別取出來。由於【部門 ID】列可以唯一表示一個部門,並且部門之間的層次關系也是透過【部門 ID】列的值表示的,所以設計表格如下:
範本有三個儲存格組織,每個儲存格擴展代表一個層次;
儲存格均拖入資料集中的【部門 ID】欄,再設定不同的過濾條件。
最終表格效果如下。
儲存格 A1 代表第一層部門,比如“總部”。但預設擴展出所有部門 ID,需要透過過濾條件篩選出第一層部門。
由資料可以看出,第一層【上級 ID】 為空,因此雙擊 A1 儲存格,選擇【過濾】,新增條件:【“上級 ID” 等於 'NULL'】,如下圖所示。
儲存格 A2 代表第二層部門,比如“人力資源部”、“市場部”等。
選擇 A2 儲存格,選擇【儲存格屬性】→【擴展】,設定 A2 的左父格為 A1,上父格為預設,縱向擴展,使得該級部門 ID 能夠跟隨上級部門 ID 自動擴展,如下圖1所示。
雙擊 A2 儲存格,點選過濾,新增條件:【“上級 ID”等於'A1'】,取消勾選【將父格子作為過濾條件】,由於設定了父格,A1、A2 中資料列又來自於同一資料集,此時子格預設會將父格作為過濾條件,即會篩選出 【部門 ID =父格 ID 】的資料,導緻沒有符合條件的資料。因此需要在 A2 儲存格過濾時,取消勾選。如下圖2所示。
第三層的原理與第二層相同,具體設定如下:
選擇 A3 儲存格,選擇【儲存格屬性】→【擴展】,設定 A3 的左父格為 A2,上父格為預設,縱向擴展,如下圖1所示。
雙擊 A3 儲存格,點選【過濾】,新增條件【“上級 ID”等於'A2' and “上級 ID”不等於' NULL '】,取消勾選【將父格子作為過濾條件】,如下圖2所示。
注1:樹節點展開時,有多個根節點且根節點下沒有子節點,會有一層置空,需要在過濾條件中加上類似 parentID 不等於 NULL 的條件。
注2:若資料中組織層數不止三層,可以按照相同的方法新增。
範本中使用的是部門 ID,要顯示為相應的部門名稱,分別選擇 A1、A2、A3 儲存格,選擇【儲存格屬性】→【形態】→【資料字典】,型別設定為【資料查詢】,資料集為【ds1】,實際值和顯示值分別為【部門ID】和【部門名稱】,如下圖所示。
若某一層中有些有子層,有些沒有子層,此時由於擴展會出現一些空白行,可以將空白行設定條件屬性進行隱藏,詳情可參見:隱藏列欄。
PC 端:儲存報表,點選【分頁預覽】,效果如下圖1所示;
行動端:App 與 HTML5 端效果相同,如下圖2所示。
已完成範本可參見:【%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Advanced\GroupReport\組織樹報表.cpt】。
點選下載範本:組織樹報表.cpt。
樹資料集實現組織樹報表
樹資料集,只需要簡單的設定就能自動遞迴出層級,方便實現組織樹報表。
不規範組織樹報表
不規範的組織結構:有的層級結構下面有子層,有的層級結構下面沒有子層,即層級結構不確定。
組織樹傳參
左側顯示樹狀圖,右邊顯示樹中某一節點的詳細資訊。當點選左側組織樹的時候,右邊表格隨之自動變換。
折疊樹
展示樹狀層級資料時,可以透過點選按鈕的方式來展開或收起每層的資料。
雙向折疊樹
資料表可以根據橫向和縱向的表頭分別實現展開或折疊到任何資料詳細資訊,以方便動態查看。
JS實現一鍵展開/收起折疊樹所有節點
實現一鍵全部展開或收起折疊樹。
JS實現自訂折疊樹節點展開層數
當組織樹層級不確定時候,能在初始化時候根據需求展開一定層級的樹節點。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙