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

来源:互联网 发布:淘宝鹊桥是什么意思 编辑:程序博客网 时间:2024/06/08 04:56

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


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





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

  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 ME05=@no ";
                    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 权限没有设定,设定之后就无其它问题了。