通过POST将参数传递给iframe中的SSRS时出错

时间:2013-08-13 14:44:38

标签: javascript sharepoint reporting-services

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

如果我在查询字符串中动态构建带有UPC参数的URL并设置<IFRAME>的{​​{1}}属性,那么一切正常。但是,我更喜欢使用POST,因此我可以避免URL过长的任何问题。基于this SO Question,这是我的代码:

src

当我触发POST时,报告查看器会显示在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(); } 中,但会出现错误消息:

  
    

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

  

turned on remote errors用于托管报告的网站(这也恰好是我托管此网页的网站),但没有获得任何进一步的信息。

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

1 个答案:

答案 0 :(得分:0)

这很酷,从没想过这样做。从未尝试使用javascript到html,但我确实知道我在一本书中有一个例子,它在表单中使用了'select'元素,里面有'option'元素。 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>