选择不适用于Crystal Reports和Visual Studio 2010的条件

时间:2012-05-14 14:09:08

标签: visual-studio-2010 crystal-reports

我为一个报告继承了现有的Crystal Report(.rpt),该报告打印了相关数据集中的所有记录。

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

我输入的选择标准是:

{REGISTER.TICKET_NO} = {?sTicketNo}

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

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

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

Crystal Reports中是否还有其他地方您必须指定您不希望打印所有记录?我在菜单中添加了我的选择标准" Crystal Reports" > "报告" > "选择专家" > "记录&#34 ;.我对水晶报道很新。也许该报告的作者在其他地方添加了一些设置以忽略选择标准,但我不确定在哪里看......

1 个答案:

答案 0 :(得分:12)

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

症状

升级VS .NET应用程序以在Visual Studio .NET 2005中使用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 = ""