aardio - 虚表 + 数据库 操作例程

import godking.vlistEx;
import fonts.fontAwesome
import win.ui;
/*DSG{{*/
mainForm = win.form(text="客户信息管理";right=967;bottom=556;border="none")
mainForm.add(
addData={cls="plus";text='\uF067 新增';left=8;top=80;right=77;bottom=110;bgcolor=15780518;dl=1;dt=1;font=LOGFONT(h=-16;name='FontAwesome');notify=1;z=4};
bkplus={cls="bkplus";left=-3;top=-2;right=972;bottom=76;aw=1;bgcolor=32768;z=1};
delData={cls="plus";text='\uF068 删除';left=80;top=80;right=149;bottom=110;bgcolor=15780518;dl=1;dt=1;font=LOGFONT(h=-16;name='FontAwesome');notify=1;z=5};
edit={cls="edit";left=752;top=80;right=960;bottom=112;edge=1;z=8};
plus={cls="plus";left=12;top=8;right=81;bottom=66;background="\google-play-books.ico";dl=1;dt=1;z=2};
static={cls="static";text="客户信息管理";left=89;top=10;right=313;bottom=59;color=65535;dl=1;dt=1;font=LOGFONT(h=-35);transparent=1;z=3};
static2={cls="static";text="客户名称查询";left=630;top=84;right=739;bottom=109;align="right";color=16711680;dr=1;dt=1;font=LOGFONT(h=-16);transparent=1;z=6};
vlist={cls="vlistEx";left=6;top=116;right=965;bottom=554;ah=1;aw=1;dl=1;dt=1;edge=1;z=7}
)
/*}}*/import win.ui.simpleWindow;
win.ui.simpleWindow(mainForm);//表头设置
mainForm.vlist.headerFont = ::LOGFONT(name="黑体";h=17;color=0xFFFFFF );/*【属性】表头文本字体*/
mainForm.vlist.headerAlign = 1; //表头字体居中
mainForm.vlist.headerBkcolor = 0xFF901E; //表头背景颜色
mainForm.vlist.bkColor2 = 0x98FB98;//连接数据库
import godking.conn
var db = godking.conn.openAccess("/Database.accdb"/*文件名*/,/*密码*/)//初始显示数据
var sql = "select id,pname as 姓名,iif(sex,'男','女') as 性别,age as 年龄,addr as 地址 from [人员名单] order by id"
var t = db.getTable( sql,false/*数组*/,/*开始行*/,/*总行数*/,/*格式化参数*/ );
mainForm.vlist.setTable(t,/*列标题*/,/*列宽*/,1/*0左1中2右*/,/*字典转为数组*/,/*字符串转为Utf8*/,/*是否克隆新表*/)//新增
mainForm.addData.oncommand = function(id,event){var rs = db.rs("[人员名单]");rs.AddNew();rs.setValue("sex",1);rs.UpDate();var id = rs.getValue("ID");rs.close()mainForm.vlist.addRow({id=id,性别="男",年龄=0});
}//删除(可同时删除多行)
mainForm.delData.oncommand = function(id,event){var rows,ids = mainForm.vlist.getSelected(,1/*列号或字典key*/);if #ids {var idstr = ..string.join(ids,",")var sql = "DELETE from [人员名单] WHERE id in ("++idstr++")";if !db.exec(sql) {..win.msgbox("删除数据失败!");} else {for(i=#rows;1;-1){mainForm.vlist.delRow(rows[i]);}}}
}//编辑
mainForm.vlist.onEditEnd = function(row/*行*/,col/*列*/,text/*内容*/,endType){if row and col {var id = owner.getCellText(row,1);if id {var field = ({"pname","sex","age","addr"})[col-1];var value = text;if col==2 or col==5 {value ='"'++text++'"';} elseif col==3 {value = text==="男"?1:0;} elseif col==4{value = tonumber(text,10):0; //年龄不能太大哦}var sql = "UPDATE [人员名单] SET "++field++"="++value++" WHERE id="++id;if !db.exec(sql) {..win.msgbox("数据更新失败");return false; } }}
}// 查询
mainForm.edit.oncommand = function(id,event){if mainForm.edit.text = "" {mainForm.vlist.filter()} else {mainForm.vlist.filter(mainForm.edit.text,"姓名",true/*模糊*/);mainForm.vlist.update()}
}//禁止编辑id列
mainForm.vlist.onEditBegin = {false,1};
mainForm.vlist.setColumnType(3/*列号*/,1/*_vlistEx_ColType_ComboBox*/,true/*是否显示箭头或图片*/,0xAAAAAA/*箭头颜色或图片*/ );
mainForm.vlist.getComboBox().items={"男","女"}mainForm.show();
return win.loopMessage();

 exec函数的格式化参数用法:

import godking.vlistEx;
import fonts.fontAwesome
import win.ui;
/*DSG{{*/
mainForm = win.form(text="客户信息管理";right=967;bottom=556;border="none")
mainForm.add(
addData={cls="plus";text='\uF067 新增';left=8;top=80;right=77;bottom=110;bgcolor=15780518;dl=1;dt=1;font=LOGFONT(h=-16;name='FontAwesome');notify=1;z=4};
bkplus={cls="bkplus";left=-3;top=-2;right=972;bottom=76;aw=1;bgcolor=32768;z=1};
delData={cls="plus";text='\uF068 删除';left=80;top=80;right=149;bottom=110;bgcolor=15780518;dl=1;dt=1;font=LOGFONT(h=-16;name='FontAwesome');notify=1;z=5};
edit={cls="edit";left=752;top=80;right=960;bottom=112;edge=1;z=8};
plus={cls="plus";left=12;top=8;right=81;bottom=66;background="\google-play-books.ico";dl=1;dt=1;z=2};
static={cls="static";text="客户信息管理";left=89;top=10;right=313;bottom=59;color=65535;dl=1;dt=1;font=LOGFONT(h=-35);transparent=1;z=3};
static2={cls="static";text="客户名称查询";left=630;top=84;right=739;bottom=109;align="right";color=16711680;dr=1;dt=1;font=LOGFONT(h=-16);transparent=1;z=6};
vlist={cls="vlistEx";left=6;top=116;right=965;bottom=554;ah=1;aw=1;dl=1;dt=1;edge=1;z=7}
)
/*}}*/import win.ui.simpleWindow;
win.ui.simpleWindow(mainForm);//表头设置
mainForm.vlist.headerFont = ::LOGFONT(name="黑体";h=17;color=0xFFFFFF );/*【属性】表头文本字体*/
mainForm.vlist.headerAlign = 1; //表头字体居中
mainForm.vlist.headerBkcolor = 0xFF901E; //表头背景颜色
mainForm.vlist.bkColor2 = 0x98FB98;//连接数据库
import godking.conn
var db = godking.conn.openAccess("/Database.accdb"/*文件名*/,/*密码*/);
if !db error("数据库连接失败");//初始显示数据
var sql = "select id,pname as 姓名,iif(sex,'男','女') as 性别,age as 年龄,addr as 地址 from [人员名单] order by id"
var t = db.getTable( sql,false/*数组*/,/*开始行*/,/*总行数*/,/*格式化参数*/ );
mainForm.vlist.setTable(t,/*列标题*/,/*列宽*/,1/*0左1中2右*/,/*字典转为数组*/,/*字符串转为Utf8*/,/*是否克隆新表*/);//新增
mainForm.addData.oncommand = function(id,event){var rs = db.rs("[人员名单]");rs.AddNew();rs.setValue("sex",1);rs.UpDate();var id = rs.getValue("ID");rs.close()mainForm.vlist.addRow({id=id,性别="男",年龄=0});
}//删除(可同时删除多行)
mainForm.delData.oncommand = function(id,event){var rows,ids = mainForm.vlist.getSelected(,1/*列号或字典key*/);if #ids {var sql = "DELETE from [人员名单] WHERE id in (?)";if !db.exec(sql,ids) {..win.msgbox("删除数据失败!");} else {mainForm.vlist.delRow(rows);}}
}//编辑
mainForm.vlist.onEditEnd = function(row/*行*/,col/*列*/,text/*内容*/,endType){if row and col {var id = tonumber(owner.getCellText(row,1));if id {var field = ({"pname","sex","age","addr"})[col-1];var value = text;if col==3 {value = text==="男";} elseif col==4{value = tonumber(text,10):0; if value<=0 or value>500 return false;  //年龄不能太大或太小哦text = tostring(value);}var sql = "UPDATE [人员名单] SET ??=? WHERE id=?";if !db.exec(sql,field,value,id) {..win.msgbox("数据更新失败");return false; }return text; }}
}// 查询
mainForm.edit.oncommand = function(id,event){if mainForm.edit.text = "" {mainForm.vlist.filter();} else {mainForm.vlist.filter(mainForm.edit.text,"姓名",true/*模糊*/);}
}//禁止编辑id列
mainForm.vlist.onEditBegin = {false,1};
mainForm.vlist.setColumnType(3/*列号*/,1/*_vlistEx_ColType_ComboBox*/,true/*是否显示箭头或图片*/,0xAAAAAA/*箭头颜色或图片*/ );
mainForm.vlist.getComboBox().items={"男","女"};mainForm.onClose = function(hwnd,message,wParam,lParam){db.close();
}
mainForm.show();
return win.loopMessage();

所用全部文件(含数据库文件)下载地址:https://aardio.online/attach-download-401.htm

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLAlchemy系列教程:理解SQLAlchemy元数据

SQLAlchemy是Python开发人员的强大ORM工具。SQLAlchemy中的元数据是对象-关系映射配置的集合&#xff0c;允许开发人员无缝地定义和使用数据库模式。 使用元数据 SQLAlchemy中的元数据充当各种数据库描述符&#xff08;如表、列和索引&#xff09;的容器。这使开发人员能够通…

Soul 1.4.60 | 清爽版浏览器,内置广告拦截与多功能集成,保护隐私

Soul浏览器是一款专注于内容浏览体验的安卓浏览器&#xff0c;去除广告与追踪器&#xff0c;集成视频下载、PDF查看、手势控制等实用功能。支持无痕模式与黑暗主题&#xff0c;内置清洁器自动过滤广告&#xff0c;优化网页加载速度&#xff0c;提供流畅的浏览体验与隐私保护。支…

最短路问题

Problem - D - Codeforces&#xff08;最短路&#xff0c;反向bfs&#xff09; 题目&#xff1a; 思路&#xff1a; bfs版本&#xff1a;参考自Codeforces Round 1002 (Div. 2) A - D - 知乎 代码&#xff1a; dijstra&#xff1a; void solve() {int n;cin>>n;int s…

【论文阅读】多模态——LSeg

文献基本信息 标题&#xff1a;Language-Driven Semantic Segmentation作者&#xff1a;Boyi Li、Kilian Q. Weinberger、Serge Belongie、Vladlen Koltun、Ren Ranftl单位&#xff1a;Cornell University、University of Copenhagen、Apple、Intel Labs会议/期刊&#xff1a;…

Docker Desktop常见问题记录

1.docker pull报错&#xff0c;无法连接https://registry-1.docker.io/v2/ 报错信息如下&#xff1a; Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection(Client.Timeout exceeded …

Java 大视界 -- Java 大数据在智能政务公共服务资源优化配置中的应用(118)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

Python快捷手册

Python快捷手册 后续会陆续更新Python对应的依赖或者工具使用方法 文章目录 Python快捷手册[toc]1-依赖1-词云小工具2-图片添加文字3-BeautifulSoup网络爬虫4-Tkinter界面绘制5-PDF转Word 2-开发1-多线程和队列 3-运维1-Requirement依赖2-波尔实验室3-Anaconda3使用教程4-CentO…

Javaweb后端spring事务管理 事务四大特性ACID

2步操作&#xff0c;只能同时成功&#xff0c;同时失败&#xff0c;要放在一个事务中&#xff0c;最后提交事务或者回滚事务 事务控制 事务管理进阶 事务的注解 这是所有异常都会回滚 事务注解 事务的传播行为 四大特性

AI绘画软件Stable Diffusion详解教程(2):Windows系统本地化部署操作方法(专业版)

一、事前准备 1、一台配置不错的电脑&#xff0c;英伟达显卡&#xff0c;20系列起步&#xff0c;建议显存6G起步&#xff0c;安装win10或以上版本&#xff0c;我的显卡是40系列&#xff0c;16G显存&#xff0c;所以跑大部分的模型都比较快&#xff1b; 2、科学上网&#xff0…

光伏电池输出功率模型

1.光伏电池输出功率 1.1光伏电池的效率 温度对光伏电池/组件电效率的影响可以追溯到温度对电流I和电压V的影响&#xff0c;因为最大功率表达式为&#xff1a; 其中&#xff0c;Pm为最大输出功率&#xff1b;Vm为最大输出功率点电压&#xff1b;Im为最大输出功率点电流&#xf…

【大模型基础_毛玉仁】1.4 语言模型的采样方法

【大模型基础_毛玉仁】1.4 语言模型的采样方法 1.4 语言模型的采样方法1.4.1 概率最大化方法1&#xff09;贪心搜索&#xff08;GreedySearch&#xff09;2&#xff09;波束搜索&#xff08;BeamSearch&#xff09; 1.4.2 随机采样方法1&#xff09;Top-K 采样2&#xff09;Top…

MyBatis - XML CRUD 其他查询

1. XML 配置文件 使用 MyBatis 操作数据库的方式有两种: 注解 (在注解中定义 SQL 语句)XML 配置文件 (在 XML 文件中定义 SQL 语句) 在上一篇博客中, 已经讲解了如何使用注解操作数据库, 本篇文章来讲解如何使用 XML 进行 MyBatis 开发. 使用 XML 的步骤, 和使用注解的步骤…

DeepSeek + 飞书多维表格搭建你的高效工作流

众所周知&#xff0c;大模型DeepSeek擅长于处理大规模语言模型推理任务&#xff0c;特别是在成本降低和思维链推理方面表现出色‌&#xff0c;我们一般把大模型必做我们的大脑&#xff0c;但是一个人不能只有大脑&#xff0c;还需要其他输入输出以及操作支配的眼耳鼻嘴手足等。…

跨域-告别CORS烦恼

跨域-告别CORS烦恼 文章目录 跨域-告别CORS烦恼[toc]1-参考网址2-思路整理1-核心问题2-个人思考3-脑洞打开4-个人思考-修正版1-个人思考2-脑洞打开 3-知识整理1-什么是跨域一、同源策略简介什么是源什么是同源是否是同源的判断哪些操作不受同源策略限制跨域如何跨域 二、CORS 简…

基于Django创建一个WEB后端框架(DjangoRestFramework+MySQL)流程

一、Django项目初始化 1.创建Django项目 Django-admin startproject 项目名 2.安装 djangorestframework pip install djangorestframework 解释: Django REST Framework (DRF) 是基于 Django 框架的一个强大的 Web API 框架&#xff0c;提供了多种工具和库来构建 RESTf…

基于多目标向日葵优化算法(Multi-objective Sunflower Optimization,MOSFO)的移动机器人路径规划研究,MATLAB代码

一、机器人路径规划介绍 移动机器人路径规划是机器人研究的重要分支&#xff0c;是对其进行控制的基础。根据环境信息的已知程度不同&#xff0c;路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或局部已知的局部路径规划。随着科技的快速发展以及机器人的大量…

cursor使用经验分享(java后端服务开发向)

前言 cursor是一款基于vscode&#xff0c;并集成AI能力的代码编辑器&#xff0c;其功能包括但不限于代码生成及补全、AI对话&#xff08;能够直接将代码环境作为上下文&#xff09;、即时应用建议等等&#xff0c;是一款面向未来的代码编辑器。 对于vscode&#xff0c;最先想…

【Java学习】异常

一、异常的处理过程 异常类的似复刻变量被throw时&#xff0c;会立即中止当前所在的这层方法&#xff0c;即当层方法里throw异常类似复刻变量之后的语句就不会执行了&#xff0c;如果throw异常语句在当层方法中被try{}包裹&#xff0c;则中止就先发生被包裹在了try{}层&#xf…

双足机器狗开发:Rider - Pi

双足机器狗开发:Rider - Pi https://github.com/YahboomTechnology/Rider-Pi-Robot 项目介绍 Rider - Pi是一款为开发者、教育工作者和机器人爱好者设计的桌面双轮腿式机器人,它基于树莓派CM4核心模块构建,具备多种先进功能和特点: 硬件特性 核心模块:采用树莓派CM4核…

vscode 查看3d

目录 1. vscode-3d-preview obj查看ok 2. vscode-obj-viewer 没找到这个插件&#xff1a; 3. 3D Viewer for Vscode 查看obj失败 1. vscode-3d-preview obj查看ok 可以查看obj 显示过程&#xff1a;开始是绿屏&#xff0c;过了1到2秒&#xff0c;后来就正常看了。 2. vsc…