前端组件

为了方便大家在自己的web项目中集成BaskReport,我们提供了一个基于VUE3+TS的BaskReport前端组件。通过使用该组件我们可以在web页面的任意位置嵌入已经发布的BaskReport报表;同时利用组件中提供的Javascript API,再配合Typescript的代码提示功能,我们可以快速导出或打印指定的已发布的BaskReport报表文件。

安装

npm i baskreport --S

我们可以打开 https://www.npmjs.com/ 搜索baskreport关键字,以查看该组件的一些信息以及源码git地址。

使用

该组件功能分为两个:一个为基于Vue3的组件,它可以将指定的BaskReport报表文件渲染到该组件当中,支持除填报以外的几乎所有功能;另一个是Javascript的API,我们可以在web页面中需要的地方导入这个API,用它实现指定报表文件的打印、导出之类功能。

使用基于Vue3的BaskReport组件

当前的BaskReport组件基于Vue3开发,所以必须在一个Vue3项目中使用该组件,同时该组件开发时基于Typescript,所以我们推荐您的项目要支持Typescript,这样能获得更好的使用体验。

首先在一个Vue3页面中导入组件所需要的样式:

import 'baskreport/dist/style.css'

接下来导入名为BaskReportViewer的组件:

import {BaskReportViewer} from 'baskreport'

然后在页面需要的地方插件该组件即可:

<BaskReportViewer code="ds" :pageIndex="pageIndex" :callback="getReportInfo" baseUrl="http://localhost:8080/baskserver-test"></BaskReportViewer>

该组件需要用到的参数如下表所示:

参数名 类型 是否必须 含义
code 字符串 目标报表文件的code值,和id属性为二选一,必须提供code或id属性,二者不能皆不提供。
id 数字 目标报表文件的id值,和code属性为二选一,必须提供code或id属性,二者不能皆不提供。
baseUrl 字符串 目标报表服务器的URL,这个URL指的是报表应用的具体地址,如果有contextPath的也必须提供,如上面的baskserver-test。 如果当前应用与报表应用是同一个,则只需要提供相对地址即可。
pageIndex 数字 表示要加载的目标报表的第几页,一般值都是1,也就是加载第一页;如果该属性为空,那么就表示直接以不分页形式加载目标报表的所有内容。组件内部会监听该属性值的变化,所以我们可以在外部通过变化该属性的值,实现目标报表数据的翻页功能。
parameters Json 加载目标报表时要提供的参数,数据类型是JSON,这就允许我们在外部将目标报表需要的参数传入组件中。由于组件内部会监听该属性值的变化,所以对于一些查询类报表我们就可以在外部构建查询表单,然后将查询结果以JSON形式传入该组件即可实现报表数据的动态查询功能。
callback function 一个回调函数,用于组件在加载完成报表数据后调用。通过这个函数,我们可以获取到目标报表分页后总页数、web预览配置的允许显示哪些工具(各种导出、打印工具等)。
width 数字 组件宽度,单位为px,设置了该属性后,如果要展示的报表宽度大于这里定义的宽度,那么会出现滚动条。需要注意的是,如果报表中设置了锁定行或列,只能在出现滚动条时并滚动时才能看到锁定效果。
height 数字 组件高度,单位为px,设置了该属性后,如果要展示的报表高度大于这里定义的高度,那么会出现滚动条。需要注意的是,如果报表中设置了锁定行或列,只能在出现滚动条时并滚动时才能看到锁定效果。

下面是一个callback函数的简单示例:

const getReportInfo = (info: ReportInfo) => {
  const tools = info.tools;
  for (let tool of tools) {
    console.log('name:' + tool.name);
  }
  totalPages.value = info.totalPages;
}

在这个回调函数中,组件在加载好报表数据后,会将报表的相关信息放到这个ReportInfo对象中供我们使用,我们可以根据需要决定如何使用这些信息。

报表文件的code是BaskReport在2.0.6及以上版本才有的文件属性,以往版本中只有id属性。

使用Javascript API

在baskreport库中,我们还提供了一个名为BaskReport的Javascript API,该API所实现的功能与Javascript-API集成一节中介绍的功能完成一致,只它当前包中提供的BaskReport对象是基于TS编写,所以使用它会拥有更好的体验。

baskreport库中的BaskReport对象,与上面提到的Vue3组件BaskReportViewer没有依赖关系,所以二者可以分开使用,当然也可以配合使用,这取决于我们的实际需求。

同样因为这个名为BaskReport的Javascript API基于TS编写,所以我们推荐大家的项目也要支持TS,这样会获取更好的使用体验。

使用该组件方法也比较简单,就是在需要的地方导入即可使用:

import {BaskReport} from 'baskreport'

由于这个API与Javascript-API集成一节中介绍的功能完成一致,所以大家可以参考Javascript-API集成中介绍的使用方法,这里就不再赘述。

results matching ""

    No results matching ""