講真,一開始開到教程說什么推模式 拉模式,巴拉巴拉一大堆,我是模糊的,不知道怎么區(qū)分這兩種不同的顯示數(shù)據(jù)的模式。實際上,兩種顯示的效果是相同的,關鍵的區(qū)別在于獲取數(shù)據(jù)和推送數(shù)據(jù)的方式。當我決定軟件分發(fā)的時候,發(fā)現(xiàn)推模式不要安裝連接器.....
我使用mysql數(shù)據(jù)庫,vb2015開發(fā),使用語言vb.net
拉模式:
最開始開發(fā)的時候,使用的拉模式(其實當時我是不知道的,我以為報表只有一種數(shù)據(jù)顯示的方式),
因為只需要設置好報表連接數(shù)據(jù)庫的字符串,寫一條select語句把想要的數(shù)據(jù)拉過來,報表自動顯示數(shù)據(jù)。
等價于在報表設計器中,設置連接字符串和sql語句。
當然前提是,電腦有安裝mysql connector 并設置數(shù)據(jù)源
顯示數(shù)據(jù)的效果,根據(jù)數(shù)據(jù)量,拉數(shù)據(jù)會消耗時間,數(shù)據(jù)越多,時間越長,建議使用例子中的報表進度條
推模式:
后來在準備軟件分發(fā)的時候,發(fā)現(xiàn)如果使用拉模式,需要對客戶電腦安裝mysql connnector,這樣對于不懂電腦的用戶來說,增加了安裝的學習成本,而這個成本將會轉(zhuǎn)嫁給客服部,增加工作量。
所以,在仔細查閱了論壇相關的帖子后,決定研究一下推模式。
推模式,最大的好處,在于產(chǎn)品分發(fā)的時候,不需要安裝任何東西(前提是win10系統(tǒng),win7需要安裝.NET 框架),做的軟件直接拉到一個裸機的win10既可以運行報表所有的功能。
實際上,推模式最難處理的部分,在于先要獲取數(shù)據(jù)庫的數(shù)據(jù),再將其轉(zhuǎn)換成報表格式,時間消耗在轉(zhuǎn)換的過程。
我實現(xiàn)的辦法是將獲取的數(shù)據(jù)放到dataset或者datatable中,再處理。
銳浪的例子中,關于推模式的有三個,5.manualfill ,advance/customgroup, advance/customsummary。
第一個例子是用程序?qū)懸粋€報表,并把數(shù)據(jù)推送給報表。
第二個和第三個是用現(xiàn)成的報表,推送
仔細研究后,發(fā)現(xiàn) 轉(zhuǎn)換報表格式 ?的函數(shù)(FillRecordToReport, 有兩個),不是通用的,并不是適用于我的程序,所有花了半天時間修修改改,終于滿足了我的需要
另外,C#和VB.NET免regsvr32注冊調(diào)用銳浪報表的方法
報表可以通過在引用中修改報表控件的屬性(獨立:true),可以不需要通過注冊報表控件,在任意電腦使用相關的報表功能。
至此,所有的關于報表在分發(fā)過程中的安裝或注冊問題都解決了,可以愉快地在任何電腦上打開使用了。
這是我第一篇文章,感覺一般沒什么人看,所以,太詳細的內(nèi)容我是沒有寫,如果有人評論 想要知道詳細的內(nèi)容,我會把程序貼出來,可能的話做個demo,分享給大家。