2008-10-30 118 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

相关问题