你好, 个人建议ReportID写成这样的这种格式是通用的,然后在后端Startup的方法中进行相对路径的匹配
你可以看看这个写法
- using System;
- using System.Data;
- using System.IO;
- using System.Threading.Tasks;
- using System.Web;
- using System.Web.Routing;
- using System.Windows.Media.Imaging;
- using GrapeCity.ActiveReports;
- using GrapeCity.ActiveReports.Aspnet.Viewer;
- using Microsoft.Owin;
- using Owin;
- [assembly: OwinStartup(typeof(JSviewerDatasource.Startup1))]
- namespace JSviewerDatasource
- {
- public class Startup1
- {
- public static string EmbeddedReportsPrefix = "JSdatasource";
- string ReportName = "";
- public object GetReport(string P)//获取报表名称和报表参数,进行一个对应的报表名称和参数的分割
- {
- //string reportName = P.Split(';')[0];//报表名称;
- //string parameter1 = P.Split(';')[1];//参数1;
- //string parameter2 = P.Split(';')[2];//参数2;
- string reportName = P;//报表名称;
- PageReport rep = new PageReport();
- string path = System.Web.Hosting.HostingEnvironment.MapPath("~/");
- rep.Load(new FileInfo(@"" + path + "Reports/" + reportName));
- 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;
- //var p = args.Parameters[0].Value.ToString();
- if (args.DataSet.Query.DataSourceName == "DataSource1")
- {
- 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, "中国");
- }
- }
- return dt;
- };
- });
- }
- }
- }
复制代码
|