0

几天来,我一直在寻找这个答案,并且我得到了一些信息,这些信息使您似乎可以让 ReportViewer Control 自动提示输入报告的参数。只是我尝试并发现的所有东西似乎都不起作用。我已经获得了在 Windows 窗体上工作的参数提示,但我无法让它在 ASP.NET 中工作

我想我只是在问你能让报表查看器的参数提示在 ASP.NET 中工作吗?如果是这样,如何?

我知道您可以手动完成,只是,我觉得如果您可以自动制作 ReportViewer Prompt 为什么要自己编程呢?

编辑:这是用于本地处理顺便说一句。

4

2 回答 2

4

本地处理模式不支持提示输入参数。

在通过单击该对话框上的帮助按钮调用的文章Report Parameters Dialog Box (Visual Studio Report Designer)中,它在介绍性文本中说:

您在“报告参数”对话框中指定的参数属性将成为报告定义的一部分。某些属性仅供编程使用。与在远程报表服务器上处理的报表相比,本地处理的报表没有用于选择或键入参数值的参数输入区域。

一个小测试告诉我,将使用为参数指定的默认值,除非您以编程方式修改它们。我找不到关于这个设计决定的解释。如果您想使用本地处理并提示用户输入,我建议您遵循以下解决方案:

如果您将报告嵌入到ReportViewer 控件中,您可以将其放在页面或表单上,并将自定义输入控件添加到该页面或表单以收集报告参数。在代码隐藏文件中,您将使用如下代码传递参数值:

List<ReportParameter> parameterList = new List<ReportParameter>();
List<string> selectedProductTypes = listboxProductTypes.GetSelectedValues();
ReportParameter productTypes = new ReportParameter("ProductTypes", selectedProductTypes.ToArray(), false);
ReportParameter username = new ReportParameter("Username", "<current user>", false);
parameterList.Add(productTypes);
parameterList.Add(username);
reportViewer.LocalReport.SetParameters(parameterList);

在此示例中,您可以看到如何传递多值参数,其值取自多选 ListBox。

于 2012-10-11T09:16:46.300 回答
2

您还可以创建一个页面,该页面具有收集参数输入的控件,将它们放入一组会话变量中,然后传输到具有报表查看器的页面。

使用对象数据源并将参数源设置为会话。

您需要编写的唯一代码是填充会话变量。

于 2012-12-01T02:00:33.653 回答