我们在未触及报告模板的开发环境中突然出现 5 个报告(大约 20 个)失败,尝试预览这些报告时出现的错误是看似常见的“此字段名称未知”错误来自水晶。
我想我会发布我们遇到的非显而易见的问题以及我们发现的解决方案,因为这似乎是导致其他人可能会被抓住的错误的众多方法之一。
我们一直在慢慢改进我们的数据库,并将旧版本的数据库代码对象移动到“清理”模式组中,以便稍后删除。
事实证明,Crystal 模板试图在 Cleanup 中使用旧版本的视图,而不是原始模式中的新视图,因为我们假设,Crystal 部分存在一些不知道模式的运行时名称匹配。
例如,我们有,说,
Cleanup.vGetLocations(它不再有效,因为它,例如,指的是现在删除的表)和 Stores.vGetLocations(与新表一起工作的新视图)
Crystal在未能成功返回数据时,似乎找到了旧视图并抛出了这个“字段名未知”的错误。
我们的解决方案很简单:我们还重命名了 Cleanup 模式中的旧对象,在名称中添加“OLD”,例如“Cleanup.vGetLocationsOLD”。损坏的报告预览然后立即起作用。
我们将 Crystal Reports 用于 .NET Framework 4.0 和 SQL Server 2008 R2。