将变量作为参数传递给ssrs报告

时间:2013-08-16 06:04:32

标签: reporting-services parameters

我正在尝试将经典asp页面中的变量传递给ssrs。当我为参数输入文字值时,例如296,它可以正常工作。但我想放入一个由URL发送的变量,以便它以不同的方式为不同的登录人员工作。因此,而不是http://servername.net/reportserver....rs:Command=Render&Agency=296的URL(对于编号为296的代理商) )我想使用我已经设置的人员代理的变量。让我们说变量是pAgency。我已经尝试过Agency =“@pAgency(我将pAgency =设置为登录的人的代理商)和各种其他组合,并搜索了网络,但没有找到答案。我甚至尝试了会话变量但是,没有你必须能做到这一点但是......

感谢您提供任何帮助。干杯!

1 个答案:

答案 0 :(得分:0)

根据我的知识,这不是休息URI的工作方式。您需要构建字符串并首先完全形成它,而不是在其上定义变量。你可以在代码中做某些事情(使用HTML Form作为基础)

在下面的例子中,有四个明确的事情要理解:

一个。表单中的“操作”必须是报表的Web服务位置,并自行发布。 (或者你可以做一个iframe元素,但我并没有那么多)

B中。 'input'元素是基于文本的,但你必须将id和name与传入参数的名称相匹配。

℃。 'select'元素为用户提供了保存方法选项,可以直接输出到常见类型。

d。 “提交”类型的“输入”确保表单将使用规定的数据发布到自身。

<!DOCTYPE HTML>
<html>
    <head>
        <title>SSRS Tester</title>
    </head>
    <body>
        <form id="SSRSRender" action="http:// (reportservername)/ReportServer?/(pathtoreport)" method="post" target="_self">
            <H3>Enter some detail for the report to render</H3>
            My Variable 'Test': <input type="text" id="Test" name="Test">
            <br/>
            My outputs:
            <select ID="rs:format" name="rs:format" size=1>
                <option value="HTML4.0">HTML 4</option>
                <option value="IMAGE">Tiff Image</option>
                <option value="PDF">PDF</option>
            </select>
            <br/>
            <input type="submit" value="Render Report">
        </form>
    </body>
</html>

如果您想要更多类型的输入变量来动态地使SSRS在SSRS登录页面之外呈现,您需要确定是否要使用:

  1. 带有一些前端的服务,脚本如javascript with HTML
  2. 更容易控制的东西是预先构建的工具,如使用ASP.NET的“Report Viewer”或使用C#或VB.NET的客户端应用程序
  3. 在类库中自己创建服务代理,并直接在代码中执行调用以及格式化
  4. 尝试以编程方式创建休息URI最好通过联系服务并使用内置方法IMHO而不是尝试创建字符串来完成。这可能是一个学习曲线,但它最终会帮助你。