Foxtable(狐表)用户栏目专家坐堂 → [求助]datarow 集合,可以用集合add来加入行吗?


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

主题:[求助]datarow 集合,可以用集合add来加入行吗?

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
[求助]datarow 集合,可以用集合add来加入行吗?  发帖心情 Post By:2016/12/20 19:40:00 [只看该作者]

Dim tr As WinForm.TreeView = e.Form.Controls("项目类别")
Dim filter As String
Dim drs As new List (of DataRow)
For Each nd As WinForm.TreeNode In tr.AllNodes
    If nd.Level = 1 And nd.Checked = True Then
        drs.Add(nd.DataRow)
    End If
Next

If drs.Count > 0 Then
    For Each dr As DataRow In drs
        DataTables("施工合同").SQLReplaceFor("非活动",0, "合同编号 = '" & dr("合同编号") & "'")
        DataTables("施工合同").SQLReplaceFor("非活动",1, "合同编号 <> '" & dr("合同编号") & "'")
    Next
    DataTables("施工合同").LoadFilter = "非活动 = 0"
    DataTables("施工合同").Load
    Tables("主窗口_table1").Filter = "非活动 = 0"
    Tables("主窗口_table1").Sort = "签订日期 desc"
Else
    Return
End If

这种用法对吗?

我这样写,只有最后一个;选中的节点,被筛选出来了。其它的:非活动,全部为:1
[此贴子已经被作者于2016/12/20 19:41:03编辑过]

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/12/20 20:19:00 [只看该作者]

Dim tr As WinForm.TreeView = e.Form.Controls("项目类别")
Dim filter As String
Dim drs As new List (of DataRow)
Dim drs1 As new List (of DataRow)
For Each nd As WinForm.TreeNode In tr.AllNodes
    If nd.Level = 1
        If nd.Checked = True Then
            drs.Add(nd.DataRow)
        Else
            drs1.Add(nd.DataRow)
        End If
    End If
Next

If drs.Count > 0 Then
    For Each dr As DataRow In drs
        DataTables("施工合同").SQLReplaceFor("非活动",0, "合同编号 = '" & dr("合同编号") & "'")
    Next
    For Each dr1 As DataRow In drs1
        DataTables("施工合同").SQLReplaceFor("非活动",1, "合同编号 = '" & dr1("合同编号") & "'")
    Next
    DataTables("施工合同").LoadFilter = "非活动 = 0"
    DataTables("施工合同").Load
    Tables("主窗口_table1").Filter = "非活动 = 0"
    Tables("主窗口_table1").Sort = "签订日期 desc"
Else
    Return
End If

我改成这样,就可以了。

不知道,有没有更简单的代码。

请老师指教一下。很想用其它的方法实现。

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107729 积分:547978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/20 21:12:00 [只看该作者]

Dim tr As WinForm.TreeView = e.Form.Controls("项目类别")
Dim filter As String
Dim drs As new List (of String)
For Each nd As WinForm.TreeNode In tr.AllNodes
    If nd.Level = 1 
        If nd.Checked = True Then
            drs.Add(nd.DataRow("合同编号"))
        End If
    End If
Next

If drs.Count > 0 Then
    filter =  "合同编号 in ('" & String.Join("','",drs.ToArray()) & "')"
    DataTables("施工合同").LoadFilter = filter
    DataTables("施工合同").Load
    Tables("主窗口_table1").Filter = filter
    Tables("主窗口_table1").Sort = "签订日期 desc"
Else
    Return
End If

 回到顶部