JSviewer如何代码层进行数据源数据集的修改
本帖最后由 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;
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.ConnectionProperties.ConnectString = "DRIVER=SQLITE3 ODBC DRIVER;DATABASE=D:/Data/ArsDemo.db";
//数据集查询语句的修改
rep.Report.DataSets.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;
}
}
}
Tom猫 发表于 2021-11-6 20:26
除了代码处理外,官方还应该考虑在报表本身实现数据源连接字符串做安全处理,不然数据库的用户、密码很容易 ...
已反馈该需求 除了代码处理外,官方还应该考虑在报表本身实现数据源连接字符串做安全处理,不然数据库的用户、密码很容易暴露的。:itwn: Tom猫 发表于 2021-11-6 20:26
除了代码处理外,官方还应该考虑在报表本身实现数据源连接字符串做安全处理,不然数据库的用户、密码很容易 ...
非常赞同!数据库安全是个不可忽视的问题! 人生就是修炼 发表于 2023-8-11 16:02
非常赞同!数据库安全是个不可忽视的问题!
感谢老铁反馈,该需求已反馈~
页:
[1]