需要对SQL和Crystal Reports进行良好的版本控制

时间:2009-05-13 11:31:02

标签: sql crystal-reports

我们有几个大型数据存储库,用于存储指标报告数据。一个是SQL 2000,另一个是2005.我们使用Crystal Reports 11作为报告工具。

在过去的几周里,由于Db的变化或报告中的变化,我们有一些非常明显的报告“崩溃”。

为了最大限度地减少这些错误,我正在研究将数据库和Crystal报表的脚本放入某种版本控制中。有人能指出我如何在某种版本控制下获得这些资产的正确方向吗?我们公司有颠覆,这有用吗?

3 个答案:

答案 0 :(得分:1)

您可以对Crystal Report文件使用标准版本控制工具。但是处理数据库有点困难。

Visual Studio Team System 2008数据库版(数据花花公子)

您可以使用此版本的Visual Studio来管理数据库,数据库表的定义,视图,存储过程,函数等都存储为创建脚本(就像您从空白数据库开始一样)。然后,visual studio函数将创建数据库差异(模式比较或数据比较),并生成从一个版本的数据库到另一个版本(即DEV和TEST实例之间)所需的脚本。

数据库定义是放入版本控制的内容(因此您可以在任何时间点查看数据库的外观),Visual Studio通过生成从一个版本到另一个版本的正确脚本来填充其余内容。 / p>

困难之路

跟踪数据库,修改数据库的脚本和迁移模式。如果您想要访问数据库的某个版本,则可以从空数据库开始,然后连续运行每个脚本,直到达到所需的数据库版本。

这基本上是Ruby on Rails在使用db_migration功能时所做的事情,但是如果您正确编码了迁移文件,它可以反过来通过版本 - 但我假设您正在使用Windows上的.NET。

答案 1 :(得分:1)

有两种方法可以解决这个问题:

  1. 您可以使用任何版本控制(Visual Source Safe,SVN等)。每次更改报告文件时,都会将其导出为报告定义格式(菜单文件 - >打印 - >导出,格式:报告定义),并将报告和报告定义文件添加到版本控制中。报告定义文件是一个文本文件,可以与任何其他文本文件进行比较,因此您将能够看到更改的内容。报告文件是二进制文件,无法与常规版本控制软件进行比较,但您可以根据需要使用它来恢复以前的版本。这种方法的优点是它是免费的。缺点是您必须执行其他步骤,并且比较仅限于导出到报告定义文件的内容。例如,不会导出格式,位置,大小等。

  2. 有一个工具:R-Tag Crystal Version Control。这是一个仅适用于Crystal报表的版本控件,可用作常规版本控件,但也会比较二进制报表文件。此外,您还可以搜索报告'结构体。此工具将比方法1中的报告定义更多,并且可以节省您的时间,因为没有其他步骤和导出。与第一种方法相比的缺点是这是付费软件。您可以在此处找到更多信息:http://www.r-tag.com/Pages/VersionControl.aspx

答案 2 :(得分:0)

我们目前正在通过RptDiff查看名为ReportMiner的产品,以帮助进行水晶报告版本控制。如果我们对标准产品中的报告进行重大更改,并且我们的客户已定制旧版本,我们希望能够比在视觉上检查报告更容易说明需要应用哪些更改。我目前处于堆栈溢出寻找另一种选择之前我们只是为了完成我们的功课。到目前为止,我们还没有看到任何其他报告差异以及晶体免费提供的内容(导出文本定义)。