Visual Studio 2008中的SSRS:相对图像路径?

时间:2009-01-20 17:01:09

标签: visual-studio visual-studio-2008 reporting-services report

我有一个标题图片,需要在多个报告的标题中重复。我知道您可以将图像添加到报表并指向图像文件所在的路径,例如file://C:\path\to\Reports\Images\logo.gif,但该路径可以并且将在部署应用程序时更改。

我尝试使用相对路径(假设报告位于Reports/文件夹中)Images/logo.gif(或Images\logo.gif),但这只会在设计器中产生损坏的图像在实际输出上。我的语法不正确吗?如果没有,有没有办法做这样的事情?

编辑:我也知道将图像嵌入到报表中,但是此图像需要嵌入到每个报表中,如果需要更改,则必须在每个报表中单独更改。

3 个答案:

答案 0 :(得分:1)

将路径存储在数据库的变量中,并仅保留表中每个图像的字段名称。在运行您的应用程序时将它们组合在一起。

所以,你将有一张图片表:

record1 otherdata image1.gif
record2 otherdata image2.gif

和另一个包含系统变量的表,包括

imagepath  c:\path\to\reports\images\

答案 1 :(得分:0)

我们有动态标题徽标。我们只是将图像存储在数据库中,这种方式更容易。这些徽标足够小,不会造成很大的性能损失。

Image控件上的Image属性:

=First(Fields!BlobData.Value, "spimGetReportImg")

spimGetReportImg数据集只调用我们用来获取正确图像的存储过程。 IE:

CREATE PROCEDURE [dbo].[spimGetReportImg]
@pk
AS 
BEGIN
SET NOCOUNT ON
SELECT b.BlobData
FROM   dbo.tblBlob b
WHERE  pkBlob = @pk

答案 2 :(得分:0)

this blog post中描述了我们最终做的事情。我们认为这是一个很好的解决方案,即使这条路径现在也是硬编码的。