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つのパラメーターを作成しました。整数を選択すると、クエリは機能しません。レポートパラメーターは文字列のみを受け入れますが、パラメーターは次のようになります。

text、boolen、date / time、integer、float。

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 に答える