wuxiren123

          FineReport中樹數據集如何實現組織樹報表

          組織樹報表中由id與父id來實現組織樹報表,若層級數較多時,對每個單元格設置過濾條件和形態會比較繁瑣,因此FineReport提供了一種特殊的數據集——樹數據集,只需要簡單的設置就能自動遞歸出層級,方便的實現如下圖組織樹報表:

          圖一

          圖二


          構建樹

          • 新建報表,添加數據集

          新建工作薄,添加數據集ds1取出原始數據,SQL語句為SELECT * FROM 公司部門。

          • 定義樹數據集

          1)根據父字段構建樹

          使用情形:原始表結構中符合ID、parentID結構,我們可以通過父ID這個字段生成樹,添加樹數據集,如下圖:

           

          2)根據數據長度構建樹

          使用情形:原始表結構中所有ID都在一列中,且沒有父ID字段,但是ID是有規律的,每組的長度相同,且子級的前N位就是父級編號,添加樹數據集,如下圖:

           

           

          •  預覽數據

          預覽樹數據集,可看到已自動生成遞歸樹數據,FR_GEN_0為最高層,依次往下,如下:

          縱向組織樹編輯

          按照下圖所示將對應的數據列拖入到單元格中,并將A2單元格的左父格設置為A1,A3單元格的左父格設置為A2:

            

          • 條件屬性

          有上面預覽數據可以看到從二層FR_GEN_1開始,就會有空白數據,這是因為數據庫中存儲的數據有上一級部門本身的部門名稱和部門ID,其上一級部門的部門級數會低一級,比如說上述數據的第一行為總部,雖然總部下面有子部門,但是數據庫中還是要存儲總部這個部門的部門名稱和部門ID的,總部對應的級數為一級,那么其對應的數據記錄行里面就只有FR_GEN_0層,下面的FR_GEN_1和FR_GEN_2這兩層就會沒有數據,顯示為空白。

          在模板制作過程中,從第二層級開始就會有空白數據,需要將空白數據隱藏掉,選中A2和A3單元格,添加條件屬性,當數據為空時隱藏該行,如下圖: 

          如果組織結構的層級結構不確定,即有的層級有子層,有的層級沒有子層時,其組織樹報表的實現方式請查看不規范組織樹報表

          • 其它設置

          由于自動生成的字段是編碼,可以使用數據字典將其轉為對應的部門名稱,如下圖:

           

          • 保存與預覽

          保存模板,點擊分頁預覽,效果如圖一。

          橫向組織樹編輯

          按照下圖所示將對應的數據列拖入到單元格中,在右側單元格屬性表-擴展屬性中將B1、C1單元格的擴展方向設為橫向,

          并將B1單元格的左父格設置為A1,C1單元格的左父格設置為B1:

           

          • 條件屬性

          有上面預覽數據可以看到從二層FR_GEN_1開始,就會有空白數據,這是因為數據庫中存儲的數據有上一級部門本身的部門名稱和部門ID,其上一級部門的部門級數會低一級,比如說上述數據的第一列為總部,雖然總部下面有子部門,但是數據庫中還是要存儲總部這個部門的部門名稱和部門ID的,總部對應的級數為一級,那么其對應的數據記錄列里面就只有FR_GEN_0層,下面的FR_GEN_1和FR_GEN_2這兩層就會沒有數據,顯示為空白。

          在模板制作過程中,從第二層級開始就會有空白數據,需要將空白數據隱藏掉,選中B1和C1單元格,添加條件屬性,當數據為空時隱藏該列,如下圖:

          如果組織結構的層級結構不確定,即有的層級有子層,有的層級沒有子層時,其組織樹報表的實現方式請查看不規則組織樹報表

          • 其它設置

          由于自動生成的字段是編碼,可以使用數據字典將其轉為對應的部門名稱,如下圖:

           

          • 保存與預覽

          保存模板,點擊分頁預覽,效果如圖二。

          posted on 2017-04-06 15:56 喝水居然長肉 閱讀(130) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 饶阳县| 德清县| 明溪县| 西和县| 灵寿县| 泌阳县| 繁峙县| 黎川县| 云安县| 策勒县| 义马市| 思南县| 离岛区| 平山县| 肥乡县| 澎湖县| 克拉玛依市| 夏津县| 浠水县| 普定县| 广安市| 清丰县| 黎城县| 裕民县| 辉县市| 辽中县| 鄯善县| 玛曲县| 泉州市| 石泉县| 绥滨县| 东乡| 平江县| 无极县| 新化县| 金川县| 万山特区| 兴隆县| 通河县| 扶余县| 鄄城县|