2007年7月24日 星期二

Windows 2003 sp2 造成 Crystal Report 的 Export 功能失效

之前我們曾經使用過 Visual Studio 2003 內附的 Crystal Report (以下簡稱 CR) 來開發報表,當時有幾份報表為了一些特殊的需求而使用了 CR 的 Export 功能,來將原本是以 CR Viewer呈現出來的報表外觀改存為 Excel 的形式

本來像這樣子用了一年多吧,大家也都相安無事,沒想到有一天我心血來潮,順手把正式環境上的 Windows 2003 跳出來的 service pack 2 升級提醒給按了下去,結果那個 Excel 就再也跑不出來了,取而代之的是類似這樣子的訊息:Error detected by export DLL

拜請了 Google 大神之後,好不容易找到了兩篇討論串:
Microsoft 上的討論CR 公司的官方討論區

當然找到的當時只看到大家都有類似的問題,但卻都沒有解答,直到過了二週之後左右吧,終於在CR的那個討論串上看到了官方的 patch:

Crystal Report for .Net 1.1 patch

上面建議我們裝在開發機上,然後再把 C:\Program Files\Common Files\Crystal Decisions\1.0\bin 目錄下找到的新版 ExportModeller.dll copy 到正式機上的相同目錄就可以解決了

原本我是興高彩烈的要把這個問題給結案了,沒想這個 Patch 的安裝檔似乎有點問題,至少在我手上的電腦 (都是 Windows 2003) 都裝不成功,安裝完畢的訊息似乎都很正確,但是就是沒看到 ExportModeller.dll 這個檔案的版本有更新到

本來想直接開啟這個安裝檔內的 *.cab 檔把 ExportModeller.dll 這個檔案給拿出來,但是無法成功,後來亂猜聯想到也許是我的 OS 語系的問題,於是進了控制台把 OS 的語系改為 英文(美國) 之後安裝,結果呢,還是沒有在C:\Program Files\Common Files\Crystal Decisions\1.0\bin 目錄下找到我要的新版本

但不知道為什麼,這次卻在 C:\ 下找到了兩個檔 ExportModeller.dll 和 craxddrt20.dll ,ExportModeller.dll 這個檔案也是我要的 9.1.1.528 而非原來的 9.1.1.527 版了,不過你問我是不是改語系的方法奏效了,我也不確定,反正有了這個檔案後我也不想深究這個問題了,於是便把這檔案給上到正式環境... 測試... 過關~~~

我想現在市面上應該有很多線上的系統用了和這個案子一樣的環境,有遇到類似問題的朋友可以試試看喔