水晶报表参数问题,请大家帮忙看看,谢谢!
我在设计时用了参数,暂且说有两个吧,一个姓名【name】,一个编号【number】,我是想通过主窗体得textBox编辑框输入值来打印信息,有个【预览】和【打印】两个按钮。crystalReportViewer1在另外得一个窗体里,通过调用来传参数。我得代码是这样的:
//声明变量
ReportForm rptForm = new ReportForm();
private rptGYQZPage2 crReportDocument2 = new rptGYQZPage2();
private ParameterFields crParameterFields2;
private ParameterField crParameterField2;
private ParameterValues crParameterValues2;
private ParameterDiscreteValue crParameterDiscreteValue2;
//获取参数值
private void Value2ReportPage2()
{
rptForm.crystalReportViewer1.ReportSource = crReportDocument2;
crParameterFields2 = rptForm.crystalReportViewer1.ParameterFieldInfo;
crParameterField2 = crParameterFields2["G_FWGYQRen"];
crParameterValues2 = crParameterField2.CurrentValues;
crParameterDiscreteValue2 = new ParameterDiscreteValue();
crParameterDiscreteValue2.Value = txtName1.Text.Trim();
crParameterValues2.Add(crParameterDiscreteValue2);
crParameterField2 = crParameterFields2["G_FWSYQZCZRen"];
crParameterValues2 = crParameterField2.CurrentValues;
crParameterDiscreteValue2 = new ParameterDiscreteValue();
crParameterDiscreteValue2.Value = txtName2.Text.Trim();
crParameterValues2.Add(crParameterDiscreteValue2);
}
//预览
private void btnPage2Preview_Click(object sender, System.EventArgs e)
{
Value2ReportPage2();
rptForm.Show();
}
//直接打印
private void btnPage2Print_Click(object sender, System.EventArgs e)
{
Value2ReportPage2();
rptForm2.crystalReportViewer1.PrintReport();
}
问题是:
1)单击【预览】,没问题,参数值也是对的,但是,若此时退出,再单击【打印】按钮,则会报告出错,出错信息是这样的:【未处理的"System.ArgumentOutOfRangeException"类型的异常出现再system.windows.forms.dll中 其他信息:指定的参数已超出有效的范围】
2)单击【打印】,没有问题,出现打印设置对话框,若此时取消,退出,再次单击【打印】,还是对的,没有问题,打印的内容也是对的。但是若取消打印后单击【预览】按钮,则又会出现同样的瓦那体,出错信息描述如上
3)单击【预览】按钮,没问题,放弃退出后若单击【打印】按钮,则也会出现如上错误信息
初步判断可能是参数是Add的,只有两个参数,退出后再Add,所以超界,但是我不晓得怎么解决。请大家帮帮忙,谢谢啦!(不知道我的问题我说清楚了没有,麻烦大家了)