pmway 发表于 2015-9-18 15:52:00

ActiveReports8中,区域报表中的Picture如何绑定数据源?

我的需求:
针对订单,希望在订单的明细中输出产品的图片。所以需要在Details组中,设置图片控件,并绑定图片。我的图片是一个URL地址的格式。目前你们的图片的数据源,可以通过DataField来指定,也可以设置固定的图片。但我没弄清楚DataField应该指定什么内容。请指教,谢谢。

frank.zhang 发表于 2015-9-18 17:19:00

您好,
经过验证,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的方式,我需要验证一下给您反馈。

pmway 发表于 2015-9-18 17:31:00

明细是根据订单的产品数量而决定输出的,是动态的,如果单个图片可以这样处理。但在details中的图片控件这样就没法处理了。

frank.zhang 发表于 2015-9-21 14:10:00

您好,
根据电话沟通的结果,建议将图片路径,放到一个TextBox里面,然后再Detail Format中处理。

pmway 发表于 2015-9-21 15:47:00

封装了一下,作成通用的,供其它朋友参照吧,大家一同把这个控件用好。

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;
}

frank.zhang 发表于 2015-9-21 17:43:00

感谢您解决问题后对我们反馈,给您分发2000 金币。可以用于兑换论坛奖品。
金币规则:点击进入
礼品列表:点击进入
页: [1]
查看完整版本: ActiveReports8中,区域报表中的Picture如何绑定数据源?