RDLC 文档调用外部图片问题

以下为MSDN中对报表调用图像的描述
====
向报表中添加图像(Visual Studio 报表设计器)

图像是一种包含对存储在报表服务器上、嵌入在报表中或存储在数据库中的图像的引用的报表项。图像可以是报表中显示一次的徽标或图片,也可以是数据行中重复显示的图片。还可以将图像用作某些报表项的背景。您可以从以下来源获取图像:

  • 数据库

  • 外部文件共享区或网站

  • 在本地嵌入到报表中的图像

无法使用已经添加到项目的图像文件。

数据绑定的图像可以由数据库中存储的二进制数据来显示。例如,在产品列表中产品名称旁边显示的图片就属于数据库图像。

外部图像是由指向图像文件的 URL 指定的。外部图像适用于在多个报表或网页间共享的徽标和静态图片。

本地报表图像先嵌入在报表中,然后再被引用。图像数据存储在报表定义中,不作为单独的文件存在。嵌入图像可确保图像始终可用于报表,但嵌入图像不能共享。嵌入图像会增大报表定义文件的大小。嵌入图像时,报表设计器会对该图像进行 MIME 编码,然后以文本形式将其存储在报表定义中。

如何向报表添加嵌入图像

  1. 在图形设计模式下打开客户端报表定义 (.rdlc) 文件。

  2. 从“报表”菜单中,选择“嵌入图像”,然后添加要在报表中使用的所有图像。如果“报表”菜单不可用,请在报表设计区域内单击。

  3. 将图像控件从工具箱拖到报表布局。必须使用用于 ReportViewer 报表的图像控件。

  4. 在 Visual Studio 中选择图像,然后打开“属性”窗口。

  5. Source 设置为 Embedded

  6. Value 设置为嵌入在报表定义中的某个图像。可以从下拉列表中选择要使用的图像。

在报表中使用外部图像或数据库图像

若要使用数据库图像,在 MIME 类型为 JPG、PNG 或 BMP 时,可以指定包含图像的数据库字段。如果图像是以二进制对象形式存储的,则必须编写一个表达式,将图像转换为支持的类型。

默认情况下,不支持在 ReportViewer 报表中使用外部图像。若要使用外部图像,必须在代码中设置 EnableExternalImages 属性。根据您的网络配置,您可能还需要跳过代理设置,以允许显示外部图像。您可将下列设置添加到 Web.config 文件中,以跳过本地代理。在修改 Web.config 文件时,务必要指定网络中使用的代理服务器的名称:

<system.net>

<defaultProxy>

<proxy usesystemdefault = "false"

bypassonlocal = "true"

proxyaddress = "http://< 代理服务器名称 >:80/" />

<defaultProxy>

</system.net>

背景图像

您可以将图像用作表体或矩形、文本框、列表、矩阵或表的背景图像。背景图像与图像具有相同的属性。您还可以指定如何重复图像来填充项的背景。

注意

如果为表体定义背景图像,但不为页眉或页脚定义背景图像,HTML 报表将自动在报表的所有三个区域内使用相同的背景图像。如果不想在页眉或页脚中使用背景图像,则必须为这些区域显式定义不同的图像。如果不希望在这些区域中显示任何图像,则可创建一个小的透明图像并将它指定给页眉或页脚,以形成根本没有图像的效果。

若要添加背景图像,请执行以下操作:

  1. 在图形设计模式下打开客户端报表定义 (.rdlc) 文件。

  2. 选择要为其添加背景图像的报表项。

    注意

    背景图像仅适用于矩形、文本框、表、矩阵、列表或表体等项。

  3. 在“属性”窗口中,展开 BackgroundImage,然后执行以下操作:

    • 对于 Source,选择 ExternalEmbeddedDatabase

      注意

      若要使用项目中的图像,请选择 External

    • 对于 Value,键入或选择一个计算结果为图像来源的表达式。

      如果 Source 属性设置为 External,则表达式的计算结果必须是图像的有效路径。此路径可以是驻留在报表服务器上的图像的静态路径,也可以是基于某个字段的路径。如果图像存储在项目中,则键入该图像在项目中显示的名称。

      如果 Source 属性设置为 Embedded,则表达式的计算结果必须是嵌入到报表中的图像的名称。如果 Source 属性设置为 Database,则表达式的计算结果必须是包含二进制图像数据的字段。

    • 对于 MIMEType,为图像选择适当的 MIME 类型。

      注意

      只有将 Source 属性设置为 Database 时,MIMEType 才适用。如果 Source 属性设置为 ExternalEmbedded,则忽略 MIMEType 的值。

对于 BackgroundRepeat,选择 RepeatNoRepeatRepeatXRepeatY

==============

实际操作过程:


1. 添加固定图片(嵌入式图片)

选择一个RDLC报表文件,选择菜单栏中的报表-->嵌入图像-->新建图像(从本地选择一个图片)-->确定选中
从工具栏拖动一个Image控件(图像)到RDLC,设置Source属性为Embedded,Value属性为刚才添加的图    片名称即可

2. 动态加载图片(根据图片路径)
2.1 菜单-->报表-->报表参数(新增一个参数,比如名称为image1,类型为string)
2.2  拖动一个image控件到rdlc报表中,设置Source属性为External,Value属性为
=Parameters!image1.Value   (注意:这里的image1要和报表参数的名称一致)
2.3  包含报表文件的asp.net窗体
ReportViewer1.LocalReport.EnableExternalImages = true;
            ReportParameter[] image = new ReportParameter[1];
            string path = "file:///" + Server.MapPath("~") + "\\img\\bottom_w190mm_1.jpg";   //图片地址
            image[0] = new ReportParameter("btImg", path);   //image1必须和报表参数一致
            ReportViewer1.LocalReport.SetParameters(image);

注意 图片路径手动输入时,必须格式如下: 【image】 控件属性 【Value】值  =》“file:///E:\Dir\sample.jpg"



3. 图片属性
3.1 AutoSize    自动根据图片显示大小
3.2 Fit   根据图片控件的大小显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值