2008-10-30 142 views
0

我試圖將Crystal Report導出到文本文件,同時保留在其中找到的任何Unicode字符。默認情況下,Crystal Reports似乎將導出爲ANSI文本文件。如何將Crystal Report導出到Unicode文本文件?

下面是我在做什麼一個高度簡化的版本:

Dim objCRReport As CRAXDRT.Report 
[...] 
objCRReport.ExportOptions.FormatType = 8 'crEFTText 
objCRReport.ExportOptions.DestinationType = 1 'crEDTDiskFile 
objCRReport.ExportOptions.DiskFileName = "C:\reportInTextFormat.txt" 
objCRReport.Export blnPromptUser 

因爲它會在ANSI格式的文件,我失去了發現,報告內的任何特殊字符。當您直接查看Crystal Report時,這些字符都很好。

請注意,我特指「Crystal Reports 9 ActiveX Designer運行時庫」。

回答

1

我想指出,我已經嘗試預先創建一個具有相同名稱的前一個 Unicode文件到導出,希望Crystal代碼會注意到該文件,並追加到它,而不是創建一個ANSI文件,但不幸的是情況並非如此。

然後我想我可以通過導出到一個RTF文件(保留字符),然後閱讀這個RTF的內容(不包括格式化)來解決這個問題(忍者風格)。然後,我會自己創建一個Unicode文本文件,向其中寫入RTF內容。不幸的是,爲了實現這一點,我不得不考慮使用RichTextBox,但遇到了一系列問題。我想我會在VB.Net中取得更多的成功,但不幸的是我爲此任務而陷入VB6。

嘗試這些方法後,我發現an article似乎表明Crystal Reports 9 支持導出到Unicode文本文件的,但我還沒有看到它的工作。它提到了打印引擎支持它,所以我會深入探討是否可以調用它,以防.export本身沒有這樣做(我懷疑)。

原來水晶relies heavily on the printer driver for Unicode support,所以我決定研究一下。原來打印機驅動程序支持Unicode,而這個是我的測試環境下的。雖然這很有趣,但它並沒有解決我的問題 - 我已經有了兼容的打印機驅動程序。因此,最後:在試圖找到解決方案的幾天後,我的老闆決定是時候減少我們的損失,而我們計劃重新設計該功能,而不涉及Crystal Report到文本輸出。然而,我仍然對如何導出到Crystal文本文件非常感興趣,所以如果你知道如何做,請回答。

+0

您的第二個鏈接已損壞。其中有一個冗餘的'https //'。 – 2008-11-03 05:17:37

相關問題