【问题标题】:SSRS in Visual Studio 2008: Relative image paths?Visual Studio 2008 中的 SSRS:相对图像路径?
【发布时间】:2009-01-20 17:01:09
【问题描述】:

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

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

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

【问题讨论】:

  • 什么类型的报告?水晶?
  • SQL Reporting Services,我想它叫什么?您可以在 Visual Studio 中制作的另一种非水晶报表。

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


【解决方案1】:

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

因此,您将拥有一张带有图片的表格:

record1 otherdata image1.gif
record2 otherdata image2.gif

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

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

【讨论】:

  • 对不起,我澄清了我的问题。图片不是报告数据的一部分;它只是标题中的一个徽标。
  • 好的,但是不能还是把路径存入数据库吗?那么当报表重新生成时,会检查并使用当前实例的路径吗?但是,由于我不使用 SQL 报告服务,我不知道它是如何工作的。
【解决方案2】:

我们有动态标题徽标。我们只是将图像存储在数据库中,这样更容易。徽标足够小,不会对性能造成太大影响。

图像控件上的图像属性:

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

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

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

【讨论】:

    【解决方案3】:

    this blog post 中描述了我们最终所做的事情。我们认为这是一个足够好的解决方案,即使路径目前是硬编码的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      相关资源
      最近更新 更多