我有一个标题图片,需要在多个报告的标题中重复。我知道您可以将图像添加到报表并指向图像文件所在的路径,例如file://C:\path\to\Reports\Images\logo.gif
,但该路径可以并且将在部署应用程序时更改。
我尝试使用相对路径(假设报告位于Reports/
文件夹中)Images/logo.gif
(或Images\logo.gif
),但这只会在设计器中产生损坏的图像在实际输出上。我的语法不正确吗?如果没有,有没有办法做这样的事情?
编辑:我也知道将图像嵌入到报表中,但是此图像需要嵌入到每个报表中,如果需要更改,则必须在每个报表中单独更改。
答案 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中描述了我们最终做的事情。我们认为这是一个很好的解决方案,即使这条路径现在也是硬编码的。