赞
踩
虚表,是一个特殊的 listview。
使用aardio自带 vlist 库的注意事项:
1、虚表控件要在 mainform 窗体中添加,添加一个custom后,将其类名(cls)改为 vlist 即可。
2、虚表本质上就是一个 listview,其属性表包含了 listview 的属性表:
_metaProperty = ..win.ui.ctrl.listview._metaProperty;
因为封装的较为简单,很多属性方法未在智能提示中列出,只需参考 listview 手动输入即可,比如 setColumns() 等。
3、虚表设置内容时,不可以用setTable(),而是要用createTableAdapter等函数,因为里面封装了count(),getItem()等专用函数。
本人已改进了vlist库,对一些函数做了调整。
虚表库 (vlist) 的使用方法,简单演示如下:
- import win.ui;
- import godking.vlistEx;
- /*DSG{{*/
- mainForm = win.form(text="vlist - table adapter";right=561;bottom=367)
- mainForm.add(
- vlist={cls="vlistEx";left=11;top=14;right=277;bottom=356;ah=1;aw=1;edge=1;transparent=1;z=1};
- vlist2={cls="vlistEx";left=284;top=13;right=550;bottom=355;ah=1;aw=1;edge=1;transparent=1;z=2}
- )
- /*}}*/
-
- //数据格式1
- var t = {
- {"张三",26,"山东"}
- {"李四",28,"江苏"}
- {"王五",29,"四川"}
- }
- var fields={"姓名","年龄","地址"}
- mainForm.vlist.setTable(t,fields)
-
- //数据格式2
- var t2 = {
- {姓名="张三",年龄=26,地址="山东"}
- {姓名="李四",年龄=28,地址="江苏"}
- {姓名="王五",年龄=29,地址="四川"}
- fields={"姓名","年龄","地址"}
- }
- mainForm.vlist2.setTable(t2)
-
- mainForm.show();
- win.loopMessage();

用 10 万条数据做对比测试:
注:以下代码使用改进库:Aardio - 【库】虚表增强版_卢光庆的博客-CSDN博客_aardio
- import win.ui;
- import godking.vlistEx;
- import console
- /*DSG{{*/
- mainForm = win.form(text="vlist - table adapter";right=853;bottom=578)
- mainForm.add(
- listview={cls="listview";left=447;top=13;right=843;bottom=565;edge=1;z=2};
- vlist={cls="vlistEx";left=11;top=14;right=437;bottom=566;ah=1;aw=1;edge=1;transparent=1;z=1}
- )
- /*}}*/
-
- var t = {fields={"序号","姓名","年龄","地址","身份证"}}
- math.randomize()
- for(i=1;100000;1){
- var tt={}
- tt["序号"]=i
- tt["姓名"]=math.random(1000,9999)+"姓名"
- tt["年龄"]=math.random(10,99)
- tt["地址"]=math.random(1000,9999)+"地址"
- tt["身份证"]=math.random(1000,9999)+"身份证"
- ..table.push(t,tt)
- }
-
- var ti = time.tick()
- mainForm.vlist.setTable(t)
- console.log("用时:",time.tick()-ti)
-
- ti = time.tick()
- mainForm.listview.setTable(t)
- console.log("用时:",time.tick()-ti)
-
- mainForm.show();
- win.loopMessage();

测试结果:用 listview 耗时为 vlist 的 866 倍 !!!

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。