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


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

主题:关于复选框合计

帅哥哟,离线,有人找我吗?
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编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2022/5/27 17:57:00 [只看该作者]

获取勾选的行:


复制数据:

组合一下:


Dim nma() As String = {"A1", "A2", "A3", "A4"} 'A表数据来源列
Dim nmb() As String = {"B1", "B2", "B3", "B4"} 'B表数据接收列
For Each r1 As Row In Tables("表A").GetCheckedRows
    Dim r2 As DataRow = DataTables("表B").AddNew
    For i As Integer = 0 To nma.Length - 1
        r2(nmb(i)) = r1(nma(i))
    Next
Next 


 回到顶部
帅哥哟,离线,有人找我吗?
hongye
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

建议增加一个临时的逻辑列进行勾选,这样就可以直接进行分组统计了。不然要逐行遍历处理,麻烦

if dataTables("窗口1_table1").datacols.contains("a") = false
dataTables("窗口1_table1").datacols.add("a",gettype(boolean))
Tables("窗口1_table1").cols("a").visible=false
end if

For Each r1 As Row In Tables("窗口1_table1").GetCheckedRows
    r1("a") = true
Next 
Dim b As New GroupTableBuilder("统计表1",DataTables("窗口1_table1"))
    第三列     第四列        第五列
b
.Groups.AddDef("第一列")
b.Groups.AddDef("第二列")
b.Groups.AddDef("")
b.Groups.AddDef("")
b
.Totals.AddDef("第八列")
dim dt as datatable = b
.BuilddDataSource '生成统计表
for each 
r1 as datarow in dt.datarows
    Dim r2 As DataRow = DataTables("表B").AddNew
    r2("第一列") = r1("第一列")
r2("第二列") = r1("第二列")
r2("第四列") = r1("第四列") & “-” & r1("第五列")
r2("第五列") = r1("第八列")
Next 

 回到顶部
帅哥哟,离线,有人找我吗?
hongye
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
图片点击可在新窗口打开查看


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


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

4楼代码不可能有这种提示。如果是其它代码直接贴出完整代码,不要遮遮掩掩的

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


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

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


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

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


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

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


 回到顶部
帅哥哟,离线,有人找我吗?
hongye
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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

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


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/28 11:55: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 

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