Parameter an ReportViewer Control übergeben
11. Juni 2009 von Hendrik Schreiber
Es geht hierbei darum, dass Parameter aus einer Anwendung (ASP.NET/VB.NET) an einen auf dem Reporting-Server gerenderten Bericht zu übergeben. Der Reporting-Server wird dabei über das ReportViewer-Control angesprochen.
Das Erste was getan werden muss ist, alle Parameter im Report selbst anzulegen. Dabei werden die Parameter im Report nicht als “hidden” sondern als “prompt” deklariert sind. Auch ein Standardwert kann vergeben werden. Ansonsten kommt es zu dem Fehler:
The report parameter ‘UserID’ is read-only and cannot be modified. (rsReadOnlyReportParameter)
Mit dem Folgenden Code werden zwei Parameter an der ReportViewer-Control übergeben und damit an den Report weitergeleitet:
ReportParameter[] parameters = new ReportParameter[2]; parameters[0] = new ReportParameter("Name", Name.ToString()); parameters[1] = new ReportParameter("UserID", UserID.ToString()); parameters[0].Visible = false; parameters[1].Visible = false; reportviewer.ServerReport.SetParameters(parameters);
Die Parameter UserID und Name müssen im Report, wie oben beschrieben, angelegt worden sein. Meiner Meinung nach ist dieser Lösungsweg nicht sehr intuitiv. Es wäre logischer den Parameter als “hidden” zu deklarieren und ihn nicht erst als “prompt” zu definieren. Schließlich wird er über die Anwendung auf “hidden” gesetzt.
