首页 > 解决方案 > Crystal Report 未根据选择公式过滤 SQL 记录

问题描述

不幸的是,我不是水晶报表的专家,所以我会在这里发布我的问题,希望对我的问题有任何帮助。

我想在我的报告中显示对 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;

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

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

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

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

莱昂纳多

标签: visual-studio-2010crystal-reports

解决方案


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

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

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


推荐阅读