提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:杨鹏连|2021-07-01 16:31:21.167|阅读 152 次
概述:单页应用程序的概念正在寻找越来越多的支持者。最着名的单页框架之一是Angular,它是一个单页的JavaScript应用程序框架。Angular的第一个版本真的基于JavaScript。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
随着现代技术的高速发展,相关产业所衍生出来的数据集是越来越庞大。那么我们如何能够简单、方便、快捷的展现自己输入数据?并且能够以我们想要的方式展现出来?报表——这一产物便应运而生,现在市面上流行的报表工具类产品也是层出不穷。
第三方报表工具是数据库存储,数据库程序通常可以存放的数据量是相当大的,可以处理非常复杂的数据结构关系。报表数据交互也快捷方便,速度也非常快,可视化交互渲染。
本文介绍如何在单页应用程序Angular 7中使用FastReport Core Web报表?
单页应用程序的概念正在寻找越来越多的支持者。最着名的单页框架之一是Angular,它是一个单页 的JavaScript应用程序框架。Angular的第一个版本基于JavaScript,但是所有后续版本都已经在使用TypeScript,并且与第一个版 本完全不同。在AngularJS上创建新应用程序没有任何意义,因此我们将使用当前版本的Angular 7。
Microsoft成功地将Angular和ASP结合起来。Net Core MVC。因此,使用ASP .Net Core MVC的实现 ,在单页面应用程序中显示报表相对容易。
要在Angular框架上开始开发,您需要预先安装一个平台,以便在服务器端执行JavaScript代码。它 叫做Node.js。
您还需要安装.Net Core SDK 2.0或更新版本。但是,如果您安装了Microsoft Visual Studio 2017 ,则无需执行此操作。
有两种方法 - 在Visual Studio中创建新项目或从命令行运行命令。
对于第一个选项,您必须在Visual Studio扩展中安装Angular应用程序模板。
第二个更简单。为您的应用程序创建一个文件夹 在Windows命令行中,使用cd命令转到创建的文件 夹并执行以下命令:
dotnet new angular -o AngularFRCore
如您所知,AngularFRCore是项目的名称。创建应用程序后,您需要安装typescript库。我们将使用 Node.js npm平台库安装程序执行此操作。在控制台执行了创建应用程序的命令,在应用程序目录中运行另一个命令:
npm install -g typescript
现在,打开项目,没有解决方案文件,它将在您第一次启动项目时创建。
我们的演示应用程序的目标是展示如何在单页应用程序中使用FastReport.Core。让我们将 FastReport库添加到我们的项目中。打开NuGet包管理器。在右上角,您可以选择数据包的来源。我们对本地源感兴趣,但首先需要 配置它。为此,请单击右上角的齿轮图标。我们使用包设置本地文件夹的路径:
默认情况下,此文件夹是:C:\ Program Files(x86)\ FastReports \ FastReport.Net \ Nugets。
通过安装FastReport.Net,您可以获得上述包装中的现成包装。让我们回到包管理器:
现在有两个包,安装它们。 要在应用程序中使用FastReport,需要在Startup.cs文件中添加 一行代码:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { … app.UseFastReport(); …}
如果您浏览项目树,可以从MVC应用程序中看到我们熟悉的控制器和模型目录。可以使用几乎未改变 的MVC .Net Core应用程序作为后端。Controllers文件夹中已有一个 - SampleDataController。随意清除课程内容 - 我们将创建 自己的方法:
[HttpGet("[action]")] public IActionResult ShowReport(string name) { WebReport WebReport = new WebReport(); WebReport.Width = "1000"; WebReport.Height = "1000"; WebReport.Report.Load(String.Format("App_Data/{0}.frx", name)); // Load the report into the WebReport object System.Data.DataSet dataSet = new System.Data.DataSet(); // Create a data source dataSet.ReadXml("App_Data/nwind.xml"); // Open the xml database WebReport.Report.RegisterData(dataSet, "NorthWind"); // Registering the data source in the report ViewBag.WebReport = WebReport; // pass the report to View return View(); }
如果您已经熟悉FastReport.Core,那么此方法没有任何新内容。我们创建了Web报表对象,将报表 模板加载到其中,创建并注册了数据源并将报表传递给视图。此方法有一个参数 - 我们用于加载所需报表模板的报表的名称。
FastReport.Net集包含一个带有演示报表的文件夹:
C:\ Program Files(x86)\ FastReports \ FastReport.Net \ Demos \ Reports
我们将从中获取几个模板和一个nwind.xml数据库。但首先,在项目根目录中创建App_Data文件夹。 现在从上面的文件夹中将文件拖入其中:
Barcode.frx,Master-Detail.frx,Matrix.frx,nwind.xml。
下一步是为此方法创建一个视图。
我们的项目中没有Views文件夹。在项目根目录中创建它。在此文件夹中,添加另一个名为 SampleData的文件夹。最后,在此文件夹中,我们创建了一个新视图 - ShowReport.chtml,其中包含以下内容:
@await ViewBag.WebReport.Render()
在异步模式下,我们正在等待生成报表的HTML版本。
所以,我们准备了一个与Angular一起提供的后端。我们来看看ClientApp文件夹。这是一个单页的 应用程序。我们对src - > app目录感兴趣。以下是负责显示内容的主要文件 - 页面模板及其类型脚本处理程序。主页模板是 app.component.html。我们将完全编辑它:
FastReport.Core Demo Select a report and click the button Matrix Master-Detail Barcode
首先,我们为不同的报表显示三个单选按钮。每个按钮都订阅了Click事件,我们通过该事件设置报 表变量的值。该函数将报表的名称作为参数。通过这种方式,我们组织了所需报表模板的选择。这是一个相当原始的实现,但为了 演示报表,不再需要它。
下面,我们展示了一个名为ShowReport的按钮,它也使用Clicked()处理程序订阅了click事件。 注意条件* ngIf =“show”的div。如果show变量为true,则将执行内部变量中的代码。在我们的例子中,将显示框架。这样做是为 了在最初加载页面时不显示空框架。此外,当我们选择报告并单击“显示报表”按钮时,将显示包含报表的框架。
在框架属性中,我们从变量url设置源。有趣的是,我们在safeUrl函数的帮助下“规范化”这个变 量,并通过管道应用它。此函数将检查URL的安全性和有效字符,并将其显示为正确的格式。我们稍后会详细介绍它。
现在,查看app.component.ts组件脚本,该脚本负责处理上面讨论的模板:
import { Component } from '@angular/core'; @Component( { selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css']}) export class AppComponent { title = 'app'; show: boolean = false; url: string; report: string; Clicked() { if (this.report != null) { this.show = true; this.url = "api/SampleData/ShowReport?name=" + this.report; } }}
以下是我们在页面模板中看到的show和url变量。以及变量报表,其中包含所选报表的名称。 Clicked()函数将show变量设置为true,并在url变量中设置报表的路径。
现在我们将创建safeUrl函数,我们在管道中使用变量url。在app目录文件safeUrl.pipe.ts中:
import { Pipe, PipeTransform } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; @Pipe({ name: 'safeUrl' }) export class SafeUrlPipe implements PipeTransform { constructor(private sanitizer: DomSanitizer) { } transform(url) { return this.sanitizer.bypassSecurityTrustResourceUrl(url); }}
要在页面模板中使用此函数,请在app.module.ts中添加此管道模块的声明:
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpClientModule } from '@angular/common/http'; import { RouterModule } from '@angular/router'; import { SafeUrlPipe } from "./safeUrl.pipe"; import { AppComponent } from './app.component'; @NgModule({ declarations: [ AppComponent, SafeUrlPipe ], imports: [ BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }), HttpClientModule, FormsModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
这样就完成了演示应用程序的工作。运行应用程序:
首先,您需要选择其中一个报表,然后单击按钮:
现在选择另一个报表并单击按钮:
因此,您已经看到在Angular单页面应用程序中使用FastReport.Core报告生成器并不比通常的ASP .Net Core应用程序困难得多 。
如果您对 FastReport 报表工具感兴趣,欢迎加入 FastReport QQ 交流群:702295239
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢