aardio的CS架构mysql数据表查询实例

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=479)
winform.add(
buttonAdd={cls="button";text="复制";left=516;top=442;right=587;bottom=473;z=11};
buttonClose={cls="button";text="退出";left=679;top=442;right=750;bottom=473;z=10};
buttonDel={cls="button";text="删除";left=597;top=442;right=668;bottom=473;z=12};
buttonEnd={cls="button";text="末页";left=434;top=442;right=505;bottom=473;z=6};
buttonExcelWriteAll={cls="button";text="导出Excel";left=572;top=-1;right=653;bottom=33;z=8};
buttonFirst={cls="button";text="首页";left=189;top=442;right=260;bottom=473;z=5};
buttonNext={cls="button";text="下页";left=352;top=442;right=423;bottom=473;z=3};
buttonRead={cls="button";text="读取";left=453;top=-1;right=534;bottom=33;z=9};
buttonUp={cls="button";text="上页";left=271;top=442;right=342;bottom=473;z=2};
listview={cls="listview";left=5;top=33;right=747;bottom=438;ah=1;aw=1;dt=1;edge=1;fullRow=1;hscroll=1;vscroll=1;z=1};
staticPage={cls="static";text="第 1 页";left=40;top=448;right=160;bottom=465;transparent=1;z=4};
staticTitle={cls="static";text="CS架构数据表查询实例";left=40;top=1;right=384;bottom=33;color=32768;font=LOGFONT(h=-24;name='微软雅黑';weight=700);transparent=1;z=7}
)
/*}}*/

//CS架构mysql数据表查询实例

import access;
import mysql.client;
import godking.libxl;
import godking.message;
import process;
import console;

//import win.ui.grid;
//win.ui.grid(winform.listview);

winform.listview.setExtended(4/*_LVS_EX_CHECKBOXES*/); //set

import win.ui.listviewEx;
var listview = win.ui.listviewEx(winform.listview);
listview.setcolumnsEditbox(2);
listview.setcolumnsCombobox(3,{"男","女"}); //双击修改
listview.enableDoubleBuffering(); //双缓冲

//数据来源: mysql数据库
//数据表: 导出
var saveExcelFile = "D:\1_aardio\test2.xlsx";
//分页参数
var dataTable,dataOldTable = {},{};
var pageNo,pageLine,pageNum,pageLineNo = 0,20,0,0;
//分页数据处理
winform.page = function(){
	winform.staticPage.text = "共"++pageNum++"页,第"++pageNo++"页";
	winform.listview.clear();
	winform.listview.setColumns(dataTable.fields);
	for(i=1;pageLine;1){
		var pi = (pageNo-1)*pageLine+i;
		if dataTable[pi]{
			pageLineNo = pi;
			var tab = {};
			for k,v in dataTable.fields table.push(tab,dataTable[pi][v]);
			winform.listview.addItem(tab); //数组
		}
	}
}
winform.page(); //预显示
//缩放窗口
winform.adjust = function( cx,cy,wParam ) {	 
	winform.page(); //重新读取
};
//读取Excel
winform.ExcelRead = function(){
	var db,err = access(ExcelFile);
	var dbTable = db.eachTableObject()(); //迭代器,第1张表
	dataTable = db.getTable("select * from ["++dbTable++"]")
	db.close();	
}
//Mysql服务器配置
//server,port,uid,pwd = "192.168.2.136",3306,"root","123456";
server,port,uid,pwd = "127.0.0.1",3306,"root","123456";
dbName,dbTbl = "test","person";
//读取Mysql
winform.MysqlRead = function(){
	db,err = mysql.client(
    	server = server; //数据库服务器,可省略默认为localhost
    	port = 3306;
    	uid = uid;//用户名,可省略默认为root
    	pwd = pwd;
	);
	if !db { winform.msgErr("连接失败!"+err); return ; }
	db.selectDb(dbName);
	var result = db.query(`select * from `+dbTbl+`;`);
	dataTable = result.getTable();
	//console.dump(dataTable);
	dataOldTable = table.clone(dataTable);
}
//读取数据表
winform.buttonRead.oncommand = function(id,event){
	//winform.ExcelRead();
	winform.MysqlRead();
	pageNo=1;	
	pageNum = math.floor(#dataTable/pageLine)+(#dataTable%pageLine>0?1:0)
	winform.page(); //分页显示
}
winform.buttonRead.oncommand(); //预读取
//首页
winform.buttonFirst.oncommand = function(id,event){
	pageNo=1;
	winform.page(); //分页显示
}
//上页
winform.buttonUp.oncommand = function(id,event){
	if pageNo>1 pageNo--;
	winform.page(); //分页显示
}
//下一页
winform.buttonNext.oncommand = function(id,event){
	if pageNo<pageNum pageNo++;
	winform.page(); //分页显示
}
//末页
winform.buttonEnd.oncommand = function(id,event){
	pageNo=pageNum;
	winform.page(); //分页显示
}
//复制
winform.buttonAdd.oncommand = function(id,event){
	var tab = {};
	for k,v in dataTable.fields table.push(tab,dataTable[pageLineNo][v]);
	winform.listview.addItem(tab); //数组
	
	//mysql: insert
}
//删除
winform.buttonDel.oncommand = function(id,event){
	var checkTab = winform.listview.checked;
	for(i=#checkTab;1;-1){
		winform.listview.delItem(checkTab[i]);
	}
	
	//mysql: delete
}
//鼠标左键点击事件
/*
winform.listview.onClick = function(item,subItem,nmListView){
    var index = winform.listview.selIndex; //选择的行
    var v = winform.listview.getItemText(item,subItem); //取值
    winform.msgbox(string.join({item,subItem,v},",")); //显示行、列、值信息
}
*/
//鼠标双击修改事件
winform.listview.onEditChanged = function(text,iItem,iSubItem){
	var piItem = (pageNo-1)*pageLine+iItem;
    if dataTable[piItem] dataTable[piItem][dataTable.fields[iSubItem]] = text; //回写
    
    //mysql: update
    
}
//数据保存写入excel
winform.saveExcelFile = function(saveTable){
	var book = godking.libxl.new(saveExcelFile);
	var sheet = book.sheet();
	var format = book.addFormat(); //样式
	format.border = 1; /*_LIBXL_BORDERSTYLE_THIN*/
	sheet.setTable(1,1,saveTable,format,#saveTable.fields);
	book.save();
	book.release(); //释放内存
	process.execute(saveExcelFile); //打开
}
//数据保存准备
winform.buttonExcelWriteAll.oncommand = function(id,event){
	var saveTable = dataTable;
	var titleTab = {};
	for k,v in saveTable.fields {
		titleTab[v]=v;
	}
	table.insert(saveTable,titleTab);
	winform.saveExcelFile(saveTable);
}
//退出
winform.buttonClose.oncommand = function(id,event){
	win.quitMessage()
}

winform.show();
win.loopMessage();

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/81316.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用IDM下载视频出现“由于法律原因,IDM无法下载...

一、问题描述 由于法律原因,IDM无法下载..,如图: 二、原因分析 下载该IDM抓取的M3U8文件,查看其中的内容发现 : #EXT-X-KEY 字段已经写明了加密方式是AES-128,包含一个URI和IV值 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:8 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-KEY:…

【华为认证数通高级证书实验-分享篇2】

实验拓扑 注&#xff1a;代码块为各交换机路由器中的配置命令 配置拓扑文件 实验要求 实现全网通 实验配置 SW3 [SW3]v b 10 20 [SW3]int e0/0/1 [SW3-Ethernet0/0/1]po link-t a [SW3-Ethernet0/0/1]po de v 10 [SW3-Ethernet0/0/1]int e0/0/2 [SW3-Ethernet0/0/2]po li…

基于GUI的卷积神经网络和长短期神经网络的语音识别系统,卷积神经网的原理,长短期神经网络的原理

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 长短期神经网络的原理 基于GUI的卷积神经网络和长短期神经网络的语音识别系统 代码下载链接:基于MATLABGUI编程的卷积神经网络和长短期…

深入竞品:解读竞品分析的艺术与策略

引言&#xff1a;为何竞品分析至关重要&#xff1f; 在当今的产品环境中&#xff0c;市场变得越来越拥挤。每个角落都有新的创业公司试图创造下一个行业的颠覆者&#xff0c;同时也有成熟的巨头在不断地迭代和优化他们的产品。在这样的环境中&#xff0c;不了解您的竞争对手是…

IDEA开发项目时一直出现http404错误的解决方法

系列文章目录 安装cv2库时出现错误的一般解决方法_cv2库安装失败 SQL&#xff1e; conn sys/root as sysdbaERROR:ORA-12560: TNS: 协议适配器错误的解决方案 虚拟机启动时出现“已启用侧通道缓解”的解决方法 Hypervisor launch failed&#xff1b; Processor does not pr…

【GaussDB】 SQL 篇

建表语句 表的分类 普通的建表语句 复制表内容 只复制表结构 create table 新表名(like 源表名 including all); 如果希望注释被复制的话要指定including comments 复制索引、主键约束和唯一约束&#xff0c;那么需要指定including indexes including constraints &#xf…

VBA技术资料MF43:VBA_Excel中自动填充

【分享成果&#xff0c;随喜正能量】以时寝息&#xff0c;当愿众生&#xff0c;身得安隐&#xff0c;心无动乱。愿我们都能&#xff0c;梦见幸福&#xff01;在踉跄中前进&#xff0c;在跌倒后跃进&#xff0c;逐渐强大.。 我给VBA的定义&#xff1a;VBA是个人小型自动化处理的…

网络安全--wazuh环境配置及漏洞复现

目录 一、wazuh配置 二、wazuh案例复现 一、wazuh配置 1.1进入官网下载OVA启动软件 Virtual Machine (OVA) - Installation alternatives (wazuh.com) 1.2点击启动部署&#xff0c;傻瓜式操作 1.3通过账号&#xff1a;wazuh-user&#xff0c;密码&#xff1a;wazuh进入wazuh…

JVM——StringTable面试案例+垃圾回收+性能调优+直接内存

JVM——引言JVM内存结构_北岭山脚鼠鼠的博客-CSDN博客 书接上回内存结构——方法区。 这里常量池是运行时常量池。 方法区 面试题 intern()方法 intern() 方法用于在运行时将字符串添加到内部的字符串池stringtable中&#xff0c;并返回字符串池stringtable中的引用。 返…

Git命令详解

1 常用命令 1&#xff09;初始化本地仓库 git init <directory> 是可选的&#xff0c;如果不指定&#xff0c;将使用当前目录。 2&#xff09;克隆一个远程仓库 git clone <url> 3&#xff09;添加文件到暂存区 git add <file> 要添加当前目录中的所…

Open3D 最小二乘拟合平面(SVD分解法)

目录 一、算法原理二、代码实现三、结果展示1、点云2、拟合结果四、优秀博客本文由CSDN点云侠原创,原文链接。爬虫网站自重。 一、算法原理 本文实现矩阵奇异值分解方法的最小二乘拟合平面。原理如下: 对于得到的 n n

在Visual Studio上,使用OpenCV实现人脸识别

1. 环境与说明 本文介绍了如何在Visual Studio上&#xff0c;使用OpenCV来实现人脸识别的功能 环境说明 : 操作系统 : windows 10 64位Visual Studio版本 : Visual Studio Community 2022 (社区版)OpenCV版本 : OpenCV-4.8.0 (2023年7月最新版) 实现效果如图所示&#xff0…

【BASH】回顾与知识点梳理(三十一)

【BASH】回顾与知识点梳理 三十一 三十一. 进程的管理31.1 给进程发送讯号kill -signal PIDlinux系统后台常驻进程killall -signal 指令名称 31.2 关于进程的执行顺序Priority 与 Nice 值nice &#xff1a;新执行的指令即给予新的 nice 值renice &#xff1a;已存在进程的 nice…

uniapp微信小程序消息订阅快速上手

一、微信公众平台小程序开通消息订阅并设置模板 这边的模板id和详细内容后续前后端需要使用 二、uniapp前端 需要是一个button触发 js&#xff1a; wx.getSetting({success(res){console.log(res)if(res.authSetting[scope.subscribeMessage]){// 业务逻辑}else{uni.request…

软考A计划-系统集成项目管理工程师-法律法规-上

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

HLK-LD105/2410B/2420模块测试

HLK105/2410B/2420模块测试 &#x1f4cc;模块资料地址&#xff1a;https://h.hlktech.com/Mobile/download &#x1f33f;HLK-LD105模块&#xff1a; 10G微波雷达 &#x1f33f;HLK-LD2420-24G&#xff1a;24G毫米波雷达 &#x1f33f;HLK-LD2410B-24G&#xff1a;24…

stm32红绿灯源代码示例(附带Proteus电路图)

本代码不能直接用于红路灯&#xff0c;只是提供一个思路 #include "main.h" #include "gpio.h" void SystemClock_Config(void); void MX_GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStruct {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOB_CLK_ENAB…

webshell绕过

文章目录 webshell前置知识进阶绕过 webshell 前置知识 <?phpecho "A"^""; ?>运行结果 可以看到出来的结果是字符“&#xff01;”。 为什么会得到这个结果&#xff1f;是因为代码的“A”字符与“”字符产生了异或。 php中&#xff0c;两个变…

MTK Android非常用分辨率修改充电动画

非标准分辨率的屏,配置MTK Android的关机充电动画. 环境 芯片 MTK 系统 Android 服务器 ubuntu 屏幕分辨率356*400,不是常见的分辨率. 原始充电动画显示异常,画面扭曲. 方法 确定使用的图片 vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo 这个目录下…

[GitOps]微服务版本控制:使用ArgoCD 部署Grafana Loki

背景介绍 请回答&#xff1a;你们是如何保证线上部署的服务&#xff0c;从服务版本到参数配置&#xff0c;都是和测试通过的版本是一致的呢&#xff1f; 本文将介绍GitOps的基本原理以及ArgoCD的使用&#xff1a;ArgoCD部署Grafana Loki 到k8s集群。 本文项目地址&#xff1…