找回密码
 立即注册

QQ登录

只需一步,快速开始

pmway

中级会员

41

主题

140

帖子

945

积分

中级会员

积分
945

活字格认证

pmway
中级会员   /  发表于:2015-9-18 15:52  /   查看:5082  /  回复:5
我的需求:
针对订单,希望在订单的明细中输出产品的图片。所以需要在Details组中,设置图片控件,并绑定图片。我的图片是一个URL地址的格式。目前你们的图片的数据源,可以通过DataField来指定,也可以设置固定的图片。但我没弄清楚DataField应该指定什么内容。请指教,谢谢。

5 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-9-18 17:19:00
沙发
您好,
经过验证,picture的使用方式可以参考以下代码:
  1. private void detail_Format(object sender, System.EventArgs eArgs)
  2. {
  3.     this.picture1.BackColor = System.Drawing.Color.Transparent;
  4.     this.picture1.HyperLink = "mailto:support@company.com";
  5.     this.picture1.Image = System.Drawing.Image.FromFile("\\mycompany.gif");
  6.     this.picture1.LineColor = System.Drawing.Color.Navy;
  7.     this.picture1.LineStyle = LineStyle.Solid;
  8.     this.picture1.LineWeight = 2.0f;
  9.     this.picture1.PictureAlignment = PictureAlignment.Center;
  10.     this.picture1.SizeMode = SizeModes.Clip;
  11. }
复制代码

直接使用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
5#
封装了一下,作成通用的,供其它朋友参照吧,大家一同把这个控件用好。

public void Detail_Format()
{
    //绑定产品图片
    BindPicture(this.Pic_ProductLogo,this.hidden_ProductLogo_URL);
}

/// <summary>
/// 绑定图片
/// </summary>
///<param name="pic">icture对象,用于显示图片</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;
}

评分

参与人数 1金币 +1998 收起 理由
frank.zhang + 1998 反馈

查看全部评分

回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-9-21 17:43:00
6#
感谢您解决问题后对我们反馈,给您分发2000 金币。可以用于兑换论坛奖品。
金币规则:点击进入
礼品列表:点击进入
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部