1、右击参数字段新建一参数,我这取名cateFlag,类型采用默认的字符串类型即可
2、右击公式字段新建一公式,我这取名cateData,在公式编辑器中编辑(Crystal语法):
- if {?cateFlag} = '类型' then
- {DataTable2.会员卡类型}
- else if {?cateFlag} = '单位' then
- {DataTable2.职业单位}
- else if {?cateFlag} = '级别' then
- {DataTable2.会员级别}
该公式是为了根据comboBox的值来显示不同的数据。
3、在报表空白处点右键->插入->图表,选择条形图后,设置如下
4、最后在代码中给水晶报表的参数传值
- // 我这里将数据集DataSet1设置成全局变量,已在Form_Load中装载数据
- DataSet1 ds = new DataSet1();
- // 统计按钮事件
- private void btnReport_Click(object sender, EventArgs e)
- {
- CrystalReport1 myReport = new CrystalReport1();
- //给报表设置数据源
- myReport.SetDataSource(ds);
- //给水晶报表的参数cateFlag传值
- switch (comboBox1.Text)
- {
- case "按会员等级":
- myReport.SetParameterValue("cateFlag", "级别");
- break;
- case "按会员卡类型":
- myReport.SetParameterValue("cateFlag", "类型");
- break;
- case "按职业单位":
- myReport.SetParameterValue("cateFlag", "单位");
- break;
- }
- crystalReportViewer1.ReportSource = myReport;
- }
运行效果如下: