1

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

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

我输入的选择标准是:

{REGISTER.TICKET_NO} = {?sTicketNo}

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

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

我还尝试了来自C# 和 Crystal Reports SDK - 忽略选择标准但没有成功的建议。

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

4

1 回答 1

13

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

症状

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

原因

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

解析度

要解决此问题,请执行以下步骤:

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

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

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

注释掉或删除以下两行:

me.crystalReportViewer.SelectionFormula = ""

me.crystalReportViewer.ViewTimeSelectionFormula = ""
于 2013-03-14T22:20:41.433 回答