【问题标题】:ASP.NET ReportViewer Parameter Prompt doesn't showASP.NET ReportViewer 参数提示不显示
【发布时间】:2012-12-01 10:19:39
【问题描述】:

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

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

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

编辑:这是用于本地处理。

【问题讨论】:

标签: asp.net parameters report reportviewer prompt


【解决方案1】:

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

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

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

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

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

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。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 是的,我知道,不过谢谢。这基本上就是我现在正在做的,用于参数和数据过滤。
    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    相关资源
    最近更新 更多