我正在使用Visual Studio 2008附带的Crystal Reports
这是我的问题。我有一个简单的小命令行实用程序,可生成单个晶体报告。它
应用程序的用法如下:
c:\> GenerateReport 1000 1345 1 email=me@somewhere.com pdf=c:\temp\ print
前3个参数指定存储过程的参数,其他参数是可选的,但告诉实用程序如何处理报告。很简单的东西。效果很好,已经有一段时间了。
除了升级水晶报告(从使用vs2003的任何版本)以来,它有点不稳定。仅在生产现场,并且仅在打印报告时,报告中的多个(但不是全部)字段留空!
这尤其令人困惑,因为报告只实例化一次,报告中的所有数据都来自DataSet - 我没有报告参数字段。并且在应用程序启动时仅提取数据集并将其设置为数据源一次。之后,我只是在同一个实例上调用report.PrintToPrinter,report.Export或report.ExportToStream,具体取决于我是否要分别打印,导出或发送电子邮件。
这意味着如果我使用print和email = me @ mycompany选项运行该实用程序,我收到的电子邮件和打印的报告来自EXACT SAME ReportClass实例。但是,当通过电子邮件发送报告或将报告保存到磁盘时,可以看到打印时始终缺少的相同值。
更糟糕的是,我可以采用完全相同的可执行文件。将它移动到我的开发计算机,将配置文件指向生产数据库,然后打印到我的本地打印机,并填入所有值!
我对如何进一步调查这一点感到非常难过 - 似乎CrystalReports内部正在发生一些事情。是否有我可以打开的某种诊断模式或日志记录模式,这可能会让我知道如何解决这个问题?
答案 0 :(得分:1)
首先回答你的问题,不,没有诊断记录,除了你从报告中看到的以及出现的任何例外情况。
至于可能出现的问题,如果问题仅在打印时发生,则与打印机驱动程序和/或字体有关。它不可能是其他任何东西。有关确保报告在生产打印机上打印的确定方法...在安装了生产打印机的计算机上安装Crystal Reports并打开/格式化/测试/保存针对该SPECIFIC打印机的报告。这将解决问题。当然,在完成修复报告后删除Crystal Reports。
如果报告运行正常并且输出内容不正确,并且没有其他错误发生,则可能是打印机的兼容性问题。没别了。