在水晶报表中筛选记录的三种解决方案……

来源:互联网 发布:淘宝卖家登录网址 编辑:程序博客网 时间:2024/05/17 06:17

目录:
一、解决方案一:报表数据访问使用推模型
二、解决方案二:记录选定公式运行时自定义
三、解决方案三:将参数合并到记录选定公式
----------------------------------
解决方案一:
报表数据访问使用推模型

需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。该方法使您可以将连接共享置入应用程序中,并在 Crystal Reports 收到数据之前先将数据筛选出来。
----------------------------------
解决方案二:
记录选定公式运行时自定义

1、通过查看器控件传递选定公式
[Visual Basic]
Dim SelectFormula As String
SelectFormula = "{客户.去年销售额} > " & textBox1().Text
crystalReportViewer1.SelectionFormula = SelectFormula
[C#]
string selectFormula;
selectFormula = "{客户.去年销售额} > " + textBox1.Text;
crystalReportViewer1.SelectionFormula = selectFormula;
[C++]
String* selectFormula;
selectFormula->Concat
("{客户.去年销售额} > ", textBox1->Text);
crystalReportViewer1->SelectionFormula = selectFormula;

2、通过报表对象传递选定公式
[Visual Basic]
Dim selectFormula As String
selectFormula = "{客户.去年销售额} > " & textBox1().Text
Report.DataDefinition.RecordSelectionFormula = selectFormula
[C#]
string selectFormula;
selectFormula = "{客户.去年销售额} > " + textBox1.Text;
Report.DataDefinition.RecordSelectionFormula = SelectFormula;
[C++]
String* selectFormula;
selectFormula->Concat
("{客户.去年销售额} > ", textBox1->Text);
Report->DataDefinition->RecordSelectionFormula = selectFormula;

3、刷新相应的报表,方法是使用以下代码行结束这段代码:
CrystalReportViewer1.RefreshReport()
该公式得以更新,将使用新的最小值(上年度的销售额)。
----------------------------------
解决方案三:
将参数合并到记录选定公式

参数字段不必放入报表中即可在记录或组选定公式中使用。创建参数字段,然后像插入其他字段那样将其输入到公式中。

用公式进行记录选定
若要减少从数据库服务器传输的数据量并改善性能,请将参数字段直接合并到记录选定公式中。
下面的记录选定公式提请用户输入销售配额,并只显示去年销售额超过销售配额的所有客户。
{客户.去年销售额} > {?SalesQuota}

需要开发人员编写代码在运行时传递参数值……