本帖最后由 KearneyKang 于 2020-10-28 12:12 编辑
存在这样一个场景就是在设计报表的时候使用的是测试数据库,部署到不同的客户,这就需要配置正式的数据库连接,如果这个全部通过打开报表文件然后手动修改数据源的字符串连接的话,就会很麻烦,并且不利于后期项目的维护。下面我们就来看看代码层如何进行数据源数据集的修改:
实现代码:
- using Microsoft.Owin;
- using Owin;
- using System.Reflection;
- using System.Web.Routing;
- using GrapeCity.ActiveReports.Aspnet.Viewer;
- using GrapeCity.ActiveReports;
- using System.IO;
- using System.Linq;
- [assembly: OwinStartup(typeof(JSViewerMVCApplication5.Startup))]
- namespace JSViewerMVCApplication5
- {
- public class Startup
- {
- public static string EmbeddedReportsPrefix = "JSViewerMVCApplication5.Reports";
- public object GetReport(string P)//获取报表名称
- {
- PageReport rep = new PageReport();
- string path = System.Web.Hosting.HostingEnvironment.MapPath("~/");//项目路径
- rep.Load(new FileInfo(@"" + path + "Reports/" + P));//报表路径
- //数据源连接字符串的修改
- rep.Report.DataSources[0].ConnectionProperties.ConnectString = "DRIVER=SQLITE3 ODBC DRIVER;DATABASE=D:/Data/ArsDemo.db";
- //数据集查询语句的修改
- rep.Report.DataSets[0].Query.CommandText = "select * from 全国主要城市人均消费排行";
- return rep.Report;
- }
- public void Configuration(IAppBuilder app)
- {
- app.UseErrorPage();
- app.UseReporting(settings =>
- {
- //settings.UseEmbeddedTemplates(EmbeddedReportsPrefix, Assembly.GetAssembly(GetType()));
- settings.UseCustomStore(GetReport);//使用该方法可以自定义进行属性的设置和调用
- settings.UseCompression = true;
- });
- RouteTable.Routes.RouteExistingFiles = true;
- }
- }
- }
复制代码
|
|