0

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

谢谢你提供的所有帮助。干杯!

4

1 回答 1

0

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

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

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

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

C. '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. 带有一些前端脚本的服务,例如带有 HTML 的 javascript
  2. 更容易控制的东西是预构建的工具,例如带有 ASP.NET 的“报表查看器”或 C# 或 VB.NET 中的客户端应用程序
  3. 在类库中自己创建服务代理,并直接在代码中进行调用以及格式化

通过联系服务并使用内置方法恕我直言,而不是尝试制作字符串,尝试以编程方式创建休息 URI 更好。这可能是一个学习曲线,但它最终会帮助你。

于 2013-08-16T18:15:03.790 回答