Telerik报告?下载30天免费试用

如何在。net 5和。net Core 3.1中设置应用程序

本文展示了如何集成我们的Web报表设计器а。NET Core 3.1和。NET 5应用程序。

将web报表设计器添加到web项目的最快方法是使用Telerik Web报表设计器项目模板在Visual Studio。项目模板兼容。NET Core 3.1和。NET 5项目。项目模板使用Web报表设计器添加页面,如果需要,还启用Web报表设计器REST服务。要启动项模板向导,请在Visual Studio解决方案资源管理器中选择目标项目。在“项目”菜单上,单击“添加->新项目”。在“添加新项目”搜索框中输入“Telerik Web报表设计器,并选择与您的web项目类型对应的项目模板。

为了完全控制,您可以手动配置REST服务并添加web报表设计器,而不是使用项模板,如本文其余部分所述。

先决条件

  1. 创建一个示例ASP。网络核心3.1 or .NET 5 Project. It may be an empty Web project or a Web API project.

  2. 添加所需的依赖项:

    • Telerik.WebReportDesigner.万博体育手机版网址Services

    • Telerik.Reporting.万博体育手机版网址Services.AspNetCore

    • Telerik.Reporting.JsonSerialization

    • Telerik。报告

当你使用NuGet包时,你只能添加Telerik.WebReportDesigner.万博体育手机版网址Services包,因为它依赖于所需的其余Telerik Reporting程序集,因此它们将自动添加。它们的依赖关系也将被自动解析。有关更多信息,请参见如何将Telerik私有NuGet feed添加到Visual Studio

如果你不使用NuGet包以及上面的程序集,你还需要手动将它们所有的依赖项添加到项目中。

如果您需要允许用户以Office OpenXML文档格式(XLSX、DOCX和PPTX)导出报表,则必须安装DocumentFormat。OpenXML以及Telerik.Reporting.OpenXmlRendering NuGet包。有关所需软件包版本的详细信息,请参见部署开放XML

中添加“必需设置”Startup.cs文件

一些Visual Studio模板项目,如. net 5 Web API项目,默认情况下已经添加了所需的设置。在空的。net Core 3.1和。net 5 Web项目中,您需要手动添加设置。

  1. Configure万博体育手机版网址Services方法中的Startup.cs,以启用Web报表设计器服务功能。确保应用程序已配置为WebAPI控制器,并调用AddNewtonsoftJson放置NewtonsoftJson序列化:

    万博体育手机版网址.AddNewtonsoftJson services.AddControllers () ();
  2. 确保端点配置在配置方法Startup.cs通过在lambda表达式参数中添加以下行来为API控制器配置:

    app.UseEndpoints(endpoints => {endpoints. mapcontrollers ();/ /……});
  3. 确保应用程序配置在配置方法Startup.cs可以提供静态文件:

    app.UseStaticFiles ();

在Startup.cs文件中添加配置设置

报表生成引擎可以检索Sql连接字符串和特定的报表生成引擎设置,这些设置为部署的应用程序提供了灵活性。它利用了IConfiguration接口为了这个目的。

.NET Core 3.1和.NET 5应用程序使用键-值基于json默认命名的文件appSettings.json.默认的ReportingEngineConfiguration:

ReportingEngineConfiguration = sp.GetService()

将从appSettings.jsonappsettings。{EnvironmentName} . json

例如,要激活具有不同名称的JSON文件配置,reportingAppSettings.json,致电AddJsonFile实例上的扩展方法ConfigurationBuilder.以下是你可以遵循的具体步骤:

  1. 添加一个新的ResolveSpecificReportingConfiguration类作为一个单独的文件或在Startup.cs文件中

    static IConfiguration ResolveSpecificReportingConfiguration(IWebHostEnvironment环境){var reportingConfigFileName = System.IO.Path.Combine(环境。ContentRootPath reportingAppSettings.json);返回new ConfigurationBuilder() .AddJsonFile(reportingConfigFileName, true) .Build();}
  2. 中添加所需的服务万博体育手机版网址Configure万博体育手机版网址Services方法

    public void Configure万博体育手机版网址Services(IServiceCollection services) {services. addcontrollers ().AddNewtonsoftJson();万博体育手机版网址服务。TryAddSingleton(sp => new ReportServiceConfiguration {ReportingEngineConfiguration = ResolveSpecificReportingConfiguration(sp. getservice ()), HostAppId = "ReportingCoreApp", Storage = new FileStorage(), ReportSourceResolver = new TypeReportSourceResolver()。AddFallbackResolver (new UriReportSourceResolver(Path.Combine(sp.GetService()。WebRootPath, "Reports"))});万博体育手机版网址服务。TryAddSingleton(sp => new ReportDesignerServiceConfiguration {DefinitionStorage = new FileDefinitionStorage(Path.Combine(sp. getservice ())。WebRootPath, "Reports")), SettingsStorage = new FileSettingsStorage(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Telerik Reporting")),});}

设置报表设计器REST服务:

REST服务作为后端工作,负责存储操作,如创建、打开或保存报表定义。具体配置步骤如下:

  1. 确保项目中有一个基于键值的json文件,并添加所需的文件其中的配置设置,例如ConnectionStrings

  2. 实现一个报表设计器控制器。右键单击控制器add > new item…>Web API控制器类项。命名为ReportDesignerController。这将是项目中的Telerik Web报表设计器REST服务。

  3. 继承了ReportDesignerControllerBase在构造函数中键入并注入所需的配置设置。伴随着ReportServiceConfiguration,还有另一个名为ReportDesignerServiceConfiguration的配置实例,它将初始化定义存储。这个类负责打开、保存报表定义等。这是控制器的基本实现应该是这样的:

    命名空间csharp . aspnetcoredemos . controllers {using Microsoft.AspNetCore.Mvc;使用Telerik.Reporting.Serv万博体育手机版网址ices;使用Telerik.WebReportDesigner.Serv万博体育手机版网址ices;使用Telerik.WebReportDesigner.Serv万博体育手机版网址ices.Controllers;[Route("api/reportdesigner")] public类ReportDesignerController: ReportDesignerControllerBase {public ReportDesignerController(IReportDesignerServiceConfiguration, IReportServiceConfiguration): base(reportDesignerServiceConfiguration, reportServiceConfiguration) {}}}
  4. 要确保服务运行,请运行应用程序并导航到URL{applicationRoot} / api / reportdesign / cultureContext.它应该返回一个JSON,表示由当前区域性确定的分隔符,例如:

    {“decimalSeparator”:“。”,“listSeparator”:"、"}

添加Web报表设计器:

  1. 在服务配置的defintionstorage和UriReportSourceResolver中指定的专用文件夹中添加TRDP或TRDX报告定义。万博体育手机版网址在示例代码中是这样的

    Path.Combine (sp.GetService < IWebHostEnvironment >()。WebRootPath,“报告”)

    并对应于文件夹报告wwwroot文件夹中。如果后者不存在,则将其添加到主应用程序文件夹中。你可以加入报告可以在默认情况下找到的演示报告之一的文件夹{Telerik报表安装路径}\报表设计器\示例

  2. 右键单击,为Web报表设计器添加一个新的HTML页面wwwroot而且添加>新项目…> HTML页面.为文件命名index . html.添加所需的引用来加载下面示例中列出的字体、jQuery、Telerik Kendo UI库、telerikReportViewer和webReportDesigner脚本。最后,添加telerik_WebReportDesigner小部件的初始化。请注意,Web报表设计器容器的最小宽度为1200px。完整的报表查看器页面应该如下所示:

    <!DOCTYPE html>   Telerik Web ReportDesigner 
          
    loading…
    Baidu
  3. 将index.html设置为启动页检查在ASP中创建index.html作为启动文件。网络核心.然后,将launchUrl更改为index.html inlaunchSettings.json

  4. 最后,运行项目来预览网页设计器。

例子

在我们的。net Core 3.1应用程序中找到Web报表设计器的完整示例设置GitHub库

另请参阅

在本文中
Baidu
map