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