Foxtable(狐表)用户栏目专家坐堂 → 工资管理系统


  共有21352人关注过本帖树形打印复制链接

主题:工资管理系统

帅哥哟,离线,有人找我吗?
发财
  81楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2016/3/30 21:54:00 [只看该作者]

77楼代码可以加回注释吗?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  82楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/30 22:09:00 [只看该作者]

For Each nd As WinForm.TreeNode In e.node.AllNodes '将所有的子节点弄成和当前节点一样
    nd.Checked = e.Node.Checked
Next


If e.Node.Checked = False Then '如果是取消勾选,把所有的父节点的勾选都去掉
    Dim pnd As WinForm.TreeNode = e.Node.ParentNode
    Do While pnd IsNot Nothing
        pnd.Checked = False
        pnd = pnd.ParentNode
    Loop
Else                     '如果是勾选,判断是否全部都勾选了,如果全部都勾选,就把父节点也勾选
    Dim pnd As WinForm.TreeNode = e.Node.ParentNode
    Dim flag As Boolean = True
    Do While pnd IsNot Nothing
        If flag = True
            For Each nd As WinForm.TreeNode In pnd.Nodes
                If nd.Checked = False Then
                    flag = False
                    Exit For
                End If
            Next
        End If
        pnd.Checked = flag
        pnd = pnd.ParentNode
    Loop


 回到顶部
帅哥哟,离线,有人找我吗?
发财
  83楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2016/3/31 8:33:00 [只看该作者]

Dim n1 As Integer = 0
Dim t As Table = Tables("工资摘要")
Dim f1 As String = ("工资表.xls")
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode = trv.SelectedNode
Dim App As New MSExcel.Application
Dim wb As MSExcel.WorkBook = App.WorkBooks.open(ProjectPath & f1)
Dim ws1 As MSExcel.WorkSheet = wb.WorkSheets("工资")
For n As Integer = 2 To t.Cols.count-1
    ws1.cells(2+n,2).value = t.Cols(n).Name
Next
For i As Integer = t.Position To t.Rows.Count - 1
    If  nd.Nodes(i).Checked = True Then       '如果当前节点已勾选
        Dim fdr As DataRow = t.DataTable.find("代码 like '" & t.Rows(i)("代码") & ".%'")
        If fdr Is Nothing Then
            ws1.cells(3,3+n1).Value = t.Rows(i)("摘要")
            For nn As Integer = 2 To t.Cols.count-1
                ws1.cells(2+nn,3+n1).value = t.rows(i)(t.Cols(nn).Name)
            Next
            n1 = n1 + 1
        End If
    End If
Next
ws1.UsedRange.Formula = ws1.UsedRange.Formula
ws1.Activate
app.ActiveWindow.DisplayZeros = False
wb.save
wb.close
App.Quit
Dim Proc As New Process
Proc.File = (f1)
Proc.Start()
老师,为什么代码    If  nd.Nodes(i).Checked = True Then       '如果当前节点已勾选,不能生效?

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  84楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/3/31 8:53:00 [只看该作者]

msgbox(nd.Nodes(i).Text)看看是不是正确的节点


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  85楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/31 9:34:00 [只看该作者]

If nd.Nodes(i).Checked = True Then

 

如果是判断当前选择的节点是否勾选,改成

 

If nd.Checked = True Then


 回到顶部
帅哥哟,离线,有人找我吗?
发财
  86楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2016/3/31 10:14:00 [只看该作者]

如何用代码设定当前行是否已经勾选了?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  87楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/31 10:17:00 [只看该作者]

方法一:加一列逻辑列,勾选目录树的时候,顺便把表的数据也勾选;

 

方法二:要查询某一行是否勾选,需要循环目录树的所有节点,判断和比较才能知道。

 

具体上传实例


 回到顶部
帅哥哟,离线,有人找我吗?
发财
  88楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2016/3/31 10:51:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数字级码生成 (1).table


 回到顶部
帅哥哟,离线,有人找我吗?
发财
  89楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2016/3/31 10:52:00 [只看该作者]

求窗口1的导出到表C的控件代码?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  90楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/31 10:56:00 [只看该作者]

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Checked Then
        Dim fdr As DataRow = DataTables("表A").find("_Identify = " & nd.tag)
        If fdr IsNot Nothing Then
            msgbox(fdr("第一列") & fdr("第二列"))
        End If
    End If
Next

 回到顶部