1

使用 SSRS,我们可以通过 URL 直接执行报告,甚至以特定格式导出报告。我已经设置了一个报告,我试图将其导出为图像,效果很好。

例如:

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

但是,因为 SSRS 设置了 header Content-Disposition: attachment,所以我的浏览器总是下载图像,而不是内联显示它。

我正在尝试将生成的图像嵌入到其他地方,所以我需要能够删除或抑制这种行为。

有什么方法可以做到这一点,要么使用 SSRS 的内置 URL 参数或一些解决方法,还是我需要通过 Web 服务运行报告来执行此操作?

4

2 回答 2

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 ;
    }
}

然后像任何 rdl 文件一样将 html 页面上传到 SSRS 门户。最后,您要求通过报告服务器访问(不是报告)呈现您的 html 页面:

http://server/Reportserver/?%2fpath%2ftesthtml&rs:Command=GetResourceContents
于 2016-11-04T17:01:45.183 回答
1

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

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

于 2012-11-09T20:38:34.070 回答