COOX基础培训之二次开发(二)
二次开发
3. 导入外部Jar包
3.1 MyEclipse中编写如下类文件,并打包
(1)HelloWorld类
package com.coox.extend;public class HelloWorld {public static void main(String args[]){//TODO }public static String sayHello(String name){return "Hello! "+ name;}
}
(2)打包成Jar包
(3)拷贝至Builder安装路径下面的System文件夹(运行模式下,拷贝至Manager安装路径下面的System文件夹)
(4)页面中添加如下Swing控件
(5)给按钮“Say Hello”添加脚本事件
/*** btnSay_mouseReleased(mouseEvent)*/
function btnSay_mouseReleased(mouseEvent)
{var hello = txtHello.getText();var result = HelloWorld.sayHello(hello);$UI.messageBox("提示",result);
}
(6)模拟运行测试
4. 用户服务(User Service)
【摘要】
COOX可以创建用户自定义服务,所有的服务都可以设置启动类型:自动、手动,并可以人为停止服务。包括和三方系统的接口,都可以由用户服务所创建。
下面以数据清除服务为例,进行介绍。
【服务创建目的】
对于系统中自己创建的数据库表,有些是作为数据存储用,考虑数据量的增长和数据查询效率,我们需要定期备份,并清理该数据表格,如只保留3个月内的数据。
(1)新建用户服务PurgeService
设置服务运行的服务器地址,设置服务启动类型
Classes类中会自动生成如下两个类文件
(2)创建数据清除任务类PurgeTask
- 设置服务运行间隔:一天;
- 设置数据保留天数:365天。
/** class PurgeTask* Copyright (c) 2009 Ordinal Technologies. All Rights Reserved.*/import globalscreen.application.persist.DataSet;
import java.util.Date;
import java.util.TimerTask;public class PurgeTask extends TimerTask
{//数据清除周期:24小时public static final long PERIOD_24H = 24l * 60l * 60l * 1000l;//数据保留天数:365天public static final long RETENTION_365D = 365l * 24l * 60l * 60l * 1000l;public PurgeTask(){}@Overridepublic void run(){long retentionFilter = System.currentTimeMillis()-RETENTION_365D;//删除学生数据deleteStudents(retentionFilter);}/*** 删除学生表中的数据*/private void deleteStudents(long retentionFilter){try{//这里假设ID为数据创建日期字段,筛选出一年外的数据,进行删除String collecttimeFilter = "ID < " + retentionFilter;DataSet ds = new DataSet("UDT_Students");ds.setFilter(collecttimeFilter);ds.deleteAll();}catch(Exception e){e.printStackTrace();}}
}
(3)修改用户服务实现文件PurgeServiceImpl
- 设置服务首次运行时间:明天凌晨02:00;
- 设置服务启动和结束方法入口。
/*** class PurgeServiceImpl* Copyright (c) 2007 Ordinal Technologies. All Rights Reserved.*/import globalscreen.application.*;
import java.util.Timer;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;public class PurgeServiceImpl extends ServiceManagerImpl implements PurgeService
{private PurgeTask purgeTask;private Timer purgeTaskTimer;/*** Constructor*/public PurgeServiceImpl(){}/*** start method*/public void start(){purgeTask=new PurgeTask();purgeTaskTimer=new Timer("PurgeTaskTimer");purgeTaskTimer.schedule(purgeTask,thisMonthNextDay(),PurgeTask.PERIOD_24H);}/*** stop method*/public void stop(){purgeTaskTimer.purge();purgeTaskTimer.cancel();}/*** init method*/public void init(){}/*** 获取明天凌晨02:00,作为起始时间*/private static Date thisMonthNextDay(){Calendar calendar = Calendar.getInstance();calendar.setTime(new Date());calendar.add(Calendar.DATE, 1);calendar.set(Calendar.HOUR_OF_DAY, 2); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); return calendar.getTime();}
}
(4)服务创建完成,后期部署完成后,会每天凌晨02:00自动运行一次。
【结束】
COOX基础培训之二次开发(二)相关推荐
- COOX基础培训之SCADA(二)
COOX基础培训之SCADA(二) 4. 工厂物理架构 4.1 创建实际物理设备 目标 创建实际物理设备 步骤 创建3个液体罐(Tank) 创建2个固体筒(Silo) 创建2个混合器(Buffer) ...
- COOX基础培训之SCADA(一)
COOX基础培训之SCADA(一) 1.培训目标 能够使用COOX创建应用程序 掌握创建应用程序的主要步骤 能够使用和配置SCADA模块中的组件 2. 软件安装 2.1 安装模式 开发者模式:Buil ...
- wincc报表日报表实例_工作系统二次开发二Python加工原膜切割日报表数据实例
#工作系统二次开发二Python加工原膜切割日报表数据实例 #当查询一个或多个工作令后在表格展示数据前按要求对数据进行二次处理,处理要求看如下 #1.加工单号和母卷物料编号相同则把除第一行外的领料有关 ...
- COOX基础培训之RS
COOX基础培训之RS Redundancy & Replication Service(冗余&备份服务) 摘要 服务器级的自动热冗余 如果COOX平台的一台服务器没有应答,或者其他服 ...
- COOX基础培训之SCADA Manufacture
COOX基础培训之SCADA Manufacture 配方和可追溯性 使用MESBox PMT来构建COOX应用程序的主要步骤 分析项目 创建项目及项目架构 创建设备模型 创建工序(phases)模型 ...
- COOX基础培训之MTG
COOX基础培训之MTG Material Tracking & Genealogy(物料追踪 & 谱系) 培训目标 能够在一组生产机器上组建MTG模块 能够追踪使用的物料 能够生成升 ...
- COOX基础培训之PMT
COOX基础培训之PMT Production Management & Traceability(生产管理和可追溯性) 1. 生产管理术语 1.1 术语 PO = Production Or ...
- COOX基础培训之AM
COOX基础培训之AM Archive Manager(存档管理) 1. 目标 备份文件恢复 从备份文件中读取数据 2. Archive Manager存档管理工具的使用 安装位于COOX Insta ...
- COOX基础培训之DiagTool
COOX基础培训之DiagTool Diagnostic Tool(日志诊断工具) 1. 前言 项目日志文件在哪里? 在客户端电脑上,日志文件在哪里? 我该发送什么东西至技术支持? 2. 日志诊断工具 ...
- COOX基础培训之SCADA(三)
COOX基础培训之SCADA(三) 6. 项目模拟测试 Builder中点击"Simulate"按钮进入项目模拟状态 7. 项目部署 摘要 定义 COOX部署体系结构 部署平台 数 ...
最新文章
- kqueue epoll 边界触发模式的网络编程模型
- php ci提交表单验证,ci表单验证代码
- 微软携手红帽,共筑开源新未来
- ffmpeg 缩放算法_图像尺寸调整算法介绍并手动实现近邻算法
- mysql内存片多大_内存带宽对mysql影响多大?
- 光电编码器的原理及应用场合_旋转式光电编码器工作原理及在视觉检测中的使用...
- PHP学习之六:预定义常量
- 防抖与节流方案_函数防抖和节流
- 经典Java-SpringCloud面试题
- 圣诞节PPT模板制作技巧分析
- meterpreter--收集系统信息
- 《BI那点儿事》数据流转换——聚合
- 数据包络分析方法与maxdea软件_数据包络模型 DEA三阶段超效率SBM非期望
- 黑盒测试用例设计方法
- 安立公司推出CPRI RF 测量选件
- go php 框架,go框架 - Go语言中文网 - Golang中文社区
- HTML网页设计制作——响应式网页影视动漫资讯bootstrap网页(9页)
- 使用SPSS进行曲线估算分析
- 网站反爬指南:政府网站篇
- vs2012 mvc3项目ObjectContext与DBContext