我正在尝试创建一个简单的概念验证应用程序,该应用程序使用自定义界面进行参数选择,然后将这些参数传递给 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>
,但有一条错误消息:
错误:有关此错误的详细信息,请导航到本地服务器计算机上的报表服务器,或启用远程错误。
我为托管报告的站点(也恰好是我托管此页面的站点)打开了远程错误,但没有得到任何进一步的信息。
任何人都知道为什么这不起作用,或者至少我可以去哪里获取有关该错误的更多信息?谢谢!