COOX基础培训之二次开发(一)

news/2024/11/30 6:32:47/

二次开发

1. 数据库表

打开数据库管理工具,找到COOX项目对应的数据库(若无,则创建)

1.1 COOX平台自带数据表

在这里插入图片描述
(请勿修改和删除系统自带表)

1.2 COOX中创建新表

在资源管理(Resources)中的持久性对象(Persisted objects)中创建。
在这里插入图片描述
(1)创建表UDT_Students,右键新建:
在这里插入图片描述
(2)添加表字段,设置索引,键等:
在这里插入图片描述

字段描述
字段ID整型,“主键”(默认自增),勾选“Key”
字段Name短字符串型,“学生姓名”
字段Math整型,“数学分数”
字段Physics整型,“物理分数”

(3)项目保存,生成数据库
在这里插入图片描述
在这里插入图片描述
(4)查看新建的表

  • COOX中查看:
    在这里插入图片描述
    在这里插入图片描述
  • 数据库中查看
    在这里插入图片描述

1.3 COOX中数据库操作对象认识

(1)DataSet
在这里插入图片描述
绑定数据源作用,设置要连接的数据库、表格等,同时设置查询条件、排序条件等

(2)DataTableView等
在这里插入图片描述
表格对象,连接数据源,展示数据库表内数据作用,同时可以设置是否可编辑等。

(3)Swing对象
在这里插入图片描述
COOX自带Java可视化控件,可以直接拖拽使用。同样,我们也可以外部制作好需要的控件导入,用JavaBean方式。

1.4 数据表展示

  • 手动给新建的表格UDT_Students添加几条测试数据
  • COOX页面中新增测试页面
  • 页面中拖入DataSet对象和DataTableView
    在这里插入图片描述
    (1)设置DataSet属性
    在这里插入图片描述
    在这里插入图片描述
    (2)模拟运行测试
    在这里插入图片描述
    (3)练习
    DataSet其他属性,自行参考手册设置和练习;DataTableView属性,也请自行参考手册设置和练习。

2. 利用代码实现数据库表的增删改查

在资源,Classes中创建类文件StudentsHelper,在里面编辑Java代码。并添加Import引入。

/** class StudentsHelper* Copyright (c) 2009 Ordinal Technologies. All Rights Reserved.*/import globalscreen.application.*;
import globalscreen.plugins.persist.DataSetSystem;
import globalscreen.plugins.persist.DataModel;
import globalscreen.application.persist.DataSet;public class StudentsHelper extends GlobalScript
{
}

2.1 新增操作

(1)添加DataSet对象数据新增方法

/*** 新增数据* @param strName	学生姓名* @param iMath		数学分数* @param iPhysics  物理分数* @return 是/否新增成功*/public static boolean insertStudent(String strName,int iMath,int iPhysics){DataSet data = new DataSet("UDT_Students");try{data.prepareInsertValue("Name",strName);data.prepareInsertValue("Math",iMath);data.prepareInsertValue("Physics",iPhysics);return data.insertElement();}catch(Exception e){e.printStackTrace(); return false;}}

(2)页面中添加如下Swing控件
在这里插入图片描述
(3)给Add按钮绑定脚本事件
在这里插入图片描述
调用上文所述方法,插入数据

/*** btnAdd_mouseReleased(mouseEvent)*/
function btnAdd_mouseReleased(mouseEvent)
{var strName = txtNameAdd.getText();var iMath = parseInt(txtMathAdd.getText());var iPhysics = parseInt(txtPhysicsAdd.getText());if(helperClass.insertStudent(strName,iMath,iPhysics)){$UI.messageBox("提示","新增成功");}else{$UI.messageBox("提示","新增失败");}
}

(4)模拟运行测试
在这里插入图片描述
在这里插入图片描述

2.2 删除操作

(1)添加DataSet对象数据新增方法

/*** 删除数据(根据ID删除数据)* @param  lID	数据库表字段ID* @return 是/否删除成功*/public static boolean deleteStudent(long lID){DataSet data = new DataSet("UDT_Students");try{data.setFilter("ID="+lID+"");data.deleteAll();return true;}catch(Exception e){e.printStackTrace(); return false;}}

(2)页面中添加如下Swing控件
在这里插入图片描述
(3)给Delete按钮绑定脚本事件

/*** btnDelete_mouseReleased(mouseEvent)*/
function btnDelete_mouseReleased(mouseEvent)
{if(DataSet.getValue("ID")!=null){var lID = DataSet.getValue("ID");if(helperClass.deleteStudent(lID)){$UI.messageBox("提示","删除成功");}else{$UI.messageBox("提示","删除失败");}}else{$UI.messageBox("提示","请选择一行数据");}
}

(4)模拟运行测试
在这里插入图片描述
在这里插入图片描述

2.3 更新操作

(1)添加DataSet对象数据更新方法

/*** 更新数据(根据ID更新数据)* @param lID			数据库表字段ID* @param iMath			数学分数* @param iPhysics		物理分数* @return 是/否更新成功*/public static boolean updateStudent(long lID,int iMath,int iPhysics){DataSet data=new DataSet("UDT_Students");try{data.prepareInsertValue("ID",lID);data.prepareInsertValue("Math",iMath);data.prepareInsertValue("Physics",iPhysics);return data.updateElement();}catch(Exception e){e.printStackTrace(); return false;}}

(2)页面中添加如下Swing控件
在这里插入图片描述
(3)给Update按钮绑定脚本事件

/*** btnUpdate_mouseReleased(mouseEvent)*/
function btnUpdate_mouseReleased(mouseEvent)
{if(DataSet.getValue("ID")!=null){var lID = DataSet.getValue("ID");var iMath = parseInt(txtMathUpdate.getText());var iPhysics = parseInt(txtPhysicsUpdate.getText());if(helperClass.updateStudent(lID,iMath,iPhysics)){$UI.messageBox("提示","更新成功");}else{$UI.messageBox("提示","更新失败");}}else{$UI.messageBox("提示","请选择一行数据");}
}

(4)模拟运行测试
在这里插入图片描述
在这里插入图片描述

2.4 查询操作

直接JavaScript设置查询条件
(1)页面
在这里插入图片描述
(2)给Search按钮绑定脚本事件

/*** btnSearch_mouseReleased(mouseEvent)*/
function btnSearch_mouseReleased(mouseEvent)
{var iMath = parseInt(txtMathSearch.getText());DataSet.setFilter("Math >\"" + iMath +"");
}

(3)模拟运行测试
在这里插入图片描述
在这里插入图片描述


【结束】


http://www.ppmy.cn/news/310408.html

相关文章

COOX基础培训之SCADA(一)

COOX基础培训之SCADA(一) 1.培训目标 能够使用COOX创建应用程序掌握创建应用程序的主要步骤能够使用和配置SCADA模块中的组件 2. 软件安装 2.1 安装模式 开发者模式:Builder Manager服务器模式:Manager客户端:J…

COOX基础培训之SCADA(三)

COOX基础培训之SCADA(三) 6. 项目模拟测试 Builder中点击“Simulate”按钮进入项目模拟状态 7. 项目部署 摘要 定义COOX部署体系结构部署平台数据库通讯(驱动)高级模式部署工具Manager客户端JavaWebStart冗余Redundancy 7…

COOX基础培训之SCADA(二)

COOX基础培训之SCADA(二) 4. 工厂物理架构 4.1 创建实际物理设备 目标 创建实际物理设备 步骤 创建3个液体罐(Tank)创建2个固体筒(Silo)创建2个混合器(Buffer)创建2个捏合器&…

COOX基础培训之DiagTool

COOX基础培训之DiagTool Diagnostic Tool(日志诊断工具) 1. 前言 项目日志文件在哪里?在客户端电脑上,日志文件在哪里?我该发送什么东西至技术支持? 2. 日志诊断工具的使用 从服务端和客户端手机日志…

COOX基础培训之AM

COOX基础培训之AM Archive Manager(存档管理) 1. 目标 备份文件恢复从备份文件中读取数据 2. Archive Manager存档管理工具的使用 安装位于COOX Installer内不要在服务器内安装Archive Manager使用Archive Manager需要USB加密狗通过Manager的备份服…

COOX基础培训之PMT

COOX基础培训之PMT Production Management & Traceability(生产管理和可追溯性) 1. 生产管理术语 1.1 术语 PO Production Order(生产订单):生产一定量的某种产品WO Work Order(生产工单&#xf…

COOX基础培训之MTG

COOX基础培训之MTG Material Tracking & Genealogy(物料追踪 & 谱系) 培训目标 能够在一组生产机器上组建MTG模块能够追踪使用的物料能够生成升序和降序的谱系报告 1. 定义 MTG模块的目标: 原材料跟踪升序降序谱系追踪工作中心…

COOX培训材料 — SCADA(4.Agitator)

Agitator(Equipment model) 1. Base Properties 2. Visual:Agitator_H_Palm No1:Picture图片 3. Visual:Agitator_V_Palm No1:Picture图片(和上面视图一样,拷贝修改角度和位置即可…