DataLink报表制作是PI系统使用中,非常频繁的事情
要求使用人员可以快速制作简单报表。制作报表可以简单的时候DataLink插件,只
见点击,拖拉实现。但是这样制作的报表,开发速度不高,不方便修改,使用也不方
便。我们推荐使用SDK和API的方法开发,前者比较简单,后者麻烦一点。从对国内的一些实时数据库的报表了解来看,这个是主流,估计OSI开始也就是这么做报表,之后才开发更加简单的插件方式。
一般我们会采用如下的基本思路
首先是报表布局
可以参考原来的文档报表格式,建议稍微做修改,tag点最好用列的方式布局,也
就是说,报表是竖的。
时间是报表的重要元素。
实时报表,好像在实际使用中很少,我们一般要做每天的日报,月报,或者是任意
时段的数据分析。
时间控件可以选的不少,甚至用combobox也可以完成(但是往往涉及闰年判断),
建议使用DTpicker,可以把DTpicker.value获得的时间放在某个单元格里,再对时间
进行自己需要的格式化。
为了页面,简洁美观,时间单元格一般被隐藏处理,我们建议把时间单元格放在
sheet2里。
对于时间,可以做一些简单的分析,例如开始时间小于结束时间,结束时间不好大于现在时间,甚至开始时间不要大于PI数据开始时间。等等。
另一个重要参数是tag。对于使用SDK或者API开发报表来说,部署tag在页面上是
必须的。建议把tag也存放在sheet2,可以把sheet2命名成基础数据表。
建议用tagseach直接获得点,当然,这个要求点的命名有规律。这个是基础工作
,基础要打好。
tag为了便于整理,可以在前列获得它的中文描述,这样方便后来者再修改,开发
。
tag的放置位置最好和sheet1数据位置对应,这样会提高代码的可阅读性。
tag也可以放在数据库里,再去获得点。或者在内存计算,按CIM模型自动去找点,当然,这个对 CIM模型要求比较高,开发难度也有所提高。
PI服务器也应该放置在基础数据表里,这样在更换PI服务器之后,我们只需要修
改服务器单元格,就可以顺利使用了。
具体的语句不一一抄出来,你可以在单元格看见,把单元格的抄到后台就好。具体请看帮助。有具体问题我们再讨论。
建议月报的话,计算结果保存在新的sheet里,下次直接调用,避免再计算。
代码里还要考虑一些东西,比如,坏数据处理,当没有数据的时候,最好显示"无
数据"之类。excel退出的时候,会再计算一次,可以设置退出不保存。还有连接PI服
务器不成功的时候,可以告警,并停止计算。
可以脱离DataLink,使用API和SQL数据库,在其他报表工具或者web里实现报表功能,这个是另外的话题,可以用于更高级的数据分析,以后再聊。
www.realtime.net.cn 会是最具技术性的实时数据库网站