動態格報表的制作
現在,掌握了潤乾報表的程序猿哥哥就要打破常規,挑戰不可能了!也就是要做出根據相同數據任意進行橫縱向合並分組格的效果,下圖就顯示了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”加關註, 快來加入潤乾大家庭吧,你的程序猿哥哥已經等你很久嘍。
動態格報表的制作