没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郑恭琳|2019-08-30 15:24:52.120|阅读 557 次
概述:Knockout.js库用于创建Web应用程序。由于Microsoft Visual Studio中该库的支持,我们可以使用基于ASP .Net Core MVC的TypeScript和后端。最后意味着我们将能够使用FastReport.Net报表。它仍然只是在客户端应用程序中显示报表。这正是我们将在本文中做的。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
Knockout.js库用于创建Web应用程序。由于Microsoft Visual Studio中该库的支持,我们可以使用基于ASP .Net Core MVC的TypeScript和后端。最后意味着我们将能够使用FastReport.Net报表(点击这里高速下载FastReport.Net报表最新试用版)。它仍然只是在客户端应用程序中显示报表。这正是我们将在本文中做的。
要使用.Net Core进行knockout,您必须安装.Net Core SDK 2.0或MS Visual Studio(点击这里高速下载Visual Studio最新试用版)。默认情况下,您无法使用具有knockout库的应用程序模板。因此,您只需使用一个命令即可安装它。在Windows命令promt中,输入:
dotnet new — install Microsoft.AspNetCore.SpaTemplates::*
之后,您可以基于knockout创建spa应用程序。在所需的文件夹中,打开命令行并输入命令:
dotnet new knockout –o KnockWebReport
创建应用程序后,转到包含已创建应用程序的文件夹,然后使用以下命令恢复必要的安装包:
npm install
现在您可以打开创建的项目。我们的目标是创建FastReport的Web报表。因此,我们安装FastReport包。为此,请打开包管理器并将本地包源配置为FastReport.Net安装目录中的Nuget文件夹。之后,我们有一组FastReport包可供安装(点击这里高速下载FastReport.Net报表最新试用版)。安装FastReport.Core和FastReport.Web。
将App_Data文件夹添加到wwwroot目录。在其中我们放置报表的数据库文件:

我们使用现有的SampleDataController控制器。从中删除所有方法并添加我们自己的方法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using FastReport.Web;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using System.IO;
namespace KnockWebReport.Controllers
{
[Route("api/[controller]")]
public class SampleDataController : Controller
{
private IHostingEnvironment _env;
public SampleDataController(IHostingEnvironment env)
{
_env = env;
}
[HttpGet("[action]")]
public IActionResult ShowReport(string name)
{
var webRoot = _env.WebRootPath;
WebReport WebReport = new WebReport();
WebReport.Width = "1000";
WebReport.Height = "1000";
WebReport.Report.Load(System.IO.Path.Combine(webRoot, (String.Format("App_Data/{0}", name)))); // Load the report into the WebReport object
System.Data.DataSet dataSet = new System.Data.DataSet(); // Create a data source
dataSet.ReadXml(System.IO.Path.Combine(webRoot, "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();
}
[HttpPost("[action]")]
public async Task Upload(List files)
{
long size = files.Sum(f => f.Length);
var webRoot = _env.WebRootPath;
var filePath = System.IO.Path.Combine(webRoot, (String.Format("App_Data/{0}", files[0].FileName)));
if (files[0].Length > 0)
{
using (var stream = new FileStream(filePath, FileMode.Create))
{
await files[0].CopyToAsync(stream);
stream.Close();
}
}
Task.WaitAll();
return Content(Path.GetFileName(filePath));
}
}
}ShowReport方法将指定的报表模板加载到WebReport对象中并显示它。Upload方法从客户端获取文件,将其保存到服务器并返回保存文件的名称。
对于ShowReport方法,我们创建一个视图:

使用以下代码:
@await ViewBag.WebReport.Render()
我们现在转向客户端应用程序。它位于ClientApp文件夹中:

我们使用主页来显示报表。编辑home-page.html文件中的代码:
我们显示打开标准打开文件窗口的按钮。而且,根据逻辑参数“show”的值,我们使用报表的Web对象输出框架。
现在我们将在home-page.ts文件中为此模板编写一个脚本:
import * as ko from 'knockout';
class HomePageViewModel {
public show = ko.observable(false);
public url = ko.observable('');
upload(file: Blob) {
var files = new FormData();
files.append("files", file)
console.log(files);
if (file != null) {
fetch('api/SampleData/Upload', {
method: 'POST',
body: files
})
.then(response => response.text())
.then(data => {
this.url("api/SampleData/ShowReport?name=" + data)
});
this.show(true);
}
}
}
export default { viewModel: HomePageViewModel, template: require('./home-page.html') };在此脚本中,我们实现了将文件上传到服务器的功能。执行POST请求,结果我们从服务器接收保存文件的名称。接下来,将url变量分配给报表显示方法的路径,同时考虑收到的报表名称。结果,我们得到了一份web报表。
让我们运行我们的应用程序,看看我们有什么。

选择frx格式的报表文件。

我们会在您的网页上收到报表。
因此,我们确信在基于knockout的Web应用程序中显示FastReport.Net报表也是很容易实现的。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn




在现代软件工程实践中,C与C++的混合编程模式是一种广泛存在且极具实用价值的架构范式。面对这种混合语言环境的独特挑战,Parasoft C/C++test作为一款专业的代码质量与测试解决方案,通过集成静态分析、单元测试、运行时错误检测等完整工具链,为复杂的混合语言项目提供统一的质量保障。
如果你只想快速搭建一个设备监控界面,不想再从零开发一套系统,那你一定要了解这款工具——Prosys OPC UA Monitor。
Parasoft C/C++test是一款专业的自动化软件测试工具,致力于帮助C和C++开发团队提升代码质量与可靠性。Parasoft C/C++test通过执行静态代码分析、单元测试等多种方法,能够高效地在开发早期识别出潜在缺陷与安全漏洞,并确保代码符合如MISRA在内的行业核心安全编码标准。
本文主要介绍如何在MVVM应用程序中使用虚拟源,欢迎下载最新版组件体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ke049m.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
半岛外围网上直营