0

我正在尝试将 Crystal Report 导出到文本文件,同时保留其中找到的任何 Unicode 字符。默认情况下,Crystal Reports 似乎导出为 ANSI 文本文件。

这是我正在做的一个高度简化的版本:

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 Reports 9 ActiveX Designer 运行时库”。

4

1 回答 1

1

我想指出,我已经尝试在导出之前预先创建一个同名的 Unicode 文件,希望 Crystal 代码会注意到该文件,并附加到它而不是创建一个 ANSI 文件,但不幸的是这不是案子。

然后我想我可以通过导出到一个 RTF 文件(保留字符),然后读取这个 RTF 的内容(减去格式)来解决这个问题(忍者风格)。然后我会自己创建一个 Unicode 文本文件,将 RTF 内容写入其中。不幸的是,为了实现这一点,我不得不考虑使用 RichTextBox,但遇到了很多问题。我想我会在 VB.Net 中取得更大的成功,但不幸的是我被 VB6 困住了。

在尝试了这些方法之后,我发现一篇文章似乎暗示 Crystal Reports 9支持导出到 Unicode 文本文件,但我还没有看到它起作用。它提到打印引擎支持它,所以我将更深入地查看是否可以调用它,以防 .export 本身没有这样做(我对此表示怀疑)。

事实证明,Crystal严重依赖打印机驱动程序来支持 Unicode,所以我决定研究一下。原来打印机驱动程序必须支持 Unicode,我的测试环境就是这种情况。虽然这很有趣,但它并没有解决我的问题——我已经有一个兼容的打印机驱动程序。

所以,最后:在尝试找到解决方案几天后,我的老板决定是时候减少我们的损失了,我们计划重新设计该功能,而不涉及 Crystal Report 到文本的导出。但是,我仍然对如何使用 Crystal 导出到 Unicode 文本文件非常感兴趣——所以如果你知道如何,请回答。

于 2008-10-30T16:39:07.077 回答