ActiveReports:展示数据库中以路径形式存储的图片

发布时间:2014/08/25 00:08 发布者:iceman

返回博客中心

 

图片在报表中扮演着举足轻重的作用,可以使报表更加直观的展示。通常 区域报表 中使用 Picture 控件通过绝对或者相对路径来展示图片。或者,图片可以存储在数据库中,在设置数据源时直接把字段名称设置给Picture控件的DataField属性。设置后数据库中的图片信息将自动展示在 Picture 控件中。

但是,上述方法不适用于直接存储图片路径(本地路径或者HTTP路径)到数据库形式,本文即将阐述这种形式的图片赋值方法,下面是本文示例展示的效果图:

Images

 

实现方法

正如前文所提,图片路径可以是本地路径或者是HTTP路径。本地路径可以使用Picture控件展示。HTTP路径图片可以使用 RichTextBox 控件展示。但是和直接存储图片到数据库中不同的是,我们无法直接设置控件的 DataField 属性来实现图片的展示。

实现方法如下

我们可以放置textbox控件到报表中,并设置它的Visibility属性为false。该TextBox的DataField属性将设置为图片所在的字段名称。同时,我们可以从TextBox中获取图片的路径,进而展示图片到Picture控件或 RichTextBox 控件中。代码如下:

private void SectionReport1_ReportStart_1(object sender, EventArgs e)
{
   OleDBDataSource _oleConn = new OleDBDataSource();
   _oleConn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\..\ImagePath.mdb;Persist Security Info=False";
   _oleConn.SQL = "Select * from ImageTable";
   this.DataSource = _oleConn;
}
  
private void Detail_Format(object sender, EventArgs e)
{
   //Local Images
   string localPath = txtLocalPath1.Text.Replace("#", "");
   Picture1.Image = System.Drawing.Image.FromFile(localPath);
   //HTTP Images
   string linkURL = txtHttpPath1.Text.Replace("#", "");
   RichTextBox1.Html = "<img src='" + linkURL + "'></img>";
}

 

示例代码:VS2010 + .NET 4.0 + AR8.0 SP1 + C#


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网