这很奇怪。我有一个CR需要30多分钟才能运行。它使用5个大表并查询服务器。我在服务器上创建了一个View,它是IBM i在那里收集数据。由于某种原因,它没有给我关于过去08/12的CR的数据。当我在服务器上查询该日期时,它确实有数据,即使我快速报告CR,它也会显示包含2013年的所有数据。
原因可能是这个>
当我制作视图时,我错误地使用了混合数据库。其中一个数据库是一个用作数据清除的一部分。所以它可能没有超过8.12 /
的数据但是从那时起,我还修改了视图以添加一些新列,它确实可以显示它们显示的数据(直到8月12日)
所以这会告诉我CR正在使用全新的视图。
所以我可以重新创建CR,但这很乏味。也许有一件事我不做?
答案 0 :(得分:0)
Crystal Reports通常在报告处理查询方面做得更好。为了更快,更简单的调试方式,通常最好在数据库中创建一个将来自各种来源的数据连接在一起的过程。获得所需数据后,使用Crystal显示该数据。
换句话说,尽量避免在Crystal中做更多的工作。当然,分组和标题以及漂亮的格式化将在那里完成。但是在数据库中更好地完成所有查询,加入和排序。如果查询速度很慢,那么您可以在那里进行优化。如果返回了错误的数据,则修复您的过程,直到它返回您想要的内容。
另一个好处是报告需要更改时。如果数据需要来自不同的位置,您可以修改过程而不要触摸Crystal。如果需要更改格式,您可以修改Crystal并且永远不要触摸该过程。你的变化较少,因此无需测试所有东西。
答案 1 :(得分:0)
水晶报告是否附加到临时服务器上?
如果您使用的是SQL Server,那么您可以修改构成视图的SQL,方法是将表名修改为: databasename..tablename 我不知道怎么做相当于其他DBMS。
如果您修改表格,以便视图从正确的非清除数据库查询表,并且您仍然没有获得比8/12更新的数据,那么检查WHERE和/或是否存在约束HAVING语句,或者JOIN的ON部分中是否存在隐式/显式约束。