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

Parameters 在Crystal报表中的多个公式上使用一个参数。可能导致的腐败,parameters,crystal-reports,Parameters,Crystal Reports,在这一点上请容忍我,这可能不是一个明确的问题。我有一个严重的问题,我可以提出问题,我可以追溯导致它的步骤,但不知道如何解决它。很有可能,我的报告(甚至系统)现在在某种程度上被破坏了,因为将更改编辑回原来的位置(到一切正常的位置)会产生同样的问题我正在寻找一些关于如何在这种可能的腐败状态下修复报告的想法,因为从一开始重做将花费很多时间。我使用最新的水晶报告 回顾以下步骤: 我有一个复杂的报告,它包含一个参数,ID1。此ID1用于select专家语句。在这一点上一切都很好 我在SQL命令数据源中需要

在这一点上请容忍我,这可能不是一个明确的问题。我有一个严重的问题,我可以提出问题,我可以追溯导致它的步骤,但不知道如何解决它。很有可能,我的报告(甚至系统)现在在某种程度上被破坏了,因为将更改编辑回原来的位置(到一切正常的位置)会产生同样的问题我正在寻找一些关于如何在这种可能的腐败状态下修复报告的想法,因为从一开始重做将花费很多时间。我使用最新的水晶报告

回顾以下步骤:

我有一个复杂的报告,它包含一个参数,
ID1
。此
ID1
用于select专家语句。在这一点上一切都很好

我在SQL命令数据源中需要这个
ID1
。我无法将此参数写入SQL命令。(克里斯托不让我这么做。)哦,我创建了参数
ID2
,这是一样的。现在一切正常,尽管我必须提供两次参数

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

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

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


Sziro

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


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

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

Ryan,Siva:我有几个表作为数据源,链接在一起等等,我有一个命令作为数据源。我必须同时使用这两种方法。使用SQL命令和手动添加表/联接通常是处理报表的一种过于复杂的方法,有时会导致CR的行为与预期不同。如果您绝对必须使用两个数据源,请检查SQL命令并验证参数是否正确设置和引用。仅供参考,请在您要响应的实际答案下方添加注释,或使用“@Sziro”约定通知其他注释/答案作者。。。否则我们将看不到您的回复。@Ryan谢谢。到目前为止,这个命令是必须的。从长远来看,把所有的事情都交给一个命令是非常丑陋和无法维护的。我将重新创建报告,并在时间紧迫时尝试频繁维护备份。