当前位置: 首页 > news >正文

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

相关文章:

  • 《Operating System Concepts》阅读笔记:p200-p202
  • 高效处理 List<T> 集合:更新、查找与优化技巧
  • C++ 中 `shared_ptr` 的用法及常见陷阱解析
  • 笔试强训题(2)
  • 【运维笔记】docker 中 MySQL从5.7版本升级到8.0版本 - 平滑升级
  • C++学习之STL初识与容器
  • MuBlE:为机器人操作任务规划提供了逼真的视觉观察和精确的物理建模
  • 安卓免费工具:海量素材助力个性化头像制作
  • aardio - 虚表 —— 两个虚表之间互相拖动交换数据
  • WPS Word中英文混杂空格和行间距不一致调整方案
  • 牛客python蓝桥杯11-32(自用)
  • 无人机遥控器扩频技术解析!
  • 白盒测试(3):PCB阻抗测试方法
  • 设计模式 + java8方法引用 实现任意表的过滤器
  • Python----数据分析(Matplotlib五:pyplot的其他函数,Figure的其他函数, GridSpec)
  • Cursor + IDEA 双开极速交互
  • sysbench手动测试OceanBase v4.2.4集群
  • JmeterHttp请求头管理出现Unsupported Media Type问题解决
  • 第二次CCF-CSP认证(思路及源码)
  • 论述AI对学习发展的改变(网页设计)
  • 网站怎么做微信支付宝支付/百度竞价推广培训
  • 宝安网站制作网站建设/今天新闻头条最新消息
  • 微网站建设公司/零基础学电脑培训班
  • 电影网站开发库表结构/怎么制作网站平台
  • 网站建设共享/百度直播推广
  • 上海建站系统/合肥瑶海区