windev中自定义选定列的使用和注意事项

windev系统默认的多选,须要使用Ctrl+或者Shift+来点选,使用并不方便,因此咱们通常在首列增长checkbox列,并在行头增长一个checkbox控制,做为全选使用。使用这个方法时,有几个地方须要注意:函数

一、如何得到已选定行的下标?spa

(1)首先要打开表格的多选模式,注意必定要打开多选模板,不然..Selecte或者TableSelectPlus都不起做用code

(2)经过For遍历,将checkbox为true的行的选定状态设置为true,以下:blog

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

 

三、批量删除时,为何遍历使用TableDelete不起做用?table

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_固定参数)class

 

四、为何tablesave,tabledelete等函数都不起做用了?效率

注意表格绑定的数据是data file(实表)仍是Query(虚表)。若是是虚表,则table类的保存、更改或删除都不起做用,须要使用数据层面的函数。经过表格的绑定ID来HReadSeekFirst匹配。file

 

五、全选逻辑如何实现?遍历

(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

//方法二:还能够根据选定行的行数和表格总行数比较来判断,但方法一的效率更高。同时,方法一也展现了根据选定行隐藏和显示按钮的方法!
相关文章
相关标签/搜索