windev中自定义选定列的使用和注意事项
windev系统默认的多选,需要使用Ctrl+或者Shift+来点选,使用并不方便,所以我们一般在首列增加checkbox列,并在行头增加一个checkbox控制,作为全选使用。使用这个方法时,有几个地方需要注意:
1、如何获得已选定行的下标?
(1)首先要打开表格的多选模式,注意一定要打开多选模板,否则..Selecte或者TableSelectPlus都不起作用
(2)通过For遍历,将checkbox为true的行的选定状态设置为true,如下:
FOR EACH ROW n OF TABLE_固定参数 IF TABLE_固定参数.COL_Select = True THEN TABLE_固定参数[n]..Selected = True END END
//或者
FOR EACH ROW n OF TABLE_固定参数
IF TABLE_固定参数.COL_Select = True THEN
TableSelectPlus(TABLE_固定参数,n)
END
END
3、批量删除时,为什么遍历使用TableDelete不起作用?
TableDelete删除指定下标的行或者当前的选择行,当删除一行时,表格刷新,因减少了一行,所以下标都产生变化。如果一定要在表格层面操作批量删除的话,可结果第1点的多选,使用TableDeleteSelect,一次性删除选择行。如下代码所示:
//以下代码批量删除不生效
FOR EACH ROW n OF TABLE_固定参数 IF TABLE_固定参数.COL_Select = True THEN TableDelete(TABLE_固定参数)//或者TableDelete(TABLE_固定参数,n)
END END
//需要使用以下代码
FOR EACH ROW n OF TABLE_固定参数
IF TABLE_固定参数.COL_Select = True THEN
TableSelectPlus(TABLE_固定参数,n) //或者 TABLE_固定参数[n]..Selected = True
END
END
TableDeleteSelect(TABLE_固定参数)
4、为什么tablesave,tabledelete等函数都不起作用了?
注意表格绑定的数据是data file(实表)还是Query(虚表)。如果是虚表,则table类的保存、更改或删除都不起作用,需要使用数据层面的函数。通过表格的绑定ID来HReadSeekFirst匹配。
5、全选逻辑如何实现?
(1)全选按钮True时,选定列全选(全部为True),全选按钮为False时,选定列全不选(全部为False)。代码如下:
FOR EACH ROW OF TABLE_固定参数 TABLE_固定参数.COL_Select = MySelf END
(2)选定列全部True时,全选按钮为True,选定列只要有一行为False,则全选按钮为False。代码如下:
//根据选定按钮,修改隐藏按钮状态 FOR EACH ROW n OF TABLE_固定参数 IF TABLE_固定参数[n].COL_Select THEN BTN_删除固定参数..Visible = True BREAK ELSE BTN_删除固定参数..Visible = False END END //根据选定按钮,修改全选按钮状态 CHECK_固定参数全选 = False FOR EACH ROW n OF TABLE_固定参数 IF NOT TABLE_固定参数[n].COL_Select THEN RETURN END END CHECK_固定参数全选 = True
//方法二:还可以根据选定行的行数和表格总行数比较来判断,但方法一的效率更高。同时,方法一也展示了根据选定行隐藏和显示按钮的方法!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!