Crystal 报告未根据选择公式过滤 SQL 条记录

Crystal Report not filtering SQL records based on selection formula

不幸的是,我不是 Crystal 报告的专家,所以我会 post 在这里提出我的问题,希望对我的问题有任何帮助。

我想在我的报告中显示 SQL RecordSet 上的过滤器结果;此 RecordSet 是从单个 table 中查找的,其中我想显示我的 SQL table 的一些字段,而我要应用的过滤器基于字段参数(定义静态),我试图以编程方式设置。

在下面,我在应用记录选择公式的地方附加了我的代码,我还尝试对值进行硬编码,而不是通过下拉选择传递它:

            ReportDocument RPT_Doc = new ReportDocument();

            RPT_Doc.Load(RPT_Path_Name, OpenReportMethod.OpenReportByDefault);
            ApplyConnInfos(ref RPT_Doc);

            RPT_Doc.SetParameterValue("data_riferimento", "20161001");

            RPT_Doc.RecordSelectionFormula = "{viaggi.data_part_pre} = '20161001'";
            crystalReportViewer1.ReportSource = RPT_Doc;

第一张图片是字段参数定义,第二张是我在报表中定义的记录选择公式:

报表总是显示我的table的所有记录(一万多行),而不是显示过滤后的RecordSet。奇怪的是 Visual Studio 的预览功能非常有用;它会提示字段值,一旦我确认该值,查看器就会显示按我预期过滤的行的报告..

我在 report/C# 程序配置中缺少什么才能使记录选择起作用?

提前感谢您给我的任何建议:)

莱昂纳多

好的,我们终于找到了问题的解决方案。

我们发现用于显示生成的报表的 CrystalReportViewer 对象有 2 个不同的属性,SelectionFormulaViewTimeSelectionFormula;两者都将默认值设置为空字符串。 下面我附上了 .Designer.cs 文件的图片,其中包含 2 个属性值:

我们评论了这 2 个属性,并且通过代码/报表设计器应用的选择公式和字段参数再次起作用。