在远程模式下使用 VS2010 中的 Asp.net 报表查看器,我们需要允许用户在运行报表之前使用报表查看器上的默认控件输入参数。
由于需要对数据设置权限,我们在所有报告中都有一个 UserId 隐藏参数,计划是允许用户正常输入参数,然后我们将 [以编程方式] 在报告运行。
报表中的数据将返回用户有权查看的数据。
[我们使用 SSRS 网络服务来填充 TreeView ,其中包含可供用户选择的可用报告列表。]
我想我不知道什么是最好的方法。我需要将 userId 参数值传递给 ReportViewer 而不是传递给服务器报告。
我知道您可以使用网络服务来管理完全不受控制的参数,但目前我们不适合。
总结一下:
用户在报告查看器中选择参数。 代码隐藏在报表运行时或最初加载时添加 UserId 参数值,查看器将所有参数传递给服务器。
如果您能提供任何帮助,我将不胜感激。
利亚姆
最佳答案
找到答案,之后很简单,也许没有证明问题的合理性,但这里是为了防止有人像我昨天一样以低波特率运行。
将以下事件添加到报表查看器
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);
}
利亚姆
关于c# - 向 ASP.Net ReportViewer 添加额外的 userId 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5556809/