最近年底,我的工作相對少點。就學一些東西吧,上個項目用的Grid++做報表工具。主要是套打發票時,調試花的時間比較長,其實,最終還是印表機的原因吧,不同的印表機,走紙的長短有時不一樣,一開始用的四通的印表機,10年前一款吧,在Xp下始終套打走紙調不準,不過A4比較準的。後來,用Epson的,先是300K,再680K,不同的印表機,紙張也要調了不一樣。有時候,覺得是Grid++的問題,想換一個工具,水晶報表是業內比較大的了。還有一點,就是以後可能要開發一個web項目,也要列印,用Grid++也沒問題,現在5.0版本,免費的也只是預覽時,多一個別人的logo標誌,列印時,就沒有了,其實也是挺方便的,給使用者多了一個選擇。用水晶報表,盜版的也可以用用,只是聽說好像到5個並發使用者就有問題。
把一些調試過程記錄下來,便於以後查看吧。
1,網上找資料,首先找了個《VS2008水晶報錶快速入門.chm》,看了下,果然很方便,把代碼弄下來,sql server2005建個資料庫,運行一下,效果不錯。只不過點列印時,預設要先匯出到PDF,這怎麼行啊,使用者肯定不爽。上網查了下,可以用ActiveX方式。PageLoad時 CrystalReportViewer1.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX;調試結果始終出問題。什麼服務不正常之類。
2,繼續找資料,一大堆關於PrintControl.cab的資訊,按照說明,在web.config中加了
<configSections>
<sectionGroup name="businessObjects">
<sectionGroup name="crystalReports">
<section name="printControl" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" />
</sectionGroup>
</sectionGroup>
</configSections>
<businessObjects>
<crystalReports>
<printControl>
<add key="url" value="http://localhost:3003/PrintControl.cab" />
</printControl>
</crystalReports>
</businessObjects>
不過,還是不行,可能是版本號碼不對。後來,東找西找,還有另一種方法,就是把這個cab解壓,裡面有個dll,讓web項目引用這個dll,試了下,果然,調試沒問題了。可以直接選印表機列印了。
3,項目總歸要發布的,試一下發布吧,結果,表徵圖沒有了,以為發布的不全,什麼資源檔沒引用進來。這一塊搞死了,病急亂投醫,把Vs內建的水晶報表運行時去掉,加裝專門的水晶報表運行時。結果還是不行。找個半天,原來是要把
C:\Inetpub\wwwroot\下面的aspnet_client一同複製到發布的程式目錄。開啟這個目錄,一層一層進去aspnet_client\system_web\2_0_50727\CrystalReportWebFormViewer4,都在這裡,這裡有要的表徵圖,列印過程中的視窗頁面。複製到發布目錄,大功告成。
當然有人指導,你就會很容易,沒有人,探索的過程,其實你也能學到一些別的東西。
如果VS內建的沒裝,可以裝CRRedist2008_x86.msi,17點幾M,是for 2008的。
如果你部署到目標機,可以直接裝CRRuntime_12_0_mlb.msi,專門.net 2.0的水晶報表的運行時,40幾M,安裝時有一步輸入ProductID,網上還真沒找到,不過別人說可以直接跳過的,我也是直接Next跳過的。
這裡一定要注意版本號碼。可以通過官方網站查的。
http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=56787567
CR 10.5 (VS .NET 2008) |
10.5.3700.0 |
CRRedist2008_ia64.msi (64 bit Itanium) |
Download Link |
WIN XP, WIN 2003, WIN 2008, WIN Vista, WIN 7 |
2.0, 3.5 |
|
|
CRRedist2008_x64.msi (64 bit Intel) |
Download Link |
WIN XP, WIN 2003, WIN 2008, WIN Vista, WIN 7 |
2.0, 3.5 |
|
|
CRRedist2008_x86.msi (BootStrapper) |
Download Link |
WIN XP, WIN 2003, WIN 2008, WIN Vista, WIN 7 |
2.0, 3.5 |
2008裡用的版本是 10.5,2005用的是10.2,所以一定要注意版本。
這些問題解決了,其它水晶報表的問題,可以去研究了,主要就是報表範本的設計,推模式,拉模式的理解。
當然,我主要還是擔心著作權,萬一併發使用者多於5個怎麼辦,真要買license,估計費用也比較高,網上也看到了一些說通過修改註冊表裡某個子項,不過,我沒找到那個子項。 用Grid++,還是不太擔心的,最多買個license,幾千塊錢吧。 其實Grid++也挺方便的,我用於兩個項目過了。
到底用什麼,等項目開始時再說吧,多一種選擇,總比只會一種方法的好。