请耐心等待这一点,这可能不是一个明确的问题。我有一个严重的问题,我可以提出问题,我可以回溯导致它的步骤,但不知道如何解决它。很可能,我的报告(甚至系统)现在已经以某种方式被破坏了,因为编辑更改回来(到一切工作的地方)会产生同样的问题。 我正在寻找关于如何在这种可能的腐败状态下修复报告的一些想法,因为从一开始重做需要花费很多时间。我使用最新的Crystal Reports。
回顾步骤:
我有一个复杂的报告,它带有一个参数ID1
。此ID1
用于选择专家声明。此时一切都很好。
我在SQL命令数据源中需要这个ID1
。我无法将此参数写入SQL命令。 (Crystal不会让我。)哦,我创建参数ID2
,这是相同的。现在一切都很好,虽然我必须提供两次参数。
现在,我找到ID1
的所有引用,并将其替换为ID2
。当没有使用ID1
时,我删除了该参数。所以我想只有一个参数。现在报告开始变得奇怪了。运行它的Wen不会将我的参数传递给SQL命令,也不会传递选择专家公式。在DBMS中调试我看到SQL命令中的ID是0(例如,145768的内部),并且报告的select命令缺少WHERE clasue,ID应该是过滤器。这真的很糟糕,因为我必须终止操作,数据库太大而无法立即处理。
遗憾地手动编辑这些最后的更改(因此ID1
和ID2
再次出现在报告中)并不能解决问题。即使我现在提供两次参数,它仍然不会出现在对DBMS的请求中。
除了启动整个报告外,在这种情况下我能做些什么?有没有办法检查/修复报告的完整性?
Sziro
答案 0 :(得分:1)
当您使用不使用表的SQL命令时,您需要在SQL查询级别本身编写参数,因为这是在数据库中被触发的查询。尝试在command
创建参数并查看报告是否正常
答案 1 :(得分:0)
当报表基于SQL命令时,您不应该使用选择公式。 SQL命令的要点是您可以手动指定查询,包括WHERE子句,而不必依赖Crystal来为您构建查询。您没有看到您期望访问数据库的查询,因为Crystal无法同时协调这两组不同的逻辑。
我的建议是完全取消选择公式并将其所有逻辑移入SQL命令本身。提醒一下,您需要在“SQL命令”窗口本身内创建参数...创建的参数“正常方式”不起作用。如果您正确执行此操作,您看到在数据库上运行的查询将完全是SQL命令中显示的查询。