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


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

主题:工资管理系统

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


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

所有节点的数据如何一齐复制过来呢?

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


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

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim pnd As WinForm.TreeNode = trv.nodes.Add("新节点")
Dim pnds As new List(Of WinForm.TreeNode)
pnds.Add(pnd)
Dim t As Table = Tables("工资摘要")
For Each nd As WinForm.TreeNode In trv.SelectedNode.AllNodes
    pnd = pnds(nd.Level-1).nodes.Add(nd.name, nd.text)
    Dim fdr1 As DataRow = t.DataTable.find("_Identify = " & nd.tag)
    Dim fdr2 As DataRow = t.DataTable.find("_Identify = " & pnd.tag)
    If pnds.count <= nd.Level Then
        pnds.add(pnd)
    Else
        pnds(nd.Level) = pnd
        For nn As Integer = 2 To t.Cols.count-2
            fdr2(t.Cols(nn).Name) = fdr1(t.Cols(nn).Name)
        Next
    End If
Next
老师,代码应如何修改?

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


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

上述代码应如何修改才能复制节点时带数据一齐复制?

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


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


Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim pnd As WinForm.TreeNode = trv.nodes.Add("新节点")
Dim pnds As new List(Of WinForm.TreeNode)
pnds.Add(pnd)
Dim t As Table = Tables("工资摘要")
For Each nd As WinForm.TreeNode In trv.SelectedNode.AllNodes
    pnd = pnds(nd.Level-1).nodes.Add(nd.name, nd.text)
    Dim fdr1 As DataRow = t.DataTable.find("_Identify = " & nd.tag)
    Dim fdr2 As DataRow = t.DataTable.find("_Identify = " & pnd.tag)
    If pnds.count <= nd.Level Then
        pnds.add(pnd)
    Else
        pnds(nd.Level) = pnd
        For nn As Integer = 2 To t.Cols.count-2
            fdr2(t.Cols(nn).Name) = fdr1(t.Cols(nn).Name)
        Next
    End If
Next上述代码应如何修改才能复制节点时带数据一齐复制?上述代码应如何修改才能复制节点时带数据一齐复制?上述代码应如何修改才能复制节点时带数据一齐复制?

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


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

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim pnd As WinForm.TreeNode = trv.nodes.Add("新节点")
Dim pnds As new List(Of WinForm.TreeNode)
pnds.Add(pnd)
Dim t As Table = Tables("表A")
For Each nd As WinForm.TreeNode In trv.SelectedNode.AllNodes
    Dim nr As Row = t.AddNew
    pnd = pnds(nd.Level-1).nodes.Add(nd.name, nd.text)
    pnd.tag = nr("_Identify")
    Dim fdr1 As DataRow = t.DataTable.find("_Identify = " & nd.tag)
    If pnds.count <= nd.Level Then
        pnds.add(pnd)
    Else
        pnds(nd.Level) = pnd
    End If
    For Each c As Col In t.Cols
        nr(c.Name) = fdr1(c.Name)
    Next
Next

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


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

老师,请给我详细注释上述代码!

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


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

关键要理解:用一个集合记录了上一级节点,这样创建节点的时候,就知道应该在哪个节点下创建节点了。

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


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

老师,你好,请在每句代码作下注释,我真想学下,麻烦老师你了!

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


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

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") '目录树对象
Dim pnd As WinForm.TreeNode = trv.nodes.Add("新节点") '添加一个节点
Dim pnds As new List(Of WinForm.TreeNode) '定义一个集合
pnds.Add(pnd) '第一级节点
Dim t As Table = Tables("表A")
For Each nd As WinForm.TreeNode In trv.SelectedNode.AllNodes '循环所有的节点
    Dim nr As Row = t.AddNew '新建一行
    pnd = pnds(nd.Level-1).nodes.Add(nd.name, nd.text) '新增一个节点
    pnd.tag = nr("_Identify") '设置属性
    Dim fdr1 As DataRow = t.DataTable.find("_Identify = " & nd.tag) '查找对应的行
    If pnds.count <= nd.Level Then '如果此级节点没有放入集合
        pnds.add(pnd) '放入
    Else
        pnds(nd.Level) = pnd '修改原先集合的值
    End If
    For Each c As Col In t.Cols '拷贝数据
        nr(c.Name) = fdr1(c.Name)
    Next
Next

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


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

老师你好!在NodeMouseDoubleClick输入如下代码:
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Tables("工资摘要").Filter = "代码 Like '" & e.Node.Name & "%'"
Tables("工资摘要").Position = Tables("工资摘要").FindRow(e.Node.DataRow)
Forms("工资档案窗口").open()
Forms("工资档案窗口").Controls("Label1").Text = Tables("工资摘要").current("摘要")
为什么不能打开对应行?

 回到顶部