CrystalReports有诊断记录吗?打印时某些字段不会显示

时间:2009-08-06 19:00:34

标签: debugging crystal-reports

我正在使用Visual Studio 2008附带的Crystal Reports

这是我的问题。我有一个简单的小命令行实用程序,可生成单个晶体报告。它

  1. 连接数据库
  2. 从存储过程中获取数据集。数据集始终是一个包含一行的表。
  3. 将数据集设置为报表的DataSource
  4. 根据命令行标记打印到默认打印机,发送电子邮件或将报告另存为pdf
  5. 应用程序的用法如下:

    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内部正在发生一些事情。是否有我可以打开的某种诊断模式或日志记录模式,这可能会让我知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

首先回答你的问题,不,没有诊断记录,除了你从报告中看到的以及出现的任何例外情况。

至于可能出现的问题,如果问题仅在打印时发生,则与打印机驱动程序和/或字体有关。它不可能是其他任何东西。有关确保报告在生产打印机上打印的确定方法...在安装了生产打印机的计算机上安装Crystal Reports并打开/格式化/测试/保存针对该SPECIFIC打印机的报告。这将解决问题。当然,在完成修复报告后删除Crystal Reports。

如果报告运行正常并且输出内容不正确,并且没有其他错误发生,则可能是打印机的兼容性问题。没别了。