在Crystal报表中对多个公式使用一个参数。导致可能的腐败

时间:2014-02-26 11:52:40

标签: parameters crystal-reports

请耐心等待这一点,这可能不是一个明确的问题。我有一个严重的问题,我可以提出问题,我可以回溯导致它的步骤,但不知道如何解决它。很可能,我的报告(甚至系统)现在已经以某种方式被破坏了,因为编辑更改回来(到一切工作的地方)会产生同样的问题。 我正在寻找关于如何在这种可能的腐败状态下修复报告的一些想法,因为从一开始重做需要花费很多时间。我使用最新的Crystal Reports。

回顾步骤:

我有一个复杂的报告,它带有一个参数ID1。此ID1用于选择专家声明。此时一切都很好。

我在SQL命令数据源中需要这个ID1。我无法将此参数写入SQL命令。 (Crystal不会让我。)哦,我创建参数ID2,这是相同的。现在一切都很好,虽然我必须提供两次参数。

现在,我找到ID1的所有引用,并将其替换为ID2。当没有使用ID1时,我删除了该参数。所以我想只有一个参数。现在报告开始变得奇怪了。运行它的Wen不会将我的参数传递给SQL命令,也不会传递选择专家公式。在DBMS中调试我看到SQL命令中的ID是0(例如,145768的内部),并且报告的select命令缺少WHERE clasue,ID应该是过滤器。这真的很糟糕,因为我必须终止操作,数据库太大而无法立即处理。

遗憾地手动编辑这些最后的更改(因此ID1ID2再次出现在报告中)并不能解决问题。即使我现在提供两次参数,它仍然不会出现在对DBMS的请求中。

除了启动整个报告外,在这种情况下我能做些什么?有没有办法检查/修复报告的完整性?

Sziro

2 个答案:

答案 0 :(得分:1)

当您使用不使用表的SQL命令时,您需要在SQL查询级别本身编写参数,因为这是在数据库中被触发的查询。尝试在command创建参数并查看报告是否正常

答案 1 :(得分:0)

当报表基于SQL命令时,您不应该使用选择公式。 SQL命令的要点是您可以手动指定查询,包括WHERE子句,而不必依赖Crystal来为您构建查询。您没有看到您期望访问数据库的查询,因为Crystal无法同时协调这两组不同的逻辑。

我的建议是完全取消选择公式并将其所有逻辑移入SQL命令本身。提醒一下,您需要在“SQL命令”窗口本身内创建参数...创建的参数“正常方式”不起作用。如果您正确执行此操作,您看到在数据库上运行的查询将完全是SQL命令中显示的查询。