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

Sta*_*ley 1 visual-studio-2010 crystal-reports

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

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

我输入的选择标准是:

{REGISTER.TICKET_NO} = {?sTicketNo}

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

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

我也尝试过C#和Crystal Reports SDK的建议- 忽略了选择标准而没有成功.

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

小智 13

有同样的问题 - 找到了这个解决方案.为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 = ""
Run Code Online (Sandbox Code Playgroud)

  • 多谢。我不知道发生了什么 - 我加载了要报告的参数,但它没有刷新。C# 也帮助了我。在我的项目中,我将 Crystal 库更换为较新的库,看来我现在必须进行一些认真的垃圾清理。CR 确实经常很糟糕。 (2认同)