0

我正在尝试创建一个简单的概念验证应用程序,该应用程序使用自定义界面进行参数选择,然后将这些参数传递给 SharePoint 2010 上托管的 SSRS 报告。我希望报告位于同一页面上,所以我里面有<IFRAME>。对于这个 POC,我所做的只是通过一个简单的文本字段收集一个项目 UPC——最终我将使用一些 JavaScript 代码来完成一些更高级的事情,比如验证,但现在我只想让参数传递工作。(我知道我可以通过将其编写为 .NET 应用程序并使用报表查看器控件来做到这一点,但我希望尽可能避免使用任何托管代码以使事情变得更简单。)

如果我在查询字符串中使用 UPC 参数动态构建 URL 并设置<IFRAME>'src属性,一切正常。但是,我更喜欢使用 POST,这样我就可以避免 URL 变得太长的任何问题。基于这个 SO Question,这是我的代码:

function generateReport() {
    var frame = $("#report-viewer"),
        URL = $("#URL-field").val();

    var form = $('<form method="post" target="report-viewer" action="http://pigcentral/_vti_bin/reportserver?http://[link to report .rdl]"></form>');
    form.append('<input type="hidden" name="rs:Command" value="Render" />');
    form.append('<input type="hidden" name="rc:LinkTarget" value="main" />');
    form.append('<input type="hidden" name="rs:Format" value="HTML4.0" />');
    form.append('<input type="hidden" name="rs:Parameters" value="false" />');

    var URLField = $('<input type="hidden" name="URL" />');
    URLField.val(URL);

    form.append(URLField);

    $("#hidden-form").append(form);
    form.submit();
    $("#hidden-form").empty();
    frame.show();
}

当我触发 POST 时,报告查看器显示在 中<IFRAME>,但有一条错误消息:

错误:有关此错误的详细信息,请导航到本地服务器计算机上的报表服务器,或启用远程错误。

我为托管报告的站点(也恰好是我托管此页面的站点)打开了远程错误,但没有得到任何进一步的信息。

任何人都知道为什么这不起作用,或者至少我可以去哪里获取有关该错误的更多信息?谢谢!

4

1 回答 1

0

这很酷,从来没有想过这样做。从来没有尝试过使用 javascript 到 html,但我知道我在一本书中有一个例子,我在表单中使用了一个“选择”元素,里面有一个“选项”元素。HTML 结构可能存在问题。您可以先手动创建 HTML 并在执行 javascript 之前尝试它并确保它按设计工作吗?

我确实知道在我尝试过的实验室中,它确实可以改变价值观。我假设您可以使用 javascript 生成 html 并执行此操作,但我不确定。我从 Brian Larson 的书“Microsoft SQL Server 2008 Reporting Services”中获得了这个,删节:

< form id="frmRender" action=" (link to report location on reportservice)" method="post" target="self">
< select ID="rs:Format" Name="rs:Format" size=1>
 < option value="HTML4.0">HTML 4</option>
< option value="Image">TIff Image</option>
< /select>
< /form>
于 2013-08-13T23:14:52.150 回答