前言
事件是这样的,相熟咱们的敌人都晓得,我司有一个为宽广开发者敌人们提供学习帮忙的中央,叫做老手训练营,具体的内容就是会针对首次接触葡萄城产品和技术的用户,通过 2-3 天的集中学习,采纳直播授课的形式帮忙用户疾速上手产品,课后讲师会依据讲课内容安排相应的作业,对于所有提交作业的同学会颁发结业证书,同时对于作业优良的同学还会颁发优良学员证书,如下图所示:
然而随着老手训练营的日益火爆,加入学习的人也越来越多,证书的数量也就越来越多。而咱们这边负责经营老手训练营的共事就遇见了这么一个问题: 因为老手训练营的证书是手动制作的,每次在颁发证书的时候都要一个一个填每个人的姓名、训练营的期数和授课日期的工夫,这样一来随着报名的人越来越多,证书的数量也就越来越多,手动 one by one 的制作工作量越来越大,耗时长,效率低。
为了解决这个问题,小编用我司的企业级低代码开发平台活字格做一个老手训练营证书打印零碎。上面是这个零碎的整体性能流程图:
零碎整体性能流程图
表设计
在设计完初始的零碎性能流程之后,小编首先开始进行数据库的表设计,因为老手训练营分为四个产品(Wyn、SpreadJS、ActiveReportsJS 和活字格),所以依照产品的分类设计四张表,表明也别离是产品名,字段依照 Excel 中的字段别离设置为姓名、期数和日期。
界面设计
在设计完表之后,小编开始设计零碎的界面,如下图所示,左侧是依照四个产品实现导航栏,点击之后就会跳转到相应的左边的具体界面。在具体界面中,两头局部的表格用来显示训练营的学员信息数据,表格的最左侧是选中行,在表格的上方有四个按钮,别离是查问、增加、删除和导入 Excel 四个按钮。在表格的下方是导出结业证书和导出优良学员两个按钮。这两个按钮是用来别离导出选中行对应的证书,最上面是分页栏,当表中的信息过多时能够分页显示。
功能设计
导入 Excel: 将老手训练营的证书发放人员信息 Excel 表中的数据导入到零碎中。
批量证书打印: 能够指定任意的数据进行批量打印 PDF 证书,并存储在压缩包(压缩包名称为期数名称)中从浏览器上下载下来。
增加 / 查问 / 批改 / 删除数据: 除了用 Excel 导入文件数据之外,还能够间接在零碎中手动增加和批改数据,并批量删除选中的数据。除此之外,当表中的数据过多时,还能够依据姓名和期数进行含糊查问。
分页: 规定每页显示的数据条数,超过后主动分页。
具体实现过程
上面小编将为大家介绍一下如何应用我司的低代码产品活字格实现,分为前端页面和后端逻辑两局部。
前端页面:
在界面设计章节中,小编曾经设计好了整个零碎的大抵前端界面关系,接下来只须要实现即可。和传统代码开发不同的是,活字格在前端的设计是齐全可视化的,和 Excel 相似,用户只须要在活字格设计器中拖拽设计即可。
1)导航栏设计
首先设计页面中的导航栏,它用于帮忙用户疾速导航和浏览零碎的不同性能和页面,相当于是整个零碎中的”地图“。
下图是活字格设计中的导航栏设置页面,左侧的一级菜单中,别离蕴含四个二级菜单栏别离对应四个产品信息。
导航栏跳转: 双击【一级菜单】-> 抉择任意一个产品 -> 点击【编辑命令】。
页面跳转命令: 抉择【编辑命令】后跳转到该界面,抉择【新建命令】->【页面跳转】并抉择要跳转到的页面,四个二级菜单的操作形式均一样(因为此时还没有创立跳转到的页面,所以抉择页面这一步能够空着,等前面页面创立完之后再回来抉择)。
2)具体页面设计
设计完导航页面之后,接下来就是设计跳转之后的具体界面。以 Wyn 老手训练营证书为例,在曾经设计好的 Wyn 表中右键抉择【从表疾速生成页面】,就会主动生成上面两个页面,第一个页面是显示界面,第二个页面是具体界面,而后依照界面设计中的模板将残余的按钮(查问、删除、导入 Excel、导出结业证书和导出优良学员)和分页补全即可,其余三个产品的操作形式和 Wyn 一样,在此不做过多赘述。
后端逻辑:
设计完前端页面后,小编当初依照功能设计模块中的需要一步一步实现具体每个小性能:
1)导入 Excel
首先实现导入 Excel 这一性能,下图是从老手训练营零碎中导出的一份取得优良学员和结业证书的名单模板,须要将这份 Excel 中的数据导入到零碎中。(1 和 0 别离代表取得和未取得)
上面是应用活字格实现导入 Excel 逻辑的全过程:
(1)抉择前端页面设计的【导入 Excel】按钮并抉择【编辑命令】。
(2)在命令窗口中抉择【新建命令】,而后抉择【导入 Excel 数据到表格】命令,表格名抉择对应的数据库表,导入模式抉择追加(追加:只追加数据;合并:追加新增数据,更新已有数据,不删除已有数据;替换:追加新增数据,更新和删除已有数据),导入到 Excel 的工作表名抉择对应的 Excel 中的 sheet 列名,跳过行数抉择导入 Excel 按钮前面的文本框,表格中的列抉择页面中对应的列即可。
2)查问 / 新增 / 批改 / 删除
1. 查问: 抉择【查问】按钮中的【编辑命令】-\>【查问】命令,字段抉择页面中的字段,值抉择查问按钮前的查问框。
2. 新增数据: 抉择【增加数据按钮】-\>【数据库操作】-\>【增加】,字段抉择页面中的字段,值抉择字段对应的单元格。
3. 批改数据: 在显示界面中关上【更改】的编辑命令,抉择【页面跳转】,跳转页面抉择详情界面,指标单元格抉择详情页面中的更新按钮。
在详情页面的单元格中,关上命令窗口,并判断传值,如果传过来的是【更改】信息则更新数据,如果传来的是【增加】则为增加数据。
4. 删除数据: 关上【删除】按钮的编辑命令,抉择【数据表操作】-\>【删除】,操作记录抉择抉择行。
3)批量证书打印
相较于后面几个命令,批量打印证书的命令操作形式比较复杂,须要用到服务端命令,为了让大家更好地了解,在设计前小编先给大家简略的介绍一下打印逻辑:
首先是依据表格中的抉择行(参数为姓名、期数和日期)循环批量生成所有的 PDF 文件,并依照训练营期数分到不同的文件夹外面。而后第二步是将循环一中所有的期数文件夹压缩为 zip 文件(文件名为期数),这里须要留神的是须要将期数进行去重,因为一期外面有很多人,如果不去重,会生成很多反复的期数 zip 文件。第三步是将循环二中生成的所有 zip 文件删除掉,起因是如果不删除,再次生成和下载雷同的期数 zip 文件时会报”文件名反复“的报错。
逻辑理分明后,紧接着小编开始用活字格实现:
(1)创立一个服务端命令,参数抉择对应表中的字段(ID,姓名和期数)
(2)紧接着是编辑对应的命令逻辑,第一个循环是打印所有的 PDF 文件,报表抉择 Wyn 的结业证书,文件门路应用参数拼接,报表参数传递为表 id,起因是 id 是惟一的,不会反复。
报表页面:期数、姓名和日期用参数代替,参数数据源抉择表 id,查问条件为 id,打印时会将对应 id 的姓名、期数和日期填充到报表中。
(3)第一步循环中将所有 PDF 打印进去后,第二个循环是依照期数将文件夹压缩为 zip 包,而后将 zip 包从浏览器中下载下来(留神须要去对期数去重)
(3)第三步循环中将第二步所生成的 zip 文件删掉,须要留神的是循环数组依然是以去重的期数为变量。
(4)最初一步是将服务端命令放到导出结业证书按钮的命令中,具体操作如下图所示:
4)分页
抉择分页组件,在单元格设置中编辑和批改分页行数。
以上是以 Wyn 老手训练营为例的服务端性能命令操作,其余页面的服务端命令和 Wyn 操作方法统一,在这不做过多赘述。
公布
等到所有的页面都设计实现之后,须要将零碎公布到云服务器上,能够应用阿里云、腾讯云等服务器,也能够应用活字格云服务器,小编以活字格云服务器为例,介绍如何将零碎公布到云上:
抉择【公布】-\>【服务器】-\>【治理公布设置】-\>【新建】,填写用户名和明码之后抉择【下一步】,而后抉择【公布】即可。
最初附上残缺文件工程的 Gitee 地址:
https://gitee.com/GrapeCity/batch-certificate-printing
拉取形式:
零碎的价值: 在应用了这个零碎之后,制作证书的工夫由以前的 2 小时缩短到当初的 5 分钟,大大晋升了正式制作的工作效率。用户在加入完训练营后,也能更快拿到制作好的证书啦。
总结
以上就是老手训练营实现一个批量打印 PDF 的全过程,如果您想理解更多有对于活字格的信息,欢送点击这里查看。
扩大链接:
Redis 从入门到实际
一节课带你搞懂数据库事务!
Chrome 开发者工具应用教程
从表单驱动到模型驱动,解读低代码开发平台的发展趋势
低代码开发平台是什么?
基于分支的版本治理,帮忙低代码从我的项目交付走向定制化产品开发