如何从 C# 制作报表到 FastReport Cloud

众所周知,我们的世界在不断发展,新技术几乎每天都会出现。如今,不再需要在办公室内建立整个基础设施、雇用人员来监控设备、处理该设备出现的问题和其他困难。

如今,越来越多的服务提供业务云解决方案,例如FastReport Cloud。我们的服务使开发团队免去不必要的工作;您不再需要考虑如何部署项目、在哪里租用或购买服务器最好、最有利可图,以及使用什么技术进行部署。这一切我们都已经解决了,你只需利用它即可。

    FastReport .net下载(qun:585577353)icon-default.png?t=N7T8https://www.evget.com/product/1861/download

如何使用FastReport云?

在本文中,我们将了解如何使用 SDK 在 FastReport Cloud 中创建报表并将其导出为任何方便的格式。

首先,我们创建一个项目并向其中添加 FastReport.Cloud.SDK.Web nuget 包。有了这个包,我们就可以方便地与 FastReport Cloud 进行通信,而无需 API。

我们还需要一个报告模板。此示例将使用我们演示中的 Box.frx:

模板框.frx

创建项目并向其添加所有必要的依赖项后,您可以继续分析示例。

首先,您需要在FastReport Cloud工作区中创建一个API密钥;为此,请点击链接https://fastreport.cloud。

单击包含 API 密钥的选项卡并创建一个新密钥。如果该密钥已存在,则可以通过右键单击它并从下拉列表中选择一个操作来复制它。

创建和复制 API 密钥

收到 API 密钥后,我们返回到我们的应用程序。我们将密钥写入一个单独的变量,如下例所示:

private const string ApiKey = "your API key";

接下来,我们需要创建将在程序中使用的主要对象:

var httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("https://fastreport.cloud");
httpClient.DefaultRequestHeaders.Authorization = new FastReportCloudApiKeyHeader(ApiKey);
var subscriptions = new SubscriptionsClient(httpClient);
var rpClientTemplates = new TemplatesClient(httpClient);
var rpClientExports = new ExportsClient(httpClient);
var downloadClient = new DownloadClient(httpClient);
var subscription = (await subscriptions.GetSubscriptionsAsync(0, 10)).Subscriptions.First();
var templateFolder = subscription.TemplatesFolder.FolderId;
var exportFolder = subscription.ExportsFolder.FolderId;

之后,我们进入为云创建报告的阶段。你可以这样做:

TemplateCreateVM templateCreateVM = new TemplateCreateVM()
{
Name = "box.frx",
Content = Convert.FromBase64String(TestData.BoxReport)
//we send the frx file in byte format
};

在上面的示例中,我们已经有一个字节格式的报告。如果您有 frx 格式的文件,则可以使用以下示例:

TemplateCreateVM templateCreateVM = new TemplateCreateVM()
{
Name = "box.frx",
Content = File.ReadAllBytes("path to report")
//we send the frx file in byte format to the path
};

我们将 TemplateCreateVM 对象与报表一起上传到 FastReport.Cloud 工作区:

TemplateVM uploadedFile = await rpClientTemplates.UploadFileAsync(templateFolder, templateCreateVM);

现在我们将报告导出为我们需要的格式。首先,您需要决定未来文件的格式和名称。

ExportTemplateVM export = new ExportTemplateVM()
{
FileName = "box",
Format = ExportFormat.Pdf
//format to be exported
};

我们导出为 PDF 格式:

ExportVM exportedFile = await rpClientTemplates.ExportAsync(uploadedFile.Id, export) as ExportVM;
string fileId = exportedFile.Id;
int attempts = 3;
exportedFile = rpClientExports.GetFile(fileId);
while (exportedFile.Status != FileStatus.Success && attempts >= 0)
{
await Task.Delay(1000);
exportedFile = rpClientExports.GetFile(fileId);
attempts--;
}

我们通过报告完成了主要工作。我们收到了报告中的 pdf 文件:

结果导出

如果您想手动下载文件,请转到您的工作区并下载它,如下例所示:

下载导出的文件

您还可以使用以下示例通过 SDK 下载文件:

using (var file = await downloadClient.GetExportAsync(fileId))
{
using (var pdf = File.Open("report.pdf", FileMode.Create))
{
file.Stream.CopyTo(pdf);
}
}

现在您知道如何使用 SDK 在 FastReport Cloud 中创建、导出和下载文件。您可以通过以下链接找到本文中的示例:GitHub - FastReports/FastReport-Cloud。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/213453.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

了解销售管理系统,看这篇就够了

在充满活力的现代商业环境中,高效的销售管理是成功的关键。 本文将全面介绍销售管理系统 及其对销售流程的变革性影响。 从潜在客户开发和机会管理到分析驱动的决策,销售管理系统旨在为销售团队提供提高生产力和绩效的工具。 本文分为销售管理系统的概念…

面向自然语言处理任务的预训练模型综述

源自:计算机应用 作者:刘睿珩, 叶霞, 岳增营 “人工智能技术与咨询” 发布 摘要 近年来,深度学习技术得到了快速发展。在自然语言处理(NLP)任务中,随着文本表征技术从词级上…

vscode在运行c语言时,无法scanf输入

问题: 在学习c语言中,我在使用scanf和cin时无法在终端进行输入(运行了但是无法输入),在网上寻找答案,并写下笔记 解决方法 选择左上角 文件->首选项(preferences)->设置(settings&#xf…

解决PDF预览时,电子签章、日期等不显示问题

文章目录 问题描述问题排查问题解决 问题描述 在预览PDF时,部分签章或控件没有显示。如下图: 正确应该要这样: 问题排查 根据网上搜索,排查,我先看看,pdf.worker.js 里的这三行代码,是否已经注…

解决:javax.websocket.server.ServerContainer not available 报错问题

原因: 用于扫描带有 ServerEndpoint 的注解成为 websocket,该方法是 服务器端点出口,当进行 SpringBoot 单元测试时,并没有启动服务器,所以当加载到这个bean时会报错。 解决方法: 加上这个注解内容 Spr…

22款奔驰S400L升级主动式氛围灯 光影彰显奔驰的完美

新款奔驰S级原车自带64色氛围灯,还可以升级原厂的主动式氛围灯,增加车内的氛围效果。主动式环境氛围灯包含263个LED光源,每隔1.6厘米就有一个LED光源,照明效果较过去明亮10倍,视觉效果更加绚丽,它还可结合智…

使用Python将图片转换为PDF

将图片转为 PDF 的主要原因之一是为了方便共享和传输。此外,将多张图片合并成一个 PDF 文件还可以简化文件管理。之前文章详细介绍过如何使用第三方库Spire.PDF for Python将PDF文件转为图片,那么本文介绍使用同样工具在Python中实现图片转PDF文件的功能…

微信小程序完整实现微信支付功能(SpringBoot和小程序)

1.前言 不久前给公司实现支付功能,折腾了一阵子,终于实现了,微信支付对于小白来说真的很困难,特别是没有接触过企业级别开发的大学生更不用说,因此尝试写一篇我如何从小白实现微信小程序支付功能的吧,使用…

当老师应该选文科还是理科

教育不断发展和改革,教师职业的选择也越来越受到关注。许多人在选择专业时都会考虑成为一名教师,但对于选择文科还是理科却感到困惑。本文将探讨当老师应该选文科还是理科。 文科注重的是人文素养和社会科学方面的知识,而理科则注重自然科学和…

electron27-react-mateos:基于electron+react18仿matePad桌面系统

基于Electron27React18ArcoDesign搭建桌面版OS管理系统。 electron-react-mateos 基于最新前端跨端技术栈electron27.xreact18arco-designzustand4sortablejs构建的一款仿制matePad界面多层级路由管理OS系统。 ElectronReactOS支持桌面多路由配置,新开窗口弹窗开启路…

windows电脑定时开关机设置

设置流程 右击【此电脑】>【管理】 【任务计划程序】>【创建基本任务】 gina 命令 查看 已经添加的定时任务从哪看?这里: 往下滑啦,看你刚才添加的任务: