1. 程式人生 > >動態格報表的制作

動態格報表的制作

.cn image align 圖片 做出 人員 公司 也會 png

接觸過很多客戶,在沒有數據系統以前,很多報表都是用excel畫的。這些excel表,大部分都是業務人員為了方便記錄數據直接畫的,在這樣畫出來的表樣中,分組合並單元格相當自由不受約束。而當業務人員把這些excel交給程序猿哥哥用報表工具制作時候,很自然地也會希望報表能像excel一樣隨心所欲的去合並單元格。但是,這就令程序猿哥哥苦惱了,因為通常使用的報表開發工具制作出來的分組報表都是中規中矩的,很難根據業務人員提供的樣板隨心所欲地合並單元格。但這樣又會讓業務人員感覺很死板,不夠靈活,甚至不能體現特定的數據關系。

現在,掌握了潤乾報表的程序猿哥哥就要打破常規,挑戰不可能了!也就是要做出根據相同數據任意進行橫縱向合並分組格的效果,下圖就顯示了XX公司按層級展示的各網點和下屬架構的考核指標,根據不同層級的粒度進行了合並顯示:

技術分享圖片

技術分享圖片

看到這些效果圖,我們的內心不禁敲起了小鼓,真的可以做到嗎,如果可以是不是需要花高價購買昂貴的裝備呢?在這裏,小編偷偷告訴您(一般人我可是不會說的奧),潤乾報表不僅可以做出這樣自由炫酷的效果,而且報表工具價格實惠!(不信您可以到潤乾官網去看奧。)


下面讓我們以第一個圖為例一起了解一下潤乾報表是怎樣做到的……

首先,準備數據:這裏我們使用潤乾報表的內建數據集,構建3個數據集,其中,ds1是XX公司網點及下屬架構的層級信息,ds2是個網點和下屬架構的考核指標,而ds3則是網點和下屬架構對應名稱,如下圖:

數據集ds1數據 :

技術分享圖片

數據集ds2數據 :

技術分享圖片

數據集ds3數據 :

技術分享圖片

:以上內建數據集字段類型均為字符串。


緊接著,

畫表並填寫單元格表達式,如下圖所示:

技術分享圖片

其中
A4單元格表達式為:=ds1.group(省;省),顯示值表達式為:ds3.select(name,id==value()),擴展 –> 同值合並為:縱向合並;

B4 單元格表達式為:=ds1.group(市;市),顯示值表達式為:ds3.select(name,id==value()),擴展 –> 同值合並為:縱向合並,空值合並為:向左合並;

C4 單元格表達式為:=ds1.group(區縣;區縣),顯示值表達式為:ds3.select(name,id==value()),擴展 –> 空值合並為:向左合並;

D4 單元格表達式為:=ds1.group(營業部;營業部),顯示值表達式為:ds3.select(name,id==value()),擴展 –> 空值合並為:向左合並;

E4 單元格表達式為 :=ds1.group(網點;網點) ,顯示值表達式為:ds3.select(name,id==value()),擴展 –> 空值合並為:向左合並;

F4 單元格表達式為 :=ds1.group(架構1;架構1) ,顯示值表達式為:ds3.select(name,id==value()),擴展 –> 空值合並為:向左合並;

G4 單元格表達式為 :=ds1.select(架構2;架構2) ,顯示值表達式為:ds3.select(name,id==value()) ,擴展 –> 空值合並為:向左合並;

H4 單元格表達式為 :ds2.select@1(kpi1,id==G4) ,顯示值表達式為:if(value()==null,0,value()) ,顯示格式為:#0.00;

I4、J4、K4 單元格表達式為 :=ds2.字段名稱,顯示值表達式為:if(value()==null,0,value()),顯示格式為:#0.00 。

然後….. 一個完美的動態合並格報表就完成了。

回顧

回顧一下其中遇到的問題和解決的技巧:

1.動態合並單元格

【技巧】使用同值合並 或者 空值合並用法

2.單元格表達式實現多數據集關聯

【技巧】使用數據集函數ds.select()

3.單元格顯示值控制

【技巧】使用數據集函數ds.select()以及非數據集函數if()和value().

最後我們發現,其實這裏僅僅使用了潤乾報表的同值合並和空值合並,是不是一不小心,又雙叒叕get了新技能?有木有覺得潤乾的程序猿哥哥棒棒噠,想要私信一下,那就別再猶豫了微信公眾號搜索“raqsoft”加關註, 快來加入潤乾大家庭吧,你的程序猿哥哥已經等你很久嘍。

動態格報表的制作