现在的位置: 首页 > 综合 > 正文

水晶报表参数and公式双管齐下

2016年10月26日 ⁄ 综合 ⁄ 共 1063字 ⁄ 字号 评论关闭

1、右击参数字段新建一参数,我这取名cateFlag,类型采用默认的字符串类型即可

2、右击公式字段新建一公式,我这取名cateData,在公式编辑器中编辑(Crystal语法):

  1. if {?cateFlag} = '类型' then  
  2. {DataTable2.会员卡类型}  
  3. else if {?cateFlag} = '单位' then  
  4. {DataTable2.职业单位}  
  5. else if {?cateFlag} = '级别' then  
  6. {DataTable2.会员级别}  

 

该公式是为了根据comboBox的值来显示不同的数据。

3、在报表空白处点右键->插入->图表,选择条形图后,设置如下

 

4、最后在代码中给水晶报表的参数传值

  1. // 我这里将数据集DataSet1设置成全局变量,已在Form_Load中装载数据  
  2. DataSet1 ds = new DataSet1();  
  3. // 统计按钮事件  
  4. private void btnReport_Click(object sender, EventArgs e)  
  5. {  
  6.     CrystalReport1 myReport = new CrystalReport1();  
  7.   
  8.     //给报表设置数据源  
  9.     myReport.SetDataSource(ds);  
  10.     //给水晶报表的参数cateFlag传值  
  11.     switch (comboBox1.Text)  
  12.     {  
  13.         case "按会员等级":  
  14.             myReport.SetParameterValue("cateFlag""级别");  
  15.             break;  
  16.         case "按会员卡类型":  
  17.             myReport.SetParameterValue("cateFlag""类型");  
  18.             break;  
  19.         case "按职业单位":  
  20.             myReport.SetParameterValue("cateFlag""单位");  
  21.             break;  
  22.     }  
  23.     crystalReportViewer1.ReportSource = myReport;  
  24. }  

  

 

运行效果如下:

抱歉!评论已关闭.