17

如果您有同一份报告 (.rpt) 的两个版本,并且您想确定确切的区别是什么,那么最好的方法是什么?我见过一些商业工具可以做到这一点,但我对花钱买一些应该相对直接的东西不太感兴趣。我可以连接到 Crystal API 并简单地列出每个字段或其他内容的所有属性吗?请有人告诉我,某处有一个开源项目可以做到这一点...... @:-)

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

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

4

3 回答 3

11

我可以连接到 Crystal API 并简单地列出每个字段或其他内容的所有属性吗?请有人告诉我,某处有一个开源项目可以做到这一点...... @:-)

事实上,有这样一个API。我写了一个 VB6 应用程序来做你所要求的等等。我想我什至将它迁移到了 VB.Net。因为它是供我自己使用的,所以我没有花太多时间让它“抛光”。一直想发,但是没时间。。。

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

** 编辑 1 **

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

** 编辑 2 **

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

于 2009-11-13T12:59:24.943 回答
1

一种有用的技术是将报告的两个版本都输出为纯文本,然后区分这些输出。

您可以使用水晶报表组件编写一些东西来描述报表的每个属性,就像您描述的那样。然后你可以将它输出文本中,并区分那些. 我不知道有任何开源工具可以为你做这件事,但编写它并不难。

帖子中的@question:只有在相对位置发生变化时,区分输出才会显示格式更改。例如,如果我有这个:

之前:名字,姓氏,地址

之后:姓,名,地址

那么这将显示为差异。

但是,如果我只是将地址列撞到几个像素上,或者将其从纯文本更改为粗体,那么您是对的,那不会显示出来。

于 2008-08-21T13:59:09.300 回答
1

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

诚然,对于大型报告,这可能非常耗时且容易出错,但这些限制可以通过耐心和细心来克服。

于 2008-10-24T11:08:16.443 回答