前言

作业是这样的,熟悉咱们的朋友都知道,我司有一个为广阔开发者朋友们提供学习协助的当地,叫做新手训练营,详细的内容便是会针对初次触摸葡萄城产品和技能的用户,通过 2-3 天的集中学习,采用直播授课的方法协助用户快速上手产品,课后讲师会依据讲课内容安置相应的作业,关于一切提交作业的同学会颁布结业证书,一起关于作业优异的同学还会颁布优异学员证书,如下图所示:

如何用低代码完成批量导出PDF?

可是跟着新手训练营的日益火爆,参与学习的人也越来越多,证书的数量也就越来越多。而咱们这边担任运营新手训练营的搭档就遇见了这么一个问题:由于新手训练营的证书是手动制造的,每次在颁布证书的时候都要一个一个填每个人的名字、训练营的期数和授课日期的时刻,这样一来跟着报名的人越来越多,证书的数量也就越来越多,手动one by one的制造作业量越来越大,耗时长,效率低。

为了处理这个问题,小编用我司的企业级低代码开发平台活字格做一个新手训练营证书打印体系。下面是这个体系的全体功用流程图:

体系全体功用流程图

如何用低代码完成批量导出PDF?

表规划

在规划完初始的体系功用流程之后,小编首要开端进行数据库的表规划,由于新手训练营分为四个产品(Wyn、SpreadJS、ActiveReportsJS和活字格),所以依照产品的分类规划四张表,标明也别离是产品名,字段依照Excel中的字段别离设置为名字、期数和日期。

如何用低代码完成批量导出PDF?

界面规划

在规划完表之后,小编开端规划体系的界面,如下图所示,左边是依照四个产品完成导航栏,点击之后就会跳转到相应的右边的详细界面。在详细界面中,中间部分的表格用来显现训练营的学员信息数据,表格的最左边是选中行,在表格的上方有四个按钮,别离是查询、增加、删去和导入Excel四个按钮。在表格的下方是导出结业证书和导出优异学员两个按钮。这两个按钮是用来别离导出选中行对应的证书,最下面是分页栏,当表中的信息过多时能够分页显现。

如何用低代码完成批量导出PDF?

功用规划

如何用低代码完成批量导出PDF?

**导入Excel:**将新手训练营的证书发放人员信息Excel表中的数据导入到体系中。

**批量证书打印:**能够指定恣意的数据进行批量打印PDF证书,并存储在紧缩包(紧缩包名称为期数名称)中从浏览器上下载下来。

**增加/查询/修正/删去数据:**除了用Excel导入文件数据之外,还能够直接在体系中手动增加和修正数据,并批量删去选中的数据。除此之外,当表中的数据过多时,还能够依据名字和期数进行含糊查询。

**分页:**规则每页显现的数据条数,超往后主动分页。

详细完成进程

下面小编将为我们介绍一下如何运用我司的低代码产品活字格完成,分为前端页面和后端逻辑两部分。

前端页面:

在界面规划章节中,小编现已规划好了整个体系的大致前端界面联系,接下来只需求完成即可。和传统代码开发不同的是,活字格在前端的规划是完全可视化的,和Excel相似,用户只需求在活字格规划器中拖拽规划即可。

1)导航栏规划

首要规划页面中的导航栏,它用于协助用户快速导航和浏览体系的不同功用和页面,适当于是整个体系中的”地图“。

下图是活字格规划中的导航栏设置页面,左边的一级菜单中,别离包括四个二级菜单栏别离对应四个产品信息。

如何用低代码完成批量导出PDF?

**导航栏跳转:**双击【一级菜单】->挑选恣意一个产品->点击【修正指令】。

如何用低代码完成批量导出PDF?

**页面跳转指令:**挑选【修正指令】后跳转到该界面,挑选【新建指令】->【页面跳转】并挑选要跳转到的页面,四个二级菜单的操作方法均相同(由于此时还没有创立跳转到的页面,所以挑选页面这一步能够空着,等后边页面创立完之后再回来挑选)。

如何用低代码完成批量导出PDF?

2)详细页面规划

规划完导航页面之后,接下来便是规划跳转之后的详细界面。以Wyn新手训练营证书为例,在现已规划好的Wyn表中右键挑选【从表快速生成页面】,就会主动生成下面两个页面,第一个页面是显现界面,第二个页面是详细界面,然后依照界面规划中的模板将剩下的按钮(查询、删去、导入Excel、导出结业证书和导出优异学员)和分页补全即可,其他三个产品的操作方法和Wyn相同,在此不做过多赘述。

如何用低代码完成批量导出PDF?

如何用低代码完成批量导出PDF?

后端逻辑:

规划完前端页面后,小编现在依照功用规划模块中的需求一步一步完成详细每个小功用:

1)导入Excel

首要完成导入Excel这一功用,下图是从新手训练营体系中导出的一份取得优异学员和结业证书的名单模板,需求将这份Excel中的数据导入到体系中。(1和0别离代表取得和未取得)

如何用低代码完成批量导出PDF?

下面是运用活字格完成导入Excel逻辑的全进程:

(1)挑选前端页面规划的【导入Excel】按钮并挑选【修正指令】。

(2)在指令窗口中挑选【新建指令】,然后挑选【导入Excel数据到表格】指令,表格名挑选对应的数据库表,导入模式挑选追加(追加:只追加数据;合并:追加新增数据,更新已有数据,不删去已有数据;替换:追加新增数据,更新和删去已有数据),导入到Excel的作业表名挑选对应的Excel中的sheet列名,越过行数挑选导入Excel按钮后边的文本框,表格中的列挑选页面中对应的列即可。

如何用低代码完成批量导出PDF?

2)查询/新增/修正/删去

1.**查询:**挑选【查询】按钮中的【修正指令】->【查询】指令,字段挑选页面中的字段,值挑选查询按钮前的查询框。

如何用低代码完成批量导出PDF?

2.**新增数据:**挑选【增加数据按钮】->【数据库操作】->【增加】,字段挑选页面中的字段,值挑选字段对应的单元格。

如何用低代码完成批量导出PDF?

3.**修正数据:**在显现界面中翻开【更改】的修正指令,挑选【页面跳转】,跳转页面挑选概况界面,方针单元格挑选概况页面中的更新按钮。

如何用低代码完成批量导出PDF?

在概况页面的单元格中,翻开指令窗口,并判别传值,假如传过来的是【更改】信息则更新数据,假如传来的是【增加】则为增加数据。

如何用低代码完成批量导出PDF?

4.**删去数据:**翻开【删去】按钮的修正指令,挑选【数据表操作】->【删去】,操作记载挑选挑选行。

如何用低代码完成批量导出PDF?

3)批量证书打印

相较于前面几个指令,批量打印证书的指令操作方法比较复杂,需求用到服务端指令,为了让我们更好地理解,在规划前小编先给我们简略的介绍一下打印逻辑:

首要是依据表格中的挑选行(参数为名字、期数和日期)循环批量生成一切的PDF文件,并依照训练营期数分到不同的文件夹里边。然后第二步是将循环一中一切的期数文件夹紧缩为zip文件(文件名为期数),这儿需求注意的是需求将期数进行去重,由于一期里边有许多人,假如不去重,会生成许多重复的期数zip文件。第三步是将循环二中生成的一切zip文件删去掉,原因是假如不删去,再次生成和下载相同的期数zip文件时会报”文件名重复“的报错。

如何用低代码完成批量导出PDF?

逻辑理清楚后,紧接着小编开端用活字格完成:

(1)创立一个服务端指令,参数挑选对应表中的字段(ID,名字和期数)

如何用低代码完成批量导出PDF?

(2)紧接着是修正对应的指令逻辑,第一个循环是打印一切的PDF文件,报表挑选Wyn的结业证书,文件路径运用参数拼接,报表参数传递为表id,原因是id是仅有的,不会重复。

如何用低代码完成批量导出PDF?

报表页面:期数、名字和日期用参数代替,参数数据源挑选表id,查询条件为id,打印时会将对应id的名字、期数和日期填充到报表中。

如何用低代码完成批量导出PDF?

如何用低代码完成批量导出PDF?

(3)第一步循环中将一切PDF打印出来后,第二个循环是依照期数将文件夹紧缩为zip包,然后将zip包从浏览器中下载下来(注意需求去对期数去重)

如何用低代码完成批量导出PDF?

(3)第三步循环中将第二步所生成的zip文件删掉,需求注意的是循环数组依然是以去重的期数为变量。

如何用低代码完成批量导出PDF?

(4)最后一步是将服务端指令放到导出结业证书按钮的指令中,详细操作如下图所示:

如何用低代码完成批量导出PDF?

4)分页

挑选分页组件,在单元格设置中修正和修正分页行数。

如何用低代码完成批量导出PDF?

以上是以Wyn新手训练营为例的服务端功用指令操作,其他页面的服务端指令和Wyn操作方法一致,在这不做过多赘述。

发布

等到一切的页面都规划完成之后,需求将体系发布到云服务器上,能够运用阿里云、腾讯云等服务器,也能够运用活字格云服务器,小编以活字格云服务器为例,介绍如何将体系发布到云上:

挑选【发布】->【服务器】->【管理发布设置】->【新建】,填写用户名和暗码之后挑选【下一步】,然后挑选【发布】即可。

如何用低代码完成批量导出PDF?

最后附上完好文件工程的Gitee地址:

gitee.com/GrapeCity/b…

拉取方法:

如何用低代码完成批量导出PDF?

**体系的价值:**在运用了这个体系之后,制造证书的时刻由以前的2小时缩短到现在的5分钟,大大提升了正式制造的作业效率。用户在参与完训练营后,也能更快拿到制造好的证书啦。

总结

以上便是新手训练营完成一个批量打印PDF的全进程,假如您想了解更多有关于活字格的信息,欢迎点击这儿查看。

扩展链接:

Redis从入门到实践

一节课带你搞懂数据库业务!

Chrome开发者东西运用教程

从表单驱动到模型驱动,解读低代码开发平台的发展趋势

低代码开发平台是什么?

根据分支的版本管理,协助低代码从项目交给走向定制化产品开发