rdlc REPORTPARAMETER INT,报告未出现

时间:2013-03-20 17:19:21

标签: c# rdlc

我写过这个程序:

   alter proc rel_geralAC (@emite int, @mes char, @ano varchar(4) )as
   select Total_Mun = COUNT(xMunIni),xMunIni ,
   UF = MAX(UFIni) ,Valor_Total = SUM(CAST(vTPrest AS MONEY) ) 
   from CTRC where EMITENTE= @emite   and
   MONTH(emissaodata)=@mes and status = 'A' 
   and YEAR (EMISSAODATA)= CONVERT (int,@ano) 
   group by xMunIni order by UF,xMunIni 

这个proc返回一个非空的表,我用它创建一个数据集来填充C#中的rdlc报告       数据集返回信息        enter image description here

我在报告数据中声明了参数

enter image description here

这是reportviewer的代码:

 ReportParameter[] p = new ReportParameter[3];
     p[0] = new ReportParameter("emite",EEmit.ToString());
     p[1] = new ReportParameter("mes", emes.ToString());
     p[2] = new ReportParameter("ano", eano.ToString());
     reportViewer1.LocalReport.SetParameters(p);
     this.rel_geralACTableAdapter.Fill(this.ifdcontroladoria3DataSet.rel_geralAC,EEmit,emes,eano);
     this.reportViewer1.RefreshReport();

为什么报告没有显示任何内容?感谢。


我删除了数据集并再次构建,创建了3个参数,如文本,如果我选择整数,查询不起作用,报表参数只接受字符串,但参数可能是

文本,boolen,日期/时间,整型,浮点型。

2 个答案:

答案 0 :(得分:2)

//你错过了一行:

reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p });

//由于您要将参数添加到参数数组中,因此可以将参数数组放在//参数集类中。

//我通常会

ReportParameter rp = new ReportParameter("ParameterName", "yourtextvalue.text", false);

//repeat again (rp2, rp3, rp4 etc...)

//然后调用最后一个语句

reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp, rp2, rp3, rp4 });

答案 1 :(得分:0)

您必须为“定义所有参数”添加“false”,例如:

p[0] = new ReportParameter("emite",EEmit.ToString(),false);