在远程模式下使用VS2010中的Asp.net Report Viewer,我们需要允许用户使用报表查看器上的默认控件在运行报表之前输入参数。
由于需要在数据上设置权限,我们在所有报告上都有一个UserId隐藏参数,计划是允许用户正常输入参数,然后我们将[编程]添加userId参数。报告运行。
然后,报告中的数据将返回用户有权查看的数据。
[我们使用SSRS网络服务填充树视图,其中包含可供用户选择的可用报告列表。]
我想我遇到了最糟糕的问题。我需要将userId参数值传递给ReportViewer而不是服务器报告。
我知道您可以使用Web服务完全控制控件之外的参数,但它不是我们的选项。
总结如下:
用户在报告查看器中选择参数。 代码隐藏在报告运行时添加UserId参数值,或者在加载报告时最初添加UserId参数值,并且查看器将所有参数传递给服务器。
我很感激你能给予的任何帮助。
利安
答案 0 :(得分:2)
找到了答案,之后很简单并且可能没有证明这个问题的合理性,但这是因为任何人都像我昨天一样以低波特率运行。
将以下事件添加到报告查看器
onsubmittingparametervalues="Viewer_SubmittingParameters"
并在处理程序
中 protected void Viewer_SubmittingParameters(object sender, ReportParametersEventArgs e)
{
Microsoft.Reporting.WebForms.ReportParameter userIdParameter =
new Microsoft.Reporting.WebForms.ReportParameter();
userIdParameter.Name = "UserId";
userIdParameter.Values.Add(this.Username etc);
// Add to existing parameters
e.Parameters.Add(userIdParameter);
}
利安