润乾(报表展现)获取及处理(集算器)麦杰数据库数据

来源:互联网 发布:免费网络电视在线直播 编辑:程序博客网 时间:2024/09/21 09:05

短暂接触麦杰数据库,欢迎指正!

 

据了解,麦杰实时库虽之前提供过jdbc的连接方式,但后期基本不再维护, 而是统一由opnet(IOPConnect)方式代替,有完整的二次开发接口说明,可以针对实时及历史数据进行操作。

本文也将结合opnet方式,从麦杰数据库历史表获取历史数据并处理为可在报表解析展现的数据格式并在润乾报表中展现。

第一、  基于api获取历史表数据

注:这里不再说明如何设置数据库历史表,本文以w3库TEST_NODE节点的AX点的数据为例

核心代码如下

public class GetMaiJie {

    //定义获取数据,并将获取的数据以序列格式返回给集算器处理

    public static Sequence distance5(){

        //获取数据连接

        String IP = "182.50.125.90";

        int PORT = 8001;

        String USER_NAME = "sis";

        String PASSWORD = "root";

        Sequence sd = new Sequence();

        OPConnect conn = null;

        try {

            conn = new OPConnect(IP,PORT,USER_NAME,PASSWORD);

        } catch (UsersException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

        //获取数据的点

        String[] pointNames = new String[] {"W3.TEST_NODE.AX"};

        // 获取历史数据,开始和结束时间,即取某时间段的数据

        Date FROM1 = null;

        Date TO1 = null;

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-dd HH:mm:ss");

        try {

            FROM1 = sdf.parse("2017-4-11 14:16:00");

            TO1 = sdf.parse("2017-4-11 14:16:58");

        } catch (ParseException e) {

            e.printStackTrace();

        }      

        Map<String, OPHisData[]> pn2HisMap= null;

        try {

            pn2HisMap =conn.getPointHistorys(pointNames, FROM1, TO1, OPNetConst.HISTORY_DATA_SAMPLE, 1);

        } catch (IOException e2) {

            e2.printStackTrace();

        }  

        // 输出获取到的数据

        for (Map.Entry<String, OPHisData[]> entry: pn2HisMap.entrySet()) {

            String pn = entry.getKey();

            OPHisData[] hiss = entry.getValue();

            for (OPHisData his : hiss) {

                //将数据放入序列

                sd.add(his.toString());

            }

        }

        System.out.println("finish...");

        try {

            conn.close();

        } catch (IOException e) {

            e.printStackTrace();

        }

        return sd;

}

 

注:集算器获取到的格式串为

DynamicData: time:2017-04-11 14:16:00.000,AV:60.0,AS:0

DynamicData: time:2017-04-11 14:16:01.000,AV:61.0,AS:0

DynamicData: time:2017-04-11 14:16:02.000,AV:62.0,AS:0

DynamicData: time:2017-04-11 14:16:03.000,AV:63.0,AS:0

DynamicData: time:2017-04-11 14:16:04.000,AV:64.0,AS:0

DynamicData: time:2017-04-11 14:16:05.000,AV:65.0,AS:0

DynamicData: time:2017-04-11 14:16:06.000,AV:66.0,AS:0

第二、  由集算器处理数据格式

目的是处理为二维表格式,以下是处理脚本(是不是很简单比java for来for去好多了),仅需一行,顺序读一次就解决了

处理后的数据格式

注:当然还有如果涉及大数据怎么办?答案是可以办,后面另出文章介绍。

第三、  报表内引入集算器数据集展现数据

报表web展现

0 0
原创粉丝点击