按组合框值过滤水晶报告

本文关键字:水晶 报告 过滤 组合 | 更新日期: 2023-09-27 18:36:51

我有 2 个组合框 cmb1 和 cmb2,一个按钮和一个水晶报告查看器,cmb1 显示 Std 和 cmb2 显示 Div,这两个值都是从数据库中提取的。我是水晶报告的新手,并困惑如何使用选择字段和所有..我希望当我选择其中一个或两个组合框并单击按钮时,数据应该在水晶报告中过滤并显示在水晶报告查看器中。例如。我在 cmb1 中选择"5",在 cmb2 中选择"A",然后只应显示 5 A 类的记录..C# VS2008,默认晶体报告与VS2008..提前谢谢你

按组合框值过滤水晶报告

有两种方法可以做到这一点

1)首先,您必须根据组合的值在前端过滤数据表,然后使用SetDataSource()函数将过滤后的数据表重新分配给水晶报告。

 rptMembership objMembership = new rptMembership();
 DataView dv =new DataView(ReportDataTable);    
 // Filtering data on combo values.
 dv.Filter = "combo1id = 1 and combo2id = 2"
 objMembership.SetDataSource(dv.ToTable());
 rptViewer.ReportSource =  objMembership;

2)其次,您可以根据您的组合值过滤数据库端的记录,然后将新数据表重新分配给水晶。

没有直接的方法可以在水晶报表级别过滤记录。

在组合框中尝试以下代码:

        report rd = new report();
        // set database login information
        rd.SetDatabaseLogon("username", "password", @"NOHA-PC'SQLEXPRESS", "dbname");
        // write formula to pass parameters to report
        crystalReportViewer1.SelectionFormula = "{tablename.columnname} =" + comboBox1.SelectedValue;
        crystalReportViewer1.ReportSource = rd;