HY! Visual Studio 2010にフォームアプリケーションがあり、レポートビューアーを使用してレポートを作成し、いくつかのパラメーターを追加したいと考えています。コードからパラメーターを追加しようとしましたが、機能しませんでした。私はこのエラーがあります:
Tablix ‘Tablix1’のFilterExpression式は、フィールド ‘datastart’を参照します。レポートアイテム式は、現在のデータセットスコープ内のフィールド、または集計内の場合は指定されたデータセットスコープのみを参照できます。 Report2.rdlc:エラーrsParameterReference:Tablix ‘Tablix1’のFilterValue式が、存在しないレポートパラメーター ‘datastart’を参照しています。
私のコードではこれを行います:
private void SetReportParameters()
{
ReportParameter[] parameters = new ReportParameter[2];
parameters[0] = new ReportParameter("datastart", dateTimePickerStartRaport.Text);
parameters[1] = new ReportParameter("dataStop", dateTimePickerStopRaport.Text);
this.reportViewer1.LocalReport.SetParameters(parameters);
}
このメソッドを呼び出した後、レポートビューアを更新します
reportViewer1.RefreshReport();
他のフォーラムも見て、レポートにパラメーターを追加する必要があることがわかりましたが、これをどのように行う必要があるかを管理できませんでした。また、レポートのプロパティウィンドウで、値を含むいくつかのフィルターを追加しようとしました
=Parameters!datastart.Value
しかし、これもうまくいきませんでした。
表示されるエラーは、フィールドのようにパラメーターを指定しようとしたためです。式デザイナーには、「パラメーター」という特別なカテゴリーがあります。そこからパラメータにアクセスできます。構文は=Parameters![FieldName].Value
。あなたの場合、例えば=Parameters!datastart.Value
。
さらに、パラメータは[パラメータ]の[レポートデータ]ウィンドウで宣言する必要があることに注意してください。レコードセットの宣言に使用するのと同じウィンドウですが、パラメータ用の特別なカテゴリもあります。データ型にはいくつかのオプションがあり、パラメータの指定が必須かどうかも示されます。
したがって、レポート定義(rdlまたはrdlcファイル)を作成するときは、まったく同じ名前のパラメーターを追加する必要があります。したがって、あなたのケースでは、datastart
およびdataStop
パラメータを追加する必要があります。これを行うには、レポートデータウィンドウの[パラメーター]をクリックし、[新規追加]をクリックします。
これを試して:
ReportParameter PrmInvoiceNo = new ReportParameter("PrmInvoiceNo");
PrmInvoiceNo.Values.Add(this.InvNo.ToString());
this.reportViewer1.LocalReport.SetParameters(PrmInvoiceNo);