一种多平台大批量生成报告文档的方法技术

技术编号:36393648 阅读:55 留言:0更新日期:2023-01-18 09:58
本发明专利技术涉及一种多平台大批量生成报告文档的方法,所述方法应用于多平台下大批量生成报告文档系统,所述系统包括:数据源读取模块、内存池、数据处理模块、临时数据库、报告生成器、多线程同步器。本发明专利技术取消手工输入的方式,可以自动生成报告,极大减少输入错误导致的报告作废;支持很多数据源,且可以在多平台稳定运行,包括Windows平台、Linux平台与MacOS平台上,适用于企业工程施工现场,适配不同的计算机操作系统;而且本方法读取数据源且生成报告速度快,还占用内存小。还占用内存小。还占用内存小。

【技术实现步骤摘要】
一种多平台大批量生成报告文档的方法


[0001]本专利技术属于文档处理领域,具体涉及一种多平台大批量生成报告文档的方法。

技术介绍

[0002]化工建设企业、建筑企业、路桥企业施工等企业在施工生产的过程中无法避免的要生成大量的与工程施工相关的报告,包括进度记录、安全记录、质量报告等,且关于此类表格和报告的数量众多。若遇到特殊情况,如大检修突击项目,项目完成后才开始出报告;施工过程中甲方/监理方下发联络签通知修改某个报告/表格格式,以前报告/表格全部作废。这种情况下,大部分的施工企业都是对外招聘大量的短工当打字员,根据原始记录、台账等数据手工输入报告,这样不但浪费人力,占用大量时间,更重要的是,手工输入报告,输入速度仍然不是很理想,而且在很多专业工程项目的专业报告,包含很多特殊的字符数字,人工输入一不小心就会错误,很多关键位置的符号如果发生了错误,整个报告的含义就会发生改变,导致报告作废。
[0003]采用现有软件生成报告文件,每次生成文件时使用的数据源的数据条目的数量极大,如果一次性全部读取到内存中再进行处理的话占用内存量太多,任务根本无法完成,不具备实用性;而数据单条读取再处理,经过测试40000条记录处理并生成文件要耗时一个多小时,同样不具备实用性。

技术实现思路

[0004]本专利技术的目的就在于为了解决上述问题而提供一种多平台大批量生成报告文档的方法。
[0005]本专利技术通过以下技术方案来实现上述目的:
[0006]一种多平台大批量生成报告文档的方法,所述方法应用于大批量生成报告文档系统,所述系统包括:数据源读取模块、内存池、数据处理模块、临时数据库、报告生成器、多线程同步器;其中,所述方法包括如下步骤:
[0007]S1、通过多线程同步器控制数据源读取模块从数据源库中读取原始施工报告数据并写入至内存池管理;
[0008]S2、当内存池内原始施工报告数据数据写入至设定数量后,触发多线程同步器控制所述数据处理模块对内存池的原始施工报告数据进行预处理,获得预处理数据存入临时数据库;
[0009]S3、通过多线程同步器控制报告生成器读取所述临时数据库的预处理数据生成报告文件;
[0010]其中,所述S1

S3中的多线程同步器控制均为单独控制。
[0011]作为本专利技术的进一步优化方案,所述多线程同步器包括用于控制数据源读取模块从数据源库读取原始施工报告数据的数据源读取线程模块、用于控制数据源读取线程模块读取设定数量的原始施工报告数据后触发数据处理模块的源数据处理线程模块、用于控制
报告生成器读取临时数据库的预处理数据生成报告的报告生成器线程模块以及用于居中调度传递信号消息的守护线程模块。
[0012]作为本专利技术的进一步优化方案,所述S1的数据源库包括以下任意一种:
[0013](1)Windows平台下的Excel工作表文件、Access数据库、SQLServer数据库;
[0014](2)Linux平台下的MySQL数据库、Firebrid数据库;
[0015](3)移动平台上的SQLite数据库;
[0016](4)指定格式的以逗号分隔的文本文件兼容ODBC标准的数据源。
[0017]作为本专利技术的进一步优化方案,所述S2中预处理具体为:删除原始施工报告数据中不必要的空格、换行、空行,或特殊符号的大小写转换,或数字及日期格式的统一格式化操作。
[0018]作为本专利技术的进一步优化方案,所述S1的内存池,包括用于缓冲池扩大或缩小的粒度管理的内存大小管理模块和用于内存分配、分配粒度管理和内存释放的内存存放模块。
[0019]作为本专利技术的进一步优化方案,所述数据源读取模块、数据处理模块和报告生成器读取、处理和生成过程均通过BackworkOperator函数实现。
[0020]本专利技术的有益效果在于:
[0021]本专利技术取消手工输入的方式,可以自动生成报告,极大减少输入错误导致的报告作废;支持很多数据源,且可以在多平台稳定运行,包括Windows平台、Linux平台与MacOS平台上,适用于企业工程施工现场,适配不同的计算机操作系统;而且本方法读取数据源且生成报告速度快,还占用内存小。
附图说明
[0022]图1是本专利技术的整体系统框图。
具体实施方式
[0023]下面结合附图对本申请作进一步详细描述,有必要在此指出的是,以下具体实施方式只用于对本申请进行进一步的说明,不能理解为对本申请保护范围的限制,该领域的技术人员可以根据上述申请内容对本申请作出一些非本质的改进和调整。
[0024]实施例1
[0025]一种多平台大批量生成报告文档的方法,该方法应用于大批量生成报告文档系统,如图1所示,所述系统包括:数据源读取模块、内存池、数据处理模块、临时数据库、报告生成器、多线程同步器,其中,所述多线程同步器中包括四个线程,具体为:数据源读取线程模块、源数据处理线程模块、报告生成器线程模块、守护线程模块。
[0026]所述内存池,包括用于缓冲池扩大或缩小的粒度管理的内存大小管理模块和用于内存分配、分配粒度管理和内存释放的内存存放模块。内存池的实现基于现有的硬件内存缓冲池技术,该技术是在用户终端的硬件内存中开辟出一块不由操作系统管理,由上述系统管理的保存数据的区域。如此,数据源读取模块即读取器从数据源中读取数据的时候,就不需要暂停读取器,由多线程同步器中的数据源读取线程模块控制读取器在单独线程中执行,直到数据读取结束,可以极大加快数据读取的速度。
[0027]其中,本专利技术多平台大批量生成报告文档的方法,包括如下步骤:
[0028]S1、通过多线程同步器的数据源读取线程模块控制数据源读取模块从数据源库中读取原始施工报告数据并写入至内存池管理;
[0029]S2、当内存池内原始施工报告数据数据写入至设定数量后,触发多线程同步器的源数据处理线程模块控制所述数据处理模块对内存池的原始施工报告数据进行预处理,获得预处理数据存入临时数据库;
[0030]当数据处理模块将内存池内的一部分原始施工报告数据读取并处理后,内存池中该部分内存被释放出来,供数据源读取模块继续从数据源库中读取且存入至内存池,使得数据源读取模块可以持续读取,加快速度;
[0031]S3、通过多线程同步器的报告生成器线程模块控制报告生成器读取所述临时数据库的预处理数据生成报告文件;
[0032]其中,所述S1

S3中的多线程同步器控制均为单独控制,通过守护线程模块对其余三个线程模块进行守护,进行居中调度以及传递信号,防止数据污染和线程锁死。
[0033]数据源读取模块向内存池写入数据达到一定数量后,触发由另一个线程操作的数据处理模块开始工作对读取写入的数据进行预处理,用于删除不必要的空格、换行、空行,某些特殊符号的大小写转换,数字及日期格式的统一格式化等操作,同时将处理好获得的预处理数据写入临时的数据库;再本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多平台大批量生成报告文档的方法,其特征在于,所述方法应用于大批量生成报告文档的系统,所述系统包括:数据源读取模块、内存池、数据处理模块、临时数据库、报告生成器、多线程同步器;其中,所述方法包括如下步骤:S1、通过多线程同步器控制数据源读取模块从数据源库中读取原始施工报告数据并写入至内存池管理;S2、当内存池内原始施工报告数据数据写入至设定数量后,触发多线程同步器控制所述数据处理模块对内存池的原始施工报告数据进行预处理,获得预处理数据存入临时数据库;S3、通过多线程同步器控制报告生成器读取所述临时数据库的预处理数据生成报告文件;其中,所述S1

S3中的多线程同步器控制均为单独控制。2.根据权利要求1所述的一种多平台大批量生成报告文档的方法,其特征在于,所述多线程同步器包括用于控制数据源读取模块从数据源库读取原始施工报告数据的数据源读取线程模块、用于控制数据源读取线程模块读取设定数量的原始施工报告数据后触发数据处理模块的源数据处理线程模块、用于控制报告生成器读取临时数据库的预处理数据生成报告的报告生成器线程模块以及用于居中调度传递信号消息...

【专利技术属性】
技术研发人员:马跃新廖伟
申请(专利权)人:安徽三兴检测有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1