用WPF做報表控制項(一)

2021-08-27 10:56:37 字數 454 閱讀 5585

datagrid是wpf自帶的報表控制項,但其功能簡單,很多時候無法滿足我們的需求。第三方庫(如devexpress)報表功能強大,但一方面資源消耗比較多,另一方面效能也較差,在一些比較差的電腦上執行很吃力。我之前就嘗試過在工控機上使用devexpress,每次啟動都需要等幾秒甚至十幾秒半分鐘,體驗實在太差。於是,我覺得自己做乙個報表控制項。

我希望這個報表控制項有如下的功能:

(1)有豐富的表頭。如下圖所示:

(2)匯出excel。

(3)可以列印。

(4)有統計欄。如下圖所示:

做到上面幾點,就能滿足我們專案的需求了。

用WPF做報表控制項(二)

首先我們看一下報表控制項最終的效果 我們可以把報表看成是三部分,分別是表頭,表主體和表尾。如果我們不使用wpf自帶的datagrid,自己一根線一根線去畫的話,這個 估計也是大工程了。所以一開始,我們就考慮使用datagrid。但datagrid怎麼做出如圖所示的表頭和表尾呢?好像根本就不可能啊。嘗...

用WPF做報表控制項(三)

1 表頭列寬變化時,主體和表尾的列寬怎麼跟著變化。2 如何初始化這個複雜的表頭。第乙個問題其實並不難,在grid每一列右側,都加入乙個gridsplitter,然後新增dragdelta和dragcompleted兩個拖動事件即可。gs.dragdelta gridsplitter dragdelt...

用shell做制報表

執行效果 設定行,可以是表頭,也可以是 內容。如果是 內容,表示空值 function setrow n 行分隔線 入參 的列數。如 有5列,則入參為5 function splitline n 繪製 入參 table function settable else if shlvl eq 2 the...