如何在不下载的情况下通过URL将SSRS报告呈现为图像

时间:2012-11-09 18:05:55

标签: reporting-services sql-server-2012 ssrs-2012

借助SSRS,我们能够直接通过URL执行报告,甚至可以以特定格式导出报告。我有一个报告设置,我试图导出为图像,这完全有效。

e.g:

http://myserver/ReportServer?http://myserver/DynamicImageTest.rdl&Keyword=test&rs:Command=Render&rs:Format=IMAGE&rc:OutputFormat=PNG

但是,由于SSRS设置标题Content-Disposition: attachment,我的浏览器始终会下载图片,而不是内联显示。

我正在尝试将生成的图像嵌入到其他位置,因此我需要能够删除或抑制此行为。

任何方法都可以使用SSRS内置的URL参数或某些解决方法,或者我是否需要通过Web服务运行报告来执行此操作?

2 个答案:

答案 0 :(得分:2)

此解决方案适用于我,但仍然存在图形/趋势的渲染问题:

您需要使用javascript:

在html页面中嵌入您的请求
function updateImage()
 {
    if(newImage.complete) {    
    newImage = new Image();
    newImage.src = "http://server/Reportserver/?%2path%2ftestIMAGE&rs:Command=Render&Refdata=529&rc:Toolbar=false&time=" + new Date() +"&rs:Format=IMAGE&rc:OutputFormat=PNG";
    document.getElementById('updatebkg').style.backgroundImage = newImage.src ;
    }
}

然后您将html页面上传到您的SSRS门户网站,就像任何rdl文件一样。 最后,您要求通过reportsserver acces(而非报告)呈现您的html页面:

http://server/Reportserver/?%2fpath%2ftesthtml&rs:Command=GetResourceContents

答案 1 :(得分:1)

我认为没有办法直接在SSRS中更改这些标头。您需要编写自己的服务来获取内容并将其与正确的标头一起发送。幸运的是,写这项服务将是pretty straightforward

我很高兴得知我错了。如果有一种方法可以改变它,它在SSRS配置中隐藏得很深。