System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及打印,尤其涉及一种大数据量表格的高效打印方法、系统和服务器。
技术介绍
1、在目前的很多生产管理系统中,会选择使用handsontable插件来模拟excel表格功能。但当用户需要进行编辑及打印等操作,而表格数据量又非常大甚至可能达到上千或上万行时,常规的handsontable打印方法会出现系统崩溃、服务断开等极其影响使用的问题。譬如mes系统中已有的工单批记录模块,大部分药厂的生产记录数据动辄超过千页,使得打印批记录时经常断开,需要再重新打印,非常影响生产流程和管理工作效率。
技术实现思路
1、本专利技术针对现有技术中的不足,公开了一种大数据量表格的高效打印方法,包括如下步骤:
2、s1,接收打印任务请求和使用handsontable表格记录的待打印批记录文件,开启打印任务线程和背景工作线程,将打印任务请求中的设置参数发送至所述背景工作线程;
3、s2,背景工作线程根据接收的设置参数和待打印批记录文件所属项目信息从处理逻辑数据库中查询获取匹配的表格处理逻辑组合,加载匹配到的表格处理逻辑组合对所述待打印批记录文件的handsontable表格记录数据进行预处理调整,形成拟打印数据,所述表格处理逻辑组合包括但不限于数据转换操作、边框补充操作、合并样式获取操作、和打印区域获取操作;
4、s3,打印任务线程在接收到背景工作线程发送的拟打印数据后调用打印机执行打印动作。
5、优选的,所述步骤s2还包括:
6、依次对
7、若存在单元格边框配置信息则对所述单元格边框配置信息进行遍历,若当前单元格边框配置信息中存在上边框配置信息或下边框配置信息,则对所在合并单元格进行拆分并获取所有子单元格,向各子单元格补充添加对应的上边框配置信息或下边框配置信息。
8、优选的,所述步骤s2还包括:
9、将待打印的handsontable表格记录数据和合并数据格式转换为excel表格应用的数据格式;
10、通过获取待打印的表格记录数据中的各单元格文字数据信息、单元格形态数据、合并单元格信息,确定需要进行打印待打印表格记录数据中的最大列位置和最小列位置,根据所述最大列位置和最小列位置确认本次表格记录数据的打印区域。
11、优选的,所述背景工作线程被配置为保存在前端项目的静态文件夹中的javascript文件。
12、优选的,所述步骤s3具体包括:
13、步骤s31,背景工作线程获取待接收打印数据的目标打印机身份信息,根据目标打印机身份信息访问打印配置数据库中查询是否存在匹配所述目标打印机身份信息的数据打印规则,所述数据打印规则被配置为背景工作线程按对应的数据分割大小将处理好的拟打印数据进行分割断页后打包形成多个子打印数据包,所述各子打印数据包具有标识其在拟打印数据中所在位置顺序的序号标识;
14、步骤s32,打印任务线程在接收到背景工作线程发送的子打印数据包后调用目标打印机执行打印动作,并在收到目标打印机反馈的该子打印数据包打印完成后继续发送下一子打印数据包。
15、本专利技术还公开了一种大数据量表格的高效打印系统,包括打印任务模块和背景工作模块;其中打印任务模块被配置为将打印任务请求中的设置参数发送至所述背景工作线程;背景工作模块被配置为根据接收的设置参数和待打印批记录文件所属项目信息从处理逻辑数据库中查询获取匹配的表格处理逻辑组合,加载匹配到的表格处理逻辑组合对所述待打印批记录文件的handsontable表格记录数据进行预处理调整,形成拟打印数据,所述表格处理逻辑组合包括但不限于数据转换操作、边框补充操作、合并样式获取操作、和打印区域获取操作;打印任务模块在接收到背景工作线程发送的拟打印数据后调用打印机执行打印动作。
16、优选的,背景工作模块被配置为依次对待打印的handsontable表格记录数据的各单元格进行遍历,若存在合并单元格数组,则判断所述合并单元格数组上是否存在单元格边框配置信息;若存在单元格边框配置信息则对所述单元格边框配置信息进行遍历,若当前单元格边框配置信息中存在上边框配置信息或下边框配置信息,则对所在合并单元格进行拆分并获取所有子单元格,向各子单元格补充添加对应的上边框配置信息或下边框配置信息。
17、优选的,背景工作模块被配置为将待打印的handsontable表格记录数据和合并数据格式转换为excel表格应用的数据格式;通过获取待打印的表格记录数据中的各单元格文字数据信息、单元格形态数据、合并单元格信息,确定需要进行打印待打印表格记录数据中的最大列位置和最小列位置,根据所述最大列位置和最小列位置确认本次表格记录数据的打印区域。
18、本专利技术还公开了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述任一所述方法的步骤。
19、本专利技术还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述任一所述方法的步骤。
20、本专利技术公开的大数据量表格的高效打印方法,通过使用javascript的多线程worker技术,结合vue项目,通过把打印handsontable表格数据之前的大量运算逻辑转移到背景工作线程,从而不影响主线程的运行,待背景工作线程worker进行运算结束,把结果返回作为主线程的打印任务线程,从而再开始打印。有效解决了常规的打印handsontable方法在表格数据量达到上千行时经常出现的系统崩溃、服务断开等极其影响使用的问题,从而提供一个针对使用handsontable插件的mes系统可以稳定的打印大量数据的方法,满足用户大数据量表格打印需求。
21、本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。
本文档来自技高网...【技术保护点】
1.一种大数据量表格的高效打印方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的大数据量表格的高效打印方法,其特征在于,所述步骤S2还包括:
3.根据权利要求2所述的大数据量表格的高效打印方法,其特征在于,所述步骤S2还包括:
4.根据权利要求3所述的大数据量表格的高效打印方法,其特征在于,所述背景工作线程被配置为保存在前端项目的静态文件夹中的javaScript文件。
5.根据权利要求4所述的大数据量表格的高效打印方法,其特征在于,所述步骤S3具体包括:
6.一种大数据量表格的高效打印系统,其特征在于,包括打印任务模块和背景工作模块;其中
7.根据权利要求6所述的大数据量表格的高效打印系统,其特征在于:背景工作模块被配置为依次对待打印的Handsontable表格记录数据的各单元格进行遍历,若存在合并单元格数组,则判断所述合并单元格数组上是否存在单元格边框配置信息;若存在单元格边框配置信息则对所述单元格边框配置信息进行遍历,若当前单元格边框配置信息中存在上边框配置信息或下边框配置信息,则对所在合并单
8.根据权利要求7所述的大数据量表格的高效打印系统,其特征在于:背景工作模块被配置为将待打印的Handsontable表格记录数据和合并数据格式转换为Excel表格应用的数据格式;通过获取待打印的表格记录数据中的各单元格文字数据信息、单元格形态数据、合并单元格信息,确定需要进行打印待打印表格记录数据中的最大列位置和最小列位置,根据所述最大列位置和最小列位置确认本次表格记录数据的打印区域。
9.服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1-5任一所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-5任一所述方法的步骤。
...【技术特征摘要】
1.一种大数据量表格的高效打印方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的大数据量表格的高效打印方法,其特征在于,所述步骤s2还包括:
3.根据权利要求2所述的大数据量表格的高效打印方法,其特征在于,所述步骤s2还包括:
4.根据权利要求3所述的大数据量表格的高效打印方法,其特征在于,所述背景工作线程被配置为保存在前端项目的静态文件夹中的javascript文件。
5.根据权利要求4所述的大数据量表格的高效打印方法,其特征在于,所述步骤s3具体包括:
6.一种大数据量表格的高效打印系统,其特征在于,包括打印任务模块和背景工作模块;其中
7.根据权利要求6所述的大数据量表格的高效打印系统,其特征在于:背景工作模块被配置为依次对待打印的handsontable表格记录数据的各单元格进行遍历,若存在合并单元格数组,则判断所述合并单元格数组上是否存在单元格边框配置信息;若存在单元格边框配置信息则对所述单元格边框配置信息进行遍历,...
【专利技术属性】
技术研发人员:吕国庆,薛立俊,应先荣,叶大伟,王兴华,
申请(专利权)人:明度智云浙江科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。