nativescript-telerik-reporting
访问Telerik Reporting REST API的辅助库
npm i --save nativescript-telerik-reporting

Build Status npm downloads npm downloads npm

一个用于轻松访问Telerik Reporting REST API的NativeScript插件。

安装

从您的项目根目录运行以下命令

tns plugin add nativescript-telerik-reporting

此命令会自动安装必要的文件,并将nativescript-telerik-reporting作为依赖项存储在您的项目package.json文件中。

配置

无需额外配置!

API

ReportingClient

方法

  • constructor(ReportingClientOptions)
    使用给定的serverUrl创建一个报告客户端实例。注意,这应该是您托管REST服务的网站根目录,其中不应包含/api/reports
    您还可以发送additionalHeaders,这些头将在每个请求中发送。这对于在您的报告服务需要身份验证的情况下发送身份验证很有用。
  • getAvailableDocumentFormats(): Promise
    获取服务器支持的文档导出格式的数组。此方法可以在不注册客户端的情况下调用。(API参考
  • register(): Promise
    将客户端注册到服务器。(API参考
  • unregister(): Promise
    从服务器注销客户端。您需要在完成使用报告客户端后调用此方法,以便它可以在服务器上释放资源。(API参考
  • getReportParameters(ReportSource): Promise
    获取给定报告的参数信息。也可以用来检查给定报告的给定参数的有效性。(API参考
  • createInstance(ReportSource): Promise
    创建一个可以用于从服务器渲染和下载报告的ReportingInstance。(API参考

ReportingInstance

方法

  • createDocument(DocumentFormatKey): Promise
    使用给定的导出格式创建一个ReportingDocument。(API参考
  • destroy(): Promise
    从服务器销毁报告实例。一旦完成工作,请调用此方法,以便它可以在服务器上释放资源。(API参考

ReportingDocument

方法

  • getInfo(): Promise
    获取渲染的报告文档的信息,例如它是否已在服务器上准备好,它有多少页等。(API参考
  • download(File?): Promise
    从服务器下载准备好的文档。默认情况下,它使用documentId命名文件,添加适当的扩展名,并将文件保存到设备特定的临时文件夹中。如果您需要将文件保存到其他位置或需要以不同的名称命名,您可以向此方法发送一个File实例。
  • getPage(number): Promise
    获取指定页面的信息。(API 参考
  • destroy(): Promise
    从服务器销毁报告文档。完成工作后,调用此方法非常重要,以便它可以在服务器上释放资源。(API 参考

用法

一个典型的用法场景是您想在服务器上生成报告并下载为适当格式的文件(例如 PDF 文档)。以下是一个示例,说明如何实现。您首先创建一个带有服务器 URL 的客户端,然后注册客户端、创建实例和文档。最后,将文档下载到移动设备。

const req: ReportSource = {
report: "Telerik.Reporting.Examples.CSharp.Invoice, CSharp.ReportLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
parameterValues: {
OrderNumber: "SO51081",
ForYear: 2003,
ForMonth: 7,
},
};
const reportingClient = new ReportingClient({ serverUrl: "https://....." });
reportingClient.register()
.then(() => reportingClient.createInstance(req))
.then((instance) => {
instance.createDocument({ format: documentFormat } as any).then((document) => {
document.download().then((file) => {
utils.ios.openFile(file.path);
viewModel.set("isBusyIn", false);

document.destroy()
.then(() => instance.destroy())

.then(() => reportingClient.unregister);
});
});
});

务必记住调用实例和文档的 destroy() 以及注销客户端 unregister(),因为这可以在服务器上释放资源。同时,尽可能重用客户端/实例也是一个好主意。

演示

此存储库包含原生脚本演示。要运行这些演示,请在您的壳中执行以下操作

$ git clone https://github.com/peterstaev/nativescript-telerik-reporting
$ cd nativescript-telerik-reporting
$ npm install
$ npm run demo-ios

这将运行原生脚本演示项目在 iOS 上。如果您想在 Android 上运行它,只需使用 -android 而不是 -ios 后缀。

捐赠

Donate

bitcoin:14fjysmpwLvSsAskvLASw6ek5XfhTzskHC

Donate