Foxtable(狐表)用户栏目专家坐堂 → 关于复选框合计


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

主题:关于复选框合计

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2022/5/29 10:01:00 [只看该作者]

If Tables("窗口2_table1").DataTable.datacols.contains("a") = False Then
    Tables("窗口2_table1").DataTable.datacols.add("a", GetType(Boolean))
    Tables("窗口2_table1").cols("a").visible = False
End If
Tables("窗口2_table1").DataTable.replacefor("a", False)
For Each r1 As Row In Tables("窗口2_table1").GetCheckedRows
    r1("a") = True
Next
Dim b As New GroupTableBuilder("统计表1", Tables("窗口2_table1").DataTable )
b.Groups.AddDef("第一")
b.Groups.AddDef("第二")
b.Groups.AddDef("第四")
b.Groups.AddDef("第五")
b.Totals.AddDef("第八")
b.Filter = "a=true"
Dim dt As DataTable = b.Build(True) '生成统计表
For Each r1 As DataRow In dt.datarows
    Dim r2 As DataRow = DataTables("表D").AddNew
    r2("第一列") = Date.Today()
    r2("第三列") = r1("第一")
    r2("第四列") = r1("第二")
    r2("第五列") = r1("第四")
    r2("第六列") = r1("第五")
    r2("第七列") = r1("第八")
Next
Tables("窗口2_table1").DataTable.datacols.Delete("a")
For Each dr1 As Row In Tables("窗口2_Table1").GetCheckedRows
    Dim filter As String = "1=1"
    For Each dc As DataCol In DataTables("表C").DataCols
        If dr1.isnull(dc.name) Then
            filter = filter & " and " & dc.name & " is null"
        Else
            If dc.IsNumeric Then
                filter = filter & " and " & dc.name & " =" & dr1(dc.name) 
            ElseIf dc.isdate Then
                filter = filter & " and " & dc.name & " =#" & dr1(dc.name) & "#"
            Else
                filter = filter & " and " & dc.name & " ='" & dr1(dc.name) & "'"
            End If
        End If
    Next
    Dim dr2 As DataRow = DataTables("表E").find(filter )
    If dr2 Is Nothing Then
        dr2 = DataTables("表E").AddNew()
        For Each dc As DataCol In DataTables("表C").DataCols
            dr2(dc.Name) = dr1(dc.name)
        Next
    End If
    dr1.Delete
Next

红色部分执行完成,黑色部分不能执行,能帮我改改吗

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


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

应该是没有符合条件的数据

    Next
msgbox(filter )
    Dim dr2 As DataRow = DataTables("表E").find(filter )

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2022/6/1 22:54:00 [只看该作者]

If Tables("窗口2_table1").DataTable.datacols.contains("a") = False Then
    Tables("窗口2_table1").DataTable.datacols.add("a", GetType(Boolean))
    Tables("窗口2_table1").cols("a").visible = False
End If
Tables("窗口2_table1").DataTable.replacefor("a", False)
For Each r1 As Row In Tables("窗口2_table1").GetCheckedRows
    r1("a") = True
Next
Dim b As New GroupTableBuilder("统计表1", Tables("窗口2_table1").DataTable )
b.Groups.AddDef("第一")
b.Groups.AddDef("第二")
b.Groups.AddDef("第四")
b.Groups.AddDef("第五")
b.Totals.AddDef("第八")
b.Filter = "a=true"
Dim dt As DataTable = b.Build(True) '生成统计表
For Each r1 As DataRow In dt.datarows
    Dim r2 As DataRow = DataTables("表D").AddNew
    r2("第一列") = Date.Today()
    r2("第三列") = r1("第一")
    r2("第四列") = r1("第二")
    r2("第五列") = r1("第四") & "-" & r1("第五")
    r2("第六列") = r1("第五")
    r2("第七列") = r1("第八")
Next
For Each dr1 As Row In Tables("窗口2_Table1").GetCheckedRows
    If Tables("窗口2_table1").DataTable.datacols.contains("a") Then
        Tables("窗口2_table1").DataTable.datacols.Delete("a")
    End If
    Dim filter As String = "1=1"
    For Each dc As DataCol In DataTables("表C").DataCols
        If dr1.isnull(dc.name) Then
            filter = filter & " and " & dc.name & " is null"
        Else
            If dc.IsNumeric Then
                filter = filter & " and " & dc.name & " =" & dr1(dc.name) 
            ElseIf dc.isdate Then
                filter = filter & " and " & dc.name & " =#" & dr1(dc.name) & "#"
            Else
                filter = filter & " and " & dc.name & " ='" & dr1(dc.name) & "'"
            End If
        End If
    Next
    Dim dr2 As DataRow = DataTables("表E").find(filter )
    If dr2 Is Nothing Then
        dr2 = DataTables("表E").AddNew()
        For Each dc As DataCol In DataTables("表C").DataCols
            dr2(dc.Name) = dr1(dc.name)
        Next
    End If
    '    dr1.Delete
Next

请问怎么让表D和表E选取后关联啊

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/2 8:44:00 [只看该作者]

怎么样的关联?截图具体数据说明一下

 回到顶部
总数 14 上一页 1 2