ActiveReports8中,区域报表中的Picture如何绑定数据源?
我的需求:针对订单,希望在订单的明细中输出产品的图片。所以需要在Details组中,设置图片控件,并绑定图片。我的图片是一个URL地址的格式。目前你们的图片的数据源,可以通过DataField来指定,也可以设置固定的图片。但我没弄清楚DataField应该指定什么内容。请指教,谢谢。 您好,
经过验证,picture的使用方式可以参考以下代码:
private void detail_Format(object sender, System.EventArgs eArgs)
{
this.picture1.BackColor = System.Drawing.Color.Transparent;
this.picture1.HyperLink = "mailto:support@company.com";
this.picture1.Image = System.Drawing.Image.FromFile("\\mycompany.gif");
this.picture1.LineColor = System.Drawing.Color.Navy;
this.picture1.LineStyle = LineStyle.Solid;
this.picture1.LineWeight = 2.0f;
this.picture1.PictureAlignment = PictureAlignment.Center;
this.picture1.SizeMode = SizeModes.Clip;
}
直接使用URL的方式,我需要验证一下给您反馈。 明细是根据订单的产品数量而决定输出的,是动态的,如果单个图片可以这样处理。但在details中的图片控件这样就没法处理了。 您好,
根据电话沟通的结果,建议将图片路径,放到一个TextBox里面,然后再Detail Format中处理。 封装了一下,作成通用的,供其它朋友参照吧,大家一同把这个控件用好。
public void Detail_Format()
{
//绑定产品图片
BindPicture(this.Pic_ProductLogo,this.hidden_ProductLogo_URL);
}
/// <summary>
/// 绑定图片
/// </summary>
///<param name="pic">Picture对象,用于显示图片</param>
///<param name="hiddenControl">隐藏域对象,用于绑定图片的路径,以间接实现显示图片</param>
/// <returns></returns>
public void BindPicture(GrapeCity.ActiveReports.SectionReportModel.Picture pic,
GrapeCity.ActiveReports.SectionReportModel.TextBox hiddenControl)
{
pic.Image = null;
string fileURL = string.Empty;
try
{
fileURL = hiddenControl.Value.ToString();
}
catch
{
}
if(string.IsNullOrEmpty(fileURL))
{
return;
}
System.IO.Stream stream = GetStreamFromURL(fileURL);
if (stream == null)
{
return;
}
pic.Image = System.Drawing.Image.FromStream(stream);
//释放资源
try
{
if(stream != null)
{
stream.Close();
}
}
catch
{
}
}
/// <summary>
/// 得到图片流
/// </summary>
/// <param name="picURL">图片URL</param>
/// <returns></returns>
public System.IO.Stream GetStreamFromURL(string picURL)
{
if(string.IsNullOrEmpty(picURL))
{
return null;
}
System.Net.WebResponse response = null;
System.IO.Stream stream = null;
try
{
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(picURL);
response = request.GetResponse();
stream = response.GetResponseStream();
}
catch
{
}
return stream;
} 感谢您解决问题后对我们反馈,给您分发2000 金币。可以用于兑换论坛奖品。
金币规则:点击进入
礼品列表:点击进入
页:
[1]