0

我写了这个程序:

   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 

这个过程返回一个不为空的表,我用它来创建一个数据集来填充 C# 中的 rdlc 报告数据集返回信息 在此处输入图像描述

我已经在报表数据中声明了参数

在此处输入图像描述

这是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个参数,如果我选择整数,查询不起作用,报告参数只接受字符串,但参数可能是

文本、布尔值、日期/时间、整数、浮点数。

4

2 回答 2

2

//你少了一行:

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

//由于您将参数添加到参数数组中,您可以将参数数组放在 //set parameters 类中。

//我通常会

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

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

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

reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp, rp2, rp3, rp4 });
于 2013-08-02T20:09:20.770 回答
0

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

p[0] = new ReportParameter("emite",EEmit.ToString(),false);
于 2013-04-27T09:28:27.057 回答