本帖最后由 KearneyKang 于 2020-9-7 10:57 编辑
你好,根据你截图的描述,你是想绑定报表的路径是一个绝对路径是吧,也就是 你部署项目的磁盘的路径还是 ,是这样吗?
给报表的 路径绑定绝对路径是可以的,
- public object GetReport(string P)//获取报表名称和报表参数,进行一个对应的报表名称和参数的分割
- {
- string reportName = P.Split(';')[0];//报表名称;
- string parameter1 = P.Split(';')[1];//参数1;
- string parameter2 = P.Split(';')[2];//参数2;
- PageReport rep = new PageReport();
- string path = System.Web.Hosting.HostingEnvironment.MapPath("~/");
- rep.Load(new FileInfo(@"" + path + "Reports/" + reportName));
- //rep.Report.ReportParameters[0].DefaultValue.Values.Add("111");
- return rep.Report;
- }
- public void Configuration(IAppBuilder app)
- {
-
- app.UseReporting(settings =>
- {
- settings.UseCompression = true;
- settings.UseCustomStore(GetReport);//使用UseCustomStore来自定义一些需要的值
- //settings.UseFileStore(new DirectoryInfo(String.Format(@"{0}.\Reports", HttpRuntime.AppDomainAppPath)));
- settings.LocateDataSource = args =>
- {
- DataTable dt = new DataTable();
- string name = ReportName;
- if (args.DataSet.Query.DataSourceName == "DataSource1")
- {
- /* string a = args.Report.Name.ToString();*/ //get Report name
- /* var p1 = args.Parameters[0].Value.ToString();*/ //get Report Parameters
- if (args.DataSet.Name == "DataSet1")
- {
- dt.Columns.Add("产品编号");
- dt.Columns.Add("产品名称");
- dt.Columns.Add("单价");
- dt.Columns.Add("库存量");
- dt.Columns.Add("产地");
- dt.Rows.Add("A001", "苹果", 10, 300, "中国");
- dt.Rows.Add("A002", "葡萄", 20, 200, "中国");
- dt.Rows.Add("A003", "香蕉", 30, 400, "中国");
- dt.Rows.Add("A004", "甘蔗", 10, 300, "中国");
- dt.Rows.Add("A005", "荔枝", 20, 200, "中国");
- dt.Rows.Add("A006", "芒果", 30, 400, "中国");
- dt.Rows.Add("A007", "猕猴桃", 110, 300, "中国");
- dt.Rows.Add("A008", "柠檬", 210, 200, "中国");
- dt.Rows.Add("A009", "栗子", 320, 400, "中国");
- dt.Rows.Add("A010", "火龙果", 100, 300, "中国");
- dt.Rows.Add("A011", "青芒", 250, 200, "中国");
- dt.Rows.Add("A012", "巴旦木", 320, 200, "中国");
- dt.Rows.Add("A013", "土豆", 380, 400, "中国");
- dt.Rows.Add("A014", "苹果", 110, 300, "中国");
- dt.Rows.Add("A015", "葡萄", 420, 200, "中国");
- dt.Rows.Add("A016", "香蕉", 530, 400, "中国");
- dt.Rows.Add("A017", "土豆", 380, 400, "中国");
- dt.Rows.Add("A018", "苹果", 110, 300, "中国");
- dt.Rows.Add("A019", "葡萄", 420, 200, "中国");
- dt.Rows.Add("A020", "香蕉", 530, 400, "中国");
- dt.Rows.Add("A021", "苹果", 10, 300, "中国");
- dt.Rows.Add("A022", "葡萄", 20, 200, "中国");
- dt.Rows.Add("A023", "香蕉", 30, 400, "中国");
- dt.Rows.Add("A024", "甘蔗", 10, 300, "中国");
- dt.Rows.Add("A025", "荔枝", 20, 200, "中国");
- dt.Rows.Add("A026", "芒果", 30, 400, "中国");
- dt.Rows.Add("A001", "苹果", 10, 300, "中国");
- dt.Rows.Add("A002", "葡萄", 20, 200, "中国");
- dt.Rows.Add("A003", "香蕉", 30, 400, "中国");
- dt.Rows.Add("A004", "甘蔗", 10, 300, "中国");
- dt.Rows.Add("A005", "荔枝", 20, 200, "中国");
- dt.Rows.Add("A006", "芒果", 30, 400, "中国");
- dt.Rows.Add("A007", "猕猴桃", 110, 300, "中国");
- dt.Rows.Add("A008", "柠檬", 210, 200, "中国");
- dt.Rows.Add("A009", "栗子", 320, 400, "中国");
- dt.Rows.Add("A010", "火龙果", 100, 300, "中国");
- dt.Rows.Add("A011", "青芒", 250, 200, "中国");
- dt.Rows.Add("A012", "巴旦木", 320, 200, "中国");
- dt.Rows.Add("A013", "土豆", 380, 400, "中国");
- dt.Rows.Add("A014", "苹果", 110, 300, "中国");
- dt.Rows.Add("A015", "葡萄", 420, 200, "中国");
- dt.Rows.Add("A016", "香蕉", 530, 400, "中国");
- dt.Rows.Add("A017", "土豆", 380, 400, "中国");
- dt.Rows.Add("A018", "苹果", 110, 300, "中国");
- dt.Rows.Add("A019", "葡萄", 420, 200, "中国");
- dt.Rows.Add("A020", "香蕉", 530, 400, "中国");
- dt.Rows.Add("A021", "苹果", 10, 300, "中国");
- dt.Rows.Add("A022", "葡萄", 20, 200, "中国");
- dt.Rows.Add("A023", "香蕉", 30, 400, "中国");
- dt.Rows.Add("A024", "甘蔗", 10, 300, "中国");
- dt.Rows.Add("A025", "荔枝", 20, 200, "中国");
- dt.Rows.Add("A026", "芒果", 30, 400, "中国");
- }
- if (args.DataSet.Name == "DataSet2")
- {
- string fp = "D://照片//报表水印.png";
- //byte[] a = File.ReadAllBytes(@"D:\照片\报表水印.png");
-
- byte[] a = SaveImage(fp);
- MemoryStream stream = new MemoryStream(a);
- BitmapImage bmp = new BitmapImage();
- bmp.BeginInit();//初始化
- bmp.StreamSource = stream;//设置源
- bmp.EndInit();//初始化结束
- dt.Columns.Add("产品编号");
- dt.Columns.Add("产品名称");
- dt.Columns.Add("单价");
- dt.Columns.Add("库存量");
- dt.Columns.Add("产地");
- dt.Columns.Add("图片", typeof(byte[]));
- dt.Rows.Add("A001", "苹果", 10, 300, "中国", a);
- }
- }
- return dt;
- };
- });
- }
复制代码 在这个方法里写路径: rep.Load(new FileInfo(@"" + path + "Reports/" + reportName)); |