Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共21 条记录, 每页显示 10 条, 页签: [1] [2] [3]
[浏览完整版]

标题:[求助]目录树的复选框如何根据条件进行自动选择?

11楼
hrw68529 发表于:2024/4/29 14:47:00
设置目录树颜色

12楼
hrw68529 发表于:2024/4/29 14:48:00
当表格中的面试成绩列不为空时,目录树字显示红色
13楼
有点蓝 发表于:2024/4/29 15:16:00
……
    If nd.Level = 1 Then
        nd.Checked = (DataTables("").Find("面试室='" & nd.Text & "' and 面试序号 is not null") IsNot Nothing)
        nd.ForeColor = IIf(nd.Checked, Color.Red, Color.Black)
    End If 
……
14楼
hrw68529 发表于:2024/4/29 16:19:00
有点蓝老师, 第一节点为天数,共三天,第二节点为第几面试室(每天都有相同的面试室),判断第几天,第几面试室的面试序号是否为空,如果不为空,则复选框选中,否则不选中;然后,再判断第几天第几面试室的面试成绩是否为空,如果不为空,则目录树显示为红色,否则显示黑色,我修改了下述代码,现在是当第一天的第一面试室面试序号为空时,第二天的第一面试室不为空时,目录树的第一天的第一面试室复选框还是选中了,在查找时,怎么加上第一层的节点判断,谢谢。
代码如下:(出错)
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("笔试成绩", "天数|面试室|分组")
trv.Nodes.Insert("显示所有行",0)

For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Level = 1 Then
        nd.Checked = (DataTables("笔试成绩").Find("天数='"& nd.ParentNode.text & "'and 面试室='" & nd.Text & "' and 面试序号 is not null") IsNot Nothing)
    End If
Next

For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Level = 1 And nd.Checked = (DataTables("笔试成绩").Find("天数='"& nd.ParentNode.text & "'and 面试室='" & nd.Text & "' and 面试成绩 is not null") IsNot Nothing)  Then
        nd.ForeColor = IIf(nd.Checked, Color.Red, Color.Black)
    End If
Next
 

15楼
hrw68529 发表于:2024/4/29 16:21:00
目录树如下:
图片点击可在新窗口打开查看此主题相关图片如下:截图01.jpg
图片点击可在新窗口打开查看
16楼
有点蓝 发表于:2024/4/29 16:22:00
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("笔试成绩", "天数|面试室|分组")
trv.Nodes.Insert("显示所有行",0)

For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Level = 1 Then
        nd.Checked = (DataTables("笔试成绩").Find("天数='"& nd.ParentNode.text & "' and 面试室='" & nd.Text & "' and 面试序号 is not null") IsNot Nothing)
nd.ForeColor = IIf(nd.Checked, Color.Red, Color.Black)
    End If
Next
17楼
hrw68529 发表于:2024/4/29 16:32:00
有点蓝老师,给目录树变红色,是依据“面试成绩”列是否为空,如果不为空,则标红,否则标黑,上述代码,是只要面试序号不为空,都标红,这不是我需要的,谢谢
18楼
有点蓝 发表于:2024/4/29 16:59:00
那就把面试序号改为面试成绩啊
19楼
hrw68529 发表于:2024/4/29 17:23:00
有点蓝老师,是这样的吗?请指教
代码:For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Level = 1 Then
        nd.Checked = (DataTables("笔试成绩").Find("天数='"& nd.ParentNode.text & "' and 面试室='" & nd.Text & "' and 面试序号 is not null") IsNot Nothing)
    End If
Next

For Each nd1 As WinForm.TreeNode In trv.AllNodes
    If nd1.Level = 1 Then
        nd1.Checked = (DataTables("笔试成绩").Find("天数='"& nd1.ParentNode.text & "' and 面试室='" & nd1.Text & "' and 面试成绩 is not null") IsNot Nothing)
nd1.ForeColor = IIf(nd1.Checked, Color.Red, Color.Black)
    End If
Next

20楼
有点蓝 发表于:2024/4/29 17:26:00
不用多此一举,遍历2次,直接把16楼代码面试序号四个字改为面试成绩就行
共21 条记录, 每页显示 10 条, 页签: [1] [2] [3]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .12500 s, 2 queries.