如果您有相同报告的两个版本(.rpt),并且您想确定具体的差异,那么最好的方法是什么?我已经看到了一些商业工具来做到这一点,但是我并不太愿意为一些本来应该相对直接的东西分配现金。我可以挂钩到Crystal API并简单列出每个字段的所有属性吗?请有人告诉我,某处有一个开源项目可以做到这一点...... @: - )
@Kogus,不会将输出区分为文本隐藏任何格式差异吗?
@ladoucep,我似乎无法在没有数据的情况下导出报告。
答案 0 :(得分:8)
事实上,有这样的API。我写了一个VB6应用程序来完成你所要求的内容以及更多内容。我想我甚至将它迁移到VB.Net。由于它是我自己使用的,我并没有花太多时间让它“抛光”。我一直打算发布它,但我没有时间......我可以挂钩到Crystal API和 只列出的所有属性 每个领域还是什么?请 有人告诉我,有一个公开赛 源项目的某个地方 这...... @: - )
我过去使用的另一种方法是创建一个Access应用程序来帮助管理大型的报表开发项目。其中一个功能包括提取报表使用的表以及其命令和SQL表达式使用的SQL语句。它的目的是给出一个全局视角,了解哪些报告使用哪些表。我可能还有某个地方......
**编辑1 **
BusinessObjects Enterprise XI(R?)具有名为“Meta Manager”的功能。它将定期检查存储库的内容并将结果保存到数据库。它使用报告应用程序服务(RAS)生成元数据。当然,这是一个额外的5位数的许可证。
**编辑2 **
考虑使用PowerShell来完成工作:PsCrystal。
答案 1 :(得分:1)
一种有用的技术是将报告的两个版本输出到纯文本,然后对这些输出进行差异化。
您可以使用crystal report组件编写一些内容来描述报告的每个属性,就像您描述的那样。然后你可以将 输出到文本,并将那些输出。我不知道有任何开源工具为你做这件事,但编写它并不是非常困难。
帖子中的@question: 如果相对位置已更改,则仅对输出进行区分将显示格式更改。例如,如果我有这个:
之前: 名字,姓氏,地址
后: 姓氏,名字,地址
然后那会显示出差异。
但是,如果我刚刚将地址列碰到几个像素,或者将其从纯文本更改为粗体,那么你是对的,那就不会出现了。
答案 2 :(得分:1)
过去我曾经使用的一种技术是根据相同的数据从两个版本打印报告。然后我从每个版本中取出第一页,将一个放在另一个上面(重要的是不要将它们混合起来)并将它们放到窗口中。通常很容易看出任何差异,并且可以使用合适的书写工具(例如铅笔)手动注释这些差异。对报告中的每个页面重复上述步骤。
不可否认,对于大型报告而言,这可能非常耗时且容易出错,但这些限制可以通过耐心和谨慎来克服。