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

//方法二:还可以根据选定行的行数和表格总行数比较来判断,但方法一的效率更高。同时,方法一也展示了根据选定行隐藏和显示按钮的方法!
复制代码

 

posted @   functionMC  阅读(175)  评论(0编辑  收藏  举报
编辑推荐:
· 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框架的用法!
点击右上角即可分享
微信分享提示