作为开发流程的一部分,Framework模型有时候需要修改。通常数据包名称,名空间名称或者查询项名称会有所改变。或者有时候报表迁移到其他环境,也会遇到上述改变。这些改变将导致错误,通常需要修改每一个数据项的定义才可以修复。
在此例中,我们一起研究如何快速的修改所有的关联,而不用重定义所有的数据项。
准备工作…
任创建一张使用‘GO Data Warehouse (query)’数据包的报表。
如何实施…
1. 打开‘GO Data Warehouse (query)’数据包对应的模型(此模型包含在Sample安装包中)。修改报表使用的名空间的名称。这里,我们修改Sales(query)名空间为Sales Renamed。
2. 重命名数据包‘GO Data Warehouse (query)’为‘GO Data Warehouse Renamed’,并发布合适位置。
3. 现在点击报表对应的Set properties按钮,在弹出框中修改其使用的数据包为‘GO Data Warehouse Renamed’。这时候验证报表会产生如下错误。
4. 检查错误明细,会发现错误和我们刚重命名的名空间有关。
5. 复制报表到剪贴板,然后粘贴到一个XML编辑器中。
6. 替换文档中所有的[Sales (Query)]为[Sales Renamed]。
然后复制修改过的报表文件到剪贴板,并在Report Studio中打开。
7. 验证报表。现在应该没有错误了。
工作原理…
数据项以如下格式存在于报表规范XML文档中:
[Namespace Name].[Query Subject].[Query Item]
可以看到,这个命名规范中没有文件夹的名称。因此,如果Framework模型中的文件夹名称被修改的话,报表不需要修改就可以正确的运行。但是如果名空间、查询主题或者查询项的名称被修改,报表需要相对应的更新才可以正常运行。
本例,名空间被重命名了。这和报表中的每一个数据项都相关。如果手动的修改每一个数据项的话,非常耗时,无聊,且易错。因此,我们在XML编辑器中打开报表规范,使用搜索替换操作完成修改所有关联的工作。