RDLC 报表 引用外部图片 file用相对路径 开发工具vs2015

第一步 首先给自己的rdlc报表自定义参数,在视图找到Report Data 菜单 ,当然这个菜单 笔记本的不容易找到,点 视图 用滚轮 一直往下滚,最下面才是Report Data 菜单,点中参数,右键添加参数。

RDLC 报表 引用外部图片 file用相对路径 开发工具vs2015

第二步 在rdlc报表上添加参数,图像源为外部,具体见图片


RDLC 报表 引用外部图片 file用相对路径 开发工具vs2015

RDLC 报表 引用外部图片 file用相对路径 开发工具vs2015

RDLC 报表 引用外部图片 file用相对路径 开发工具vs2015

第三步 后台代码绑定代码如下,关键代码我用红色标识

  protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {


                if (Request.Params["no"] != null && Request.Params["no"].Trim() != "")
                {
                    string no = Request.Params["no"];                  
                    string nosql = @"declare @no varchar(20) set @no='" + no + @"'                               
                                 SELECT * FROM Hpsn WHERE no = @no                              
                                 SELECT  * FROM Hatime WHERE [email protected] ";
                    DataSet ds = Maticsoft.DBUtility.DbHelperSQL.Query(nosql);
                    //绑定报表
                    Report1.LocalReport.EnableExternalImages = true; //(默认为false) 否则会报错 报表“Hprp1”包含外部图像。尚未为此报表设置 EnableExternalImages 属性。
                    Report1.LocalReport.ReportPath = MapPath("Hprp1.rdlc");
                    //绑定数据源
                    //注意dataset1必须和你报表所引用的table 一致
                    ReportDataSource rds = new ReportDataSource("Hpsn", ds.Tables[0]);//注意这里的name和报表中的一致                  
                    ReportDataSource rds10 = new ReportDataSource("Hatime", ds.Tables[1]);//注意这里的name和报表中的一致
                    string guid = ds.Tables[0].Rows[0]["ha31"].ToString();
                    string url = "file:///" + Server.MapPath("~/upload/") + guid;
                    //Response.Write(url); //测试 输出路径                   
                    Report1.LocalReport.DataSources.Clear();
                    Report1.LocalReport.SetParameters(new ReportParameter("EWM", url));//报表绑定参数

                    Report1.LocalReport.DataSources.Add(rds);                   
                    Report1.LocalReport.DataSources.Add(rds10);
                    Report1.LocalReport.Refresh();
                }
            }
        }

我还发现我这边在本地是OK的,但是在服务器上出错了,后来发现是服务器上资料夹 upload 权限有问题,authenticated users 权限没有设定,设定之后就无其它问题了。

RDLC 报表 引用外部图片 file用相对路径 开发工具vs2015