报价项目管道材料统计汇总程序应用研究
2021-06-28谢明明罗智平
郑 帅,谢明明,王 焱,罗智平
(中国五环工程有限公司,湖北 武汉 430223)
随着三维设计软件在化工工程详细设计工作中的普及,管道材料统计工作已实现依据三维模型数据库进行自动化精准输出,大幅提高了管道布置设计人员的工作效率。
但对于项目前期报价阶段的管道材料统计工作,由于没有三维模型数据库支撑,只能采用传统工作方式进行统计汇总。在此过程中,需要频繁查阅材料等级文件,并对材料数量进行分类汇总,工作效率和质量均较难保证。本文讨论如何利用程序辅助完成管道材料统计汇总工作,实现规范化生成管道材料汇总表,以提高数据质量和工作效率。
1 程序实现思路
根据工程实际需求,本程序需要解决项目前期报价阶段,编制管道材料汇总表的数据规范性问题,并提供数据输入后自动输出成品文件的功能。程序规划架构见图1,首先将材料等级文件读取并写入程序数据库,然后根据用户在程序界面中输入的管道材料信息,与数据库内的材料等级文件信息进行匹配,最终汇总输出成品管道材料汇总表。程序功能的实现涉及到对Word/Excel文件、数据库的读写等技术难点。本程序是基于.NET平台开发,通过调用成熟的.NET类库来解决上述技术难点。
2 程序与Word/Excel文件的交互
报价项目的管道材料等级文件以及管道材料汇总表多以Word或Excel格式存储,为了获取材料等级信息和输出成品,程序需要与上述文件发生读取和输出交互。本程序是基于.NET平台开发的,而.NET平台对Word/Excel文件操作主要有三种方式:Ole方式、调用Word/Excel的COM组件方式、使用第三方类库(NPOI、Aspose、Spire等)方式。
本程序通过使用Asposefor.NET(包括Aspose.Words与Aspose.Cells)实现与Word/Excel文件的交互操作。
2.1 Aspose.Words处理Word文件
使用Aspose.Words加载Word文件后,会在内存中生成一个文档对象模型(DOM)映射。DOM内的树形对象结构见图2。Document对象是文档树的根节点,可通过节点类型和节点间继承关系获取其子节点集合(NodeCollection),程序可以通过循环遍历该集合获取相应子节点信息并进行读写操作。
2.2 Aspose.Cells处理Excel文件
使用Aspose.Cells加载Excel文件后,同样会在内存中生成一个映射,该映射包含Workbook、Worksheet、Cells等对象类型。其中,Workbook对象提供访问整个Excel文件的入口。与Aspose.Words的DOM不同的是,Aspose.Cells内并不存在上述对象间的继承关系,而是采用了类似Excel的数据存数结构:一个Excel文件对应一个Workbook对象,一个Workbook对象可包含多个Worksheet对象,数据直接存储到Worksheet下属的Cells对象内。程序可通过行、列索引直接定位到对应单元格,之后就能对该单元格数据进行读写操作。
3 程序与SQLite数据库的交互
在获取Word/Excel文件内的材料等级信息后,需要将这些信息写入程序数据库。待用户输入查询条件信息后,程序从数据库读取符合查询条件的材料等级信息,并反馈到程序界面上。上述过程涉及到程序与数据库间的读写交互。本程序采用SQLite数据库,通过ADO.NET技术实现与SQLite数据库的交互。
ADO.NET是微软公司新一代.NET数据库的访问模型,是目前数据库程序设计人员用来开发基于.NET平台数据库应用程序的主要接口。ADO.NET是一个类库,提供了很多用于完成数据库连接和增删改查(CRUD)操作的对象,其结构模型见图3。
ADO.NET提供了两种操作SQLite数据库的方式:①使用SQLiteConnection、SQLiteCommand、SQLiteDataReader,其权限只能读取或查询数据库;②使用SQLiteConnection、SQLiteCommand、SQLiteDataAdapter、DataSet数据集,其权限可进行各种数据库读写操作。
4 程序操作介绍
4.1 建立查询数据库
本程序涉及的数据库分为两类:一类是通过材料等级Word/Excel文件获取,如管道材料等级表、管道壁厚表及支管连接表等数据,这类数据通过文件导入程序数据库;另一类通过相关标准规范获取,如异径管变径口径范围、三通支管口径范围、法兰匹配螺栓长度及螺栓数量等数据,这类数据在程序数据库中内置。其中,文件导入界面见图4所示。
导入操作流程如下:①输入项目代号,如TEST;②选择材料等级文件内使用的单位格式(公制/英制);③选择材料等级文件的格式(Word/Excel);④选择要导入的材料等级文件类型(等级表/支管表/壁厚表);⑤点击“浏览”按钮,弹出加载文件窗口,选择材料等级文件存放路径;⑥点击“预览”按钮,将会在程序下方预览窗口内显示读取到的相关数据;⑦点击“写入”按钮,将预览窗口内数据写入后台数据库。
4.2 材料统计与汇总
本程序材料统计与汇总界面见图5,主要包括上下两部分。界面上方为用户选择管道材料区域,界面下方是显示用户已录入材料信息区域。统计与汇总操作流程如下:①输入管线号(一般从CAD文件复制);②输入管线号分隔符以及等级、口径所在的位数(同一个项目一般只需输入一次),点OK按钮,程序获取等级名及口径信息;③选择材料类型(TUBE/ELBO/REDU/TEE等),程序会从数据库筛选符合要求的材料名称,并在右侧候选列表显示;④用户在候选列表内选择所需的材料名称,此时程序会查询数据库,将所选择元件条目的标准、材质、规格、壁厚等信息自动填充到界面右侧对应文本框内;⑤输入该元件的数量,点“添加”按钮,将该条记录写入数据库;⑥重复①-⑤步骤,直至将所有管线数据录入完毕。
4.3 运行结果
待录入完毕后,点击“生成Excel”按钮,即可导出相应的成品Excel文件,包括管道综合材料表(见图6)和管道安装材料表(见图7)。
从运行结果可以看出,本程序生成的管道材料汇总表文件的内容及格式均可满足报价项目需求。
5 结语
通过调用Aspose For.Net的Word/Excel类库、ADO.NET类库,实现了程序化输入材料和规范化输出材料汇总表文件,证明使用程序辅助报价项目材料统计汇总工作的可行性。在项目报价阶段使用本程序,可高效、准确输出规范化的材料汇总表文件,为项目精细化管理提供有力的信息化技术支撑。同时,本程序使用现有类库进行集成开发的思路也可为今后工程信息化程序开发工作提供借鉴。