在本节中,您将学习如何对报表中的数据应用过滤。
对报表数据应用过滤
在“设计”视图中打开 Web 或 Windows 窗体。
从“视图”菜单中,单击“代码”。
在类的顶部,添加三个新的类级变量声明,这些声明代表过滤数据所依据的值。
Private salesAmount As String Private operatorValue As String Private customerName As Stringprivate string salesAmount; private string operatorValue; private string customerName;如果您在创建 Windows 项目,请添加一个附加类级变量声明(即名为 useDefaultValues 的布尔值),然后为其赋值为 True。
Private useDefaultValues As Boolean = Trueprivate bool useDefaultValues = true;在 ConfigureCrystalReports() 方法中,创建一个条件块。
如果您在创建网站,请创建一个 Not IsPostBack 条件块。将此块放在方法中现有代码的上方。
If Not IsPostBack Then End Ifif (!IsPostBack) { }如果您在创建 Windows 项目,请创建一个 useDefaultValues 条件块。将此块放在方法中现有代码的上方。
If useDefaultValues Then End Ifif (useDefaultValues) { }
在条件块中,将值 4000、< 和 K 赋给三个类级变量。
这些值是在条件块内进行赋值的,因为后面您要用一个按钮单击事件替代这些值。
``` vb
salesAmount = "4000"
operatorValue = "<"
customerName = "K"
```
``` csharp
salesAmount = "4000";
operatorValue = "<";
customerName = "K";
```
在条件块之外紧接着在下面创建一个 selectionFormula 字符串,在该字符串中可以混用字面值和您刚创建的类级变量。
Dim selectionFormula As String = "{Customer.Last Year's Sales} > " _ & salesAmount _ & " AND Mid({Customer.Customer Name}, 1, 1) " _ & operatorValue _ & "'" _ & customerName _ & "'"string selectionFormula = "{Customer.Last Year's Sales} > " + salesAmount + " AND Mid({Customer.Customer Name}, 1, 1) " + operatorValue + "'" + customerName + "'";在您以前创建的报表绑定代码中,在将 customerBySalesName 赋给 CrystalReportViewer 控件的 ReportSource 属性的那个代码行的上方,创建一个换行。
在该换行中,将 selectionFormula 字符串变量赋给 ReportDocument 实例。
customerBySalesNameReport.DataDefinition.RecordSelectionFormula = selectionFormulacustomerBySalesNameReport.DataDefinition.RecordSelectionFormula = selectionFormula;编译和查看您的应用程序。
现在数据应该已过滤。
返回到 Visual Studio,然后单击“停止”从调试模式中退出。
在下一节中,您要在允许动态调整选择公式的窗体上创建控件。