读书人

水晶报表,quot;参数不正确quot;该如何处理

发布时间: 2012-01-19 20:57:58 作者: rapoo

水晶报表,"参数不正确"
string[] fieldArray;
ParameterFields pfs = new ParameterFields();
fieldArray = DynamicPrint.fieldStr.Split( ', ');
SqlConnection con = DBT.CreateConnection();
con.Open();
SqlDataAdapter sda = new SqlDataAdapter( "select " + DynamicPrint.fieldStr + " from _Test ", con);
DataSet ds = new DataSet();
sda.Fill(ds, "_Test ");
CrystalReport3 cr = new CrystalReport3();
for (int i = 0; i < fieldArray.Length; i++)
{
ParameterField pf = new ParameterField();
pf.Name = "t " + Convert.ToString(i + 1);
ParameterDiscreteValue pdv = new ParameterDiscreteValue();
pdv.Value = fieldArray[i];
pf.CurrentValues.Add(pdv);
pfs.Add(pf);
string myStr = " ";
myStr = "tt " + Convert.ToString(i + 1);
cr.DataDefinition.FormulaFields[myStr].Text = "{_Test. " + fieldArray[i] + "} ";

}
crystalReportViewer1.ParameterFieldInfo = pfs;
cr.SetDataSource(ds.Tables[ "_Test "]);
crystalReportViewer1.ReportSource = cr;



[解决办法]
你的行境是怎么的,信息是什么,要不人怎么你去查呀.
[解决办法]
如下代码是正确的代码,这里使用的是调用rpt文件,rpt连接sp,传递parameters,就可以了。
this.reportDocument1.FileName = frmMain.getAppPath() + "\\report\\SalesQuotation.rpt ";

ParameterField paramPrinter = new ParameterField();
paramPrinter.ParameterFieldName = "@specnum ParameterDiscreteValue paramValue = new ParameterDiscreteValue();
paramValue.Value = "QI-800-L-A0002 "; //this.specnum;
paramPrinter.CurrentValues.Add(paramValue);
ParameterFields ParamFields = new ParameterFields();
ParamFields.Add(paramPrinter);
crystalReportViewer1.ParameterFieldInfo = ParamFields;

this.crystalReportViewer1.ReportSource = reportDocument1;
this.crystalReportViewer1.Show();
[解决办法]
因为报表的参数和程序传进去的参数不一致

请仔细检查比对

读书人网 >C#

热点推荐