Crystal Report不根据选择公式过滤SQL记录

时间:2018-10-01 13:23:23

标签: visual-studio-2010 crystal-reports

很遗憾,我不是Crystal Report的专家,所以我将在此处发布我的问题,希望对我的问题有所帮助。

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

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

            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;

在所附的第一张图片中,您可以找到字段参数定义,而第二张图片是我在报告中定义的记录选择公式: My field parameter Record selection formula

该报告始终显示表中的所有记录(超过一万行),而不显示过滤的RecordSet。奇怪的是,Visual Studio中的 Preview函数就像一个魅力;当我确认该值时,它会提示该字段值。查看器将显示报告,其中包含按预期过滤的行。

报表/ C#程序配置中我缺少什么来使记录选择起作用?

在此先感谢您可以给我的任何建议:)

莱昂纳多

1 个答案:

答案 0 :(得分:2)

好,最后我们找到了解决问题的方法。

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

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