【问题标题】:Select criteria not working in Crystal Reports and Visual Studio 2010选择标准在 Crystal Reports 和 Visual Studio 2010 中不起作用
【发布时间】:2012-05-14 14:09:07
【问题描述】:

我继承了现有的 Crystal Report (.rpt),用于打印相关数据集中所有记录的报表。

我现在想添加选择标准,以便仅在报告上打印具有匹配票号的结果。

我输入的选择标准是:

{REGISTER.TICKET_NO} = {?sTicketNo}

sTicketNo 反映了我从 C# 中的文本框中读取并作为参数传递给 Crystal Reports 的文本值。 (参数传递肯定有效。当我将 sTicketNo 字段添加到报告中时,它会打印我在文本框中输入的正确值。

问题在于,无论我输入什么选择标准,报告都不会被过滤。无论标准如何,它总是打印所有记录。我已经使用其他硬编码标准进行了测试,例如仅选择具有非空值的记录。

我也尝试了C# and Crystal Reports SDK - Selection Criteria Ignored 的建议,但没有成功。

Crystal Reports 中是否还有其他地方需要指定您不希望打印所有记录?我在菜单“Crystal Reports”>“Report”>“Select Expert”>“Record”中添加了我的选择标准。我对水晶报告很陌生。也许报告的作者在其他地方添加了一些设置以忽略选择标准,但我不确定在哪里看......

【问题讨论】:

  • 不确定您运行的是哪个版本的 Crystal,但您可以转到数据库 > 显示 SQL 查询并查看其中是否包含参数?此外,如果正确选择了过滤器,它应该将字段资源管理器中参数上的图标从条形图标更改为带有黄色框的问号。
  • 它获取参数。在字段资源管理器中,在“参数字段”下,sTicketNo 出现“带有黄色框的问号”图标,就像在我们其他一些成功应用过滤器的报告中一样(以及在将字段显式添加到报告详细信息部分时)测试它还包含正确的值)。然而,这个报告仍然存在问题,它包括所有记录,而不仅仅是那些符合条件的记录。也许这与字段(字符串)包含特殊字符(/)有关,但我不希望如此。
  • 这听起来更像是一个错误,而不是你忽略的东西或你犯的错误。我能想到的唯一其他选择是直接在 SQL 中重新构造报表选择语句,并应用相同的过滤器。

标签: visual-studio-2010 crystal-reports


【解决方案1】:

遇到了同样的问题 - 找到了这个解决方案。尽管它提到了 VS 2005/2008,但为我们工作了 VS 2010。

症状

在 Visual Studio .NET 2005 中升级 VS .NET 应用程序以使用 Crystal Reports 2008 时,将忽略选择公式 (.RecordSelectionFormula)。

原因

在 Visual Studio .NET 2005 中,当 Crystal Windows 窗体查看器添加到 Windows 窗体时,自动生成的代码会添加两行代码,将选择公式设置为空字符串 ("")。查看器的 SelectionFormula 和 ViewTimeSelectionFormula 默认设置为“”,因此,应用程序将忽略选择公式,无论是在报表设计器中还是在运行时传递给报表。

分辨率

要解决此问题,请按以下步骤操作:

展开Form1.vb|cs 以显示Form1.Designer.vb|cs。 (form1 表示包含您的查看器的表单)

双击Form1.Designer.vb|cs 以显示其代码。

在 InitializeComponent 方法中,您将找到设置CrystalReportViewer1 属性的代码。

注释掉或删除以下两行:

me.crystalReportViewer.SelectionFormula = ""

me.crystalReportViewer.ViewTimeSelectionFormula = ""

【讨论】:

  • 非常感谢。我不知道发生了什么 - 我加载了要报告的参数并且它没有刷新。也帮助我使用 C#。在我的项目中,我将 Crystal 库切换到较新的库,看来我现在必须进行一些认真的垃圾清理。 CR 真的很糟糕。
  • 即使在评论后也不为我工作。还有其他想法吗?
  • 谢谢!很好的答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多