Web端设计器设计的报表,在JSviewer中展示主题丢失
本帖最后由 KearneyKang 于 2021-12-17 12:13 编辑ActiveReports现在拥有Web端报表设计器和桌面端报表设计器。Web端设计的报表和桌面端设计的报表都是一个.Rdlx的报表文件。
由于ActiveReports的Web端报表设计器拥有报表的主题选项,在设计报表时报表就自带有报表主题,但是桌面端报表设计器暂时没有主题选择,因此会存在在Web端设计的报表在桌面端展示的时候效果不一致。这个暂时乜办法解决,但是我们可以解决在自己新建的项目中使用Web端报表设计器展示效果不一致的问题。
Web端报表设计器的主题选择:
报表设计样式,使用默认的主题:Cordial.default.rdlx-theme
Web端报表设计器展示的最终样式:
在JSviewer项目中展示的样式
现在展示的结果跟Web端展示的结果不一致,这是由于新建的JSviewer的项目中没有引用对应主题
现在我们引用对应的主题:Cordial.default.rdlx-theme
主题文件在Web端报设计器的源文件中有,使用什么主题就放什么主题文件
跟报表文件放在同一路径下,并设置为"复制":
预览结果
如果你的项目中的Startup.cs的文件使用了“UseCustomStore”进行报表自定义的一些设置,你需要自己的单独进行一个配置,保证主题样式能够被找到,不然那就会丢失主题。
using GrapeCity.ActiveReports;
using GrapeCity.ActiveReports.Aspnet.Viewer;
using Microsoft.Owin;
using Owin;
using System;
using System.IO;
using System.Reflection;
using System.Web;
using System.Web.Routing;
namespace JSViewerMVCApplication1
{
public class Startup
{
public static string EmbeddedReportsPrefix = "JSViewerMVCApplication5.Reports";
private static readonly DirectoryInfo ResourcesRootDirectory =
new DirectoryInfo(String.Format(@"{0}.\Reports\", HttpRuntime.AppDomainAppPath)); //主题文件的访问路径;
public object GetReport(string P)//获取报表名称
{
PageReport rep = new PageReport();
string path = System.Web.Hosting.HostingEnvironment.MapPath("~/");
rep.Load(new FileInfo(@"" + path + "Reports/" + P));
return rep.Report;
}
public void Configuration(IAppBuilder app)
{
app.UseErrorPage();
app.UseReporting(config => config.UseFileStore(ResourcesRootDirectory));//文件路径配置
app.UseReporting(settings =>
{
settings.UseCustomStore(GetReport);//使用该方法可以自定义进行属性的设置和调用
settings.UseCompression = true;
});
RouteTable.Routes.RouteExistingFiles = true;
}
}
}
页:
[1]