報表開發軟件中如何製作不規範組織樹報表?

在實際應用中,組織樹報表除了使用到的比較規範的組織結構,即,除了最後一層,所有其他層的結構都是子層,還有很多組織結構並不是這麼的規範,有的層級結構下面沒有子層,有的層級結構下面則有子層,即層級結構不確定,下面就通過報表開發軟件FineReport來介紹一下。

工具/原料

報表開發軟件FineReport

大小:148.2M 適用平臺:windows/linux

方法/步驟

數據準備

新建內置數據集ds1:,如下圖:

注:內置數據集中第二層級結構中有一個結構沒有子層,其他的結構有子層。

報表開發軟件中如何製作不規範組織樹報表

模板製作

由於上面準備數據是不規範的組織結構,我們按照組織樹報表中的方法來實現組織樹,即不使用樹數據集,模板效果如下圖:

報表開發軟件中如何製作不規範組織樹報表

單元格設置如下表:

報表開發軟件中如何製作不規範組織樹報表

在添加過濾條件時,需要去掉將父格子作為過濾條件前面的勾選,如下圖A2單元格的過濾條件:

報表開發軟件中如何製作不規範組織樹報表

效果查看

此時保存模板,可以看到如下圖效果,沒有子層的層級結構並沒有合併單元格,其子層單元格還在,但是沒有數據顯示:

報表開發軟件中如何製作不規範組織樹報表

合併單元格

從效果圖上可以看到沒有下層的層級結構應該合併單元格顯示,即未歸集舊數據應該合併單元格至最下層。

由於FineReport不支持自動合併單元格,只能手動合併,未歸集舊數據所在層級為第二層,第二層數據所在單元格為第二行,最後一層在第三行,所以合併A2後面的單元格至第三行,即合併B2和B3單元格,A1單元格是第一層數據,故需要將其顯示在所有數據上面,需要合併A1和B1單元格。

回到模板設計界面,按照上述描述再操作模板,拖曳id列至B2單元格中,設置擴展為橫向擴展,其父格為A2,使數據擴展時,每個第二層級數據後面都跟了一個合併的單元格 ,且顯示對應層級數據,並設置其形態為:實際值為ds1的name字段,結果如下圖:

報表開發軟件中如何製作不規範組織樹報表

此時,點擊分頁預覽,效果如下圖:

報表開發軟件中如何製作不規範組織樹報表

過濾條件

為剛剛合併的B2單元格添加過濾條件,B2單元格只顯示沒有子層的第二層結構數據,即只顯示A3單元格為空的數據,添加過濾條件len(A3)==0,如下圖:

報表開發軟件中如何製作不規範組織樹報表

此時,再次預覽模板,如下圖,有子層的層級數據後面都有一個合併的單元格,因為其對應的A3單元格不為空,故沒有數據過濾過來,顯示為空:

報表開發軟件中如何製作不規範組織樹報表

條件屬性

上面效果圖中,沒有子層的層級數據的子層顯示為空白,有子層結構的層級數據後面的合併單元格顯示為空白,通過條件屬性,將空白列隱藏,如下圖,同時選中A2、A3和B2單元格,為其添加條件屬性:

報表開發軟件中如何製作不規範組織樹報表

其他設置

按照效果圖中設置單元格樣式,並將untils數據列拖曳至第4行單元格中,如下圖:

報表開發軟件中如何製作不規範組織樹報表

如果組織結構有4層,那麼其模板樣式如下圖

報表開發軟件中如何製作不規範組織樹報表

效果查看

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

報表開發軟件中如何製作不規範組織樹報表

相關問題答案