浅谈PDMS报表输出开发

2019-12-26 03:21罗智平
石油化工自动化 2019年6期
关键词:调用内置报表

罗智平

(中国化学工程集团有限公司,北京 100007)

PDMS是目前国内三维工程设计的主流软件之一,在石油化工领域,其市场占有率达到70%,该软件基于数据库支持,在三维工厂模型设计完成后,可以直接提取工程数据并输出各种设计报表和材料表。同时,PDMS也支持客户化定制开发,可以通过适当的二次修改,实现自动化输出各种设计成品报表。

本文根据实际工作中的开发案例,简要介绍PDMS程序化输出Excel格式报表文件的三种开发思路和方法。

1 目前PDMS支持的开发语言和技术

PDMS软件拥有面向对象宏语言PML的开发能力,随着技术的不断迭代更新,目前新版PDMS在支持自身的PML语言的基础上,引入了微软的.NET技术,确保用户可以使用.NET技术进行开发定制工作。

报表输出是PDMS重要的功能之一,利用PDMS的开发能力,配合工程需要,进行一定的开发,可以实现自动化输出,能有效提高报表输出的工作效率。本文将基于输出材料表的开发演示来介绍如何利用PDMS的开发能力提高工作效率。

1)PML直接开发CSV格式输出。

2)PML调用PDMS内置Excel接口输出。

3)PML调用第三方C#类库输出。

2 开发示例介绍

2.1 PML直接开发CSV格式输出

在开发CSV格式输出时,直接使用PML语言编写程序,收集工程对象的相关属性并按要求完成整理,然后输出成CSV格式的报表文件,可以用Excel格式的文件直接打开。程序处理的流程如图1所示。

图1 PML语言编写程序处理流程示意

在PDMS中选定一个管道对象,运行上述代码就可以生成CSV文件。

2.2 PML调用PDMS内置Excel接口输出

从PDMS 12.0版本开始,软件增加了Grid control对象支持,该对象是PDMS官方的Excel接口,利用该接口,可以直接生成Excel文件,程序处理流程如图2所示。

图2 PML调用PDMS内置Excel接口输出程序处理流程示意

上述两种方法是完全利用PDMS内置功能支持完成Excel格式文件输出开发工作,可以满足初级的报表文件输出需求。如果要生成符合标准体系要求的Excel报表成品文件,上述方法生成的文件还需要增加人工干预的格式修改工作。

2.3 PML调用第三方C#类库输出

PMLNET也是PDMS 12.0版本之后提供的新功能。通过支持微软的.NET开发技术,让PDMS可以使用任意一种兼容.NET的开发语言,由此给PDMS带来了非常灵活的定制开发能力。该方法可以程序化干预输出报表的格式修订,实现一次性输出满足标准体系要求的成品文件,可以直接用于打印。PMLNET的原理示意如图3所示。

图3 PMLNET原理示意

图3中左侧是PDMS,信息的收集和处理如前面两种方法在PDMS内部处理,右侧是利用第三方的C#类库开发出来的PMLNET类库(类库名为Exceladapter),供PDMS调用相关的函数即可。本文中Exceladapter调用的第三方的Excel类库的名字是Aspose.cells,一个专门用于处理Excel文件读写的插件,可以实现技术人员需要的全部定制功能。

PDMS内置的PML程序和PMLNET类库之间可以通过表1中的5种类型变量进行双向数据传递。

表1 PML程序和PMLNET类库对照

在这里技术人员将编写1个Exceladapter.dll中间件,这个中间件负责搭建PML程序和Aspose.cells.dll程序库的沟通桥梁,程序处理流程如图4所示。

图4 利用Exceladapter中间件后的程序处理流程示意

使用该方法开发的Excel输出程序可以实现对输出文件全方位的定制。PDMS内置的模式1无法将多个SHEET合并到1个Excel表内;内置的模式2输出的数字信息是以字符串格式保存,这样会导致管件数量无法直接汇总。以上2种PDMS内置的模式都无法进行Excel文件格式的定制,无法满足作业指导书的要求。

PDMS程序化输出Excel格式报表的3种方法的特点比较见表2所列。

表2 PDMS程序化输出Excel格式

3 结束语

PDMS平台规范的数据库存储和网络并行工

作能力,大幅提高了设计过程中的工程信息的质量和流转效率。在应用PDMS过程中,应加大对设计数据的重视,并以适当的开发工作提高PDMS平台的数据处理能力,自动化输出各种报表文档,以降低在完成三维模型设计后,生成最终成品电子文档阶段的人工时投入,对整个项目设计数据一致性和人工成本的控制有较大的帮助。

利用PMLNET混合开发模式,借助微软的.NET开发平台,使用现有的C#类库助力PDMS开发工作,会产生良好的效果。该开发模式既可以利用现有的PML开发能力读取和处理PDMS数据库,又能利用C#类库完成输出定制和外部数据输入读取,形成优势互补,是一种高效开放的开发模式。

猜你喜欢
调用内置报表
内置加劲环T型管节点抗冲击承载力计算
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
内置电子游戏的运动鞋
镇长看报表
内置管肠排列术治疗严重粘连性肠梗阻的临床分析
利用RFC技术实现SAP系统接口通信
鞘内置入法腱鞘重建治疗Ⅱ区屈肌腱损伤
月度报表
月度报表