分析Crystal Reports的最佳方法是什么?

时间:2008-08-21 13:56:07

标签: crystal-reports diff

如果您有相同报告的两个版本(.rpt),并且您想确定具体的差异,那么最好的方法是什么?我已经看到了一些商业工具来做到这一点,但是我并不太愿意为一些本来应该相对直接的东西分配现金。我可以挂钩到Crystal API并简单列出每个字段的所有属性吗?请有人告诉我,某处有一个开源项目可以做到这一点...... @: - )

@Kogus,不会将输出区分为文本隐藏任何格式差异吗?

@ladoucep,我似乎无法在没有数据的情况下导出报告

3 个答案:

答案 0 :(得分:8)

  

我可以挂钩到Crystal API和   只列出的所有属性   每个领域还是什么?请   有人告诉我,有一个公开赛   源项目的某个地方   这...... @: - )

事实上,有这样的API。我写了一个VB6应用程序来完成你所要求的内容以及更多内容。我想我甚至将它迁移到VB.Net。由于它是我自己使用的,我并没有花太多时间让它“抛光”。我一直打算发布它,但我没有时间......

我过去使用的另一种方法是创建一个Access应用程序来帮助管理大型的报表开发项目。其中一个功能包括提取报表使用的表以及其命令和SQL表达式使用的SQL语句。它的目的是给出一个全局视角,了解哪些报告使用哪些表。我可能还有某个地方......

**编辑1 **

BusinessObjects Enterprise XI(R?)具有名为“Meta Manager”的功能。它将定期检查存储库的内容并将结果保存到数据库。它使用报告应用程序服务(RAS)生成元数据。当然,这是一个额外的5位数的许可证。

**编辑2 **

考虑使用PowerShell来完成工作:PsCrystal

答案 1 :(得分:1)

一种有用的技术是将报告的两个版本输出到纯文本,然后对这些输出进行差异化。

您可以使用crystal report组件编写一些内容来描述报告的每个属性,就像您描述的那样。然后你可以将 输出到文本,并将那些输出。我不知道有任何开源工具为你做这件事,但编写它并不是非常困难。

帖子中的@question: 如果相对位置已更改,则仅对输出进行区分将显示格式更改。例如,如果我有这个:

之前: 名字,姓氏,地址

后: 姓氏,名字,地址

然后那会显示出差异。

但是,如果我刚刚将地址列碰到几个像素,或者将其从纯文本更改为粗体,那么你是对的,那就不会出现了。

答案 2 :(得分:1)

过去我曾经使用的一种技术是根据相同的数据从两个版本打印报告。然后我从每个版本中取出第一页,将一个放在另一个上面(重要的是不要将它们混合起来)并将它们放到窗口中。通常很容易看出任何差异,并且可以使用合适的书写工具(例如铅笔)手动注释这些差异。对报告中的每个页面重复上述步骤。

不可否认,对于大型报告而言,这可能非常耗时且容易出错,但这些限制可以通过耐心和谨慎来克服。