0

这很奇怪。我有一个运行 30 多分钟的 CR。它使用 5 个大表并查询服务器。我在 IBM i 服务器上创建了一个视图,以便在那里收集数据。出于某种原因,它没有给我 08/12 之后的 CR 数据。当我在服务器上查询超过该日期时,它确实有数据,即使我对 CR 进行快速报告,它也会显示所有数据,包括 2013 年。

原因可能是这个>

当我制作视图时,我错误地混合了使用的数据库。两个数据库之一被用作数据清除的一部分。所以它可能没有超过 8.12/ 的数据

但从那时起,我还修改了视图以添加一些新列,它确实这样做了,甚至在它显示的数据中显示了它们(直到 8 月 12 日)

所以这会告诉我 CR 正在完全使用新视图。

所以我可以重新创建 CR,但这相当乏味。也许我没有做一件事?

4

2 回答 2

0

水晶报告是否附加到临时服务器?

如果您使用的是 SQL Server,那么您可以通过将表名修改为如下所示来修改构成您的视图的 SQL:databasename..tablename我不确定如何在其他 DBMS 中进行等效操作。

如果您像这样修改表,以便视图从正确的未清除数据库中查询表,并且您仍然没有获得比 8/12 更新的数据,请检查 WHERE 和/或 HAVING 语句中是否存在约束,或者如果 JOIN 的 ON 部分存在隐式/显式约束。

于 2014-06-01T19:01:01.850 回答
0

Crystal Reports 通常在报告处理查询方面做得更好。要获得更快、更简单的调试方法,通常最好在数据库中创建一个过程,将来自不同来源的数据连接在一起。获得所需数据后,使用 Crystal 显示该数据。

换句话说,尽量避免在 Crystal 中做任何不必要的工作。当然,分组和标题以及漂亮的格式将在那里完成。但是所有的查询、连接和排序都最好在您的数据库中完成。如果那里的查询很慢,那么您可以在那里进行优化。如果返回了错误的数据,您将修复您的过程,直到它返回您想要的数据。

另一个好处是报告需要更改时。如果数据需要来自不同的位置,您可以修改程序并且永远不要接触 Crystal。如果格式需要更改,您可以修改 Crystal 并且永远不要触摸程序。你改变得更少,因此不必测试所有东西。

于 2013-09-17T23:11:07.020 回答