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


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

主题:关于复选框合计

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
关于复选框合计  发帖心情 Post By:2022/5/27 16:27:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看


当选择窗口中表的复选框,选中后按按钮后需要按第一列和第二列统计后填入表D

比如
当选择第一行和第二行数据然后按Button1后
窗口表的数据
ZWY0291  001   180   320  True  2      22.2  85
ZWY0291  001   180   320  True  5      54.2  155

复制到表D后
  第一列    第三列     第四列        第五列
ZWY0291  001     180- 320      76.4

请问这个代码怎么写


[此贴子已经被作者于2022/5/27 16:28:57编辑过]

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2022/5/27 18:27:00 [显示全部帖子]

不是这个意思

窗口表的数据
ZWY0291  001   180   320  True  2      22.2  85
ZWY0291  001   180   320  True  5      54.2  155

复制到表D后
  第一列    第三列     第四列        第五列
ZWY0291  001     180- 320      76.4
我的意思是如何将这窗口表的数据通过相同的内容条件合并成一条内容内容写入到表D

[此贴子已经被作者于2022/5/27 18:40:42编辑过]

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2022/5/28 9:54:00 [显示全部帖子]

dim dt as datatable = b.BuilddDataSource '生成统计表

图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2022/5/28 10:56:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:读写ini_例子.table


代码贴不上去,还是出来错误

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2022/5/28 11:50: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

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("第三列") = r1("第一")
    r2("第四列") = r1("第二")
    r2("第五列") = r1("第四")
    r2("第六列") = r1("第五")
    r2("第七列") = r1("第八")
Next

第一次没出问题
第二次筛选有问题,不是按照勾选的统计

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望: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

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

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


加好友 发短信
等级:一尾狐 帖子:437 积分:2949 威望: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选取后关联啊

 回到顶部