以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  将集合数据填充到姓名列,重复填充2000多行,什么原因?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=145058)

--  作者:hrw68529
--  发布时间:2020/1/7 8:41:00
--  将集合数据填充到姓名列,重复填充2000多行,什么原因?
目标:要求 将值班排班表中的“处级带班_姓名,科级带班_姓名,值班人员_姓名”三列的人员姓名,取唯一值,填写到“补助测试表”姓名列,下列代码出现错误,填充了2000多行,什么原因?请专家指导。谢谢

Dim Vals As List(of String())
Vals = DataTables("值班排班表").GetValues("处级带班_姓名|科级带班_姓名|值班人员_姓名")
For i As Integer = 0 To Vals.Count - 1
    Dim dr As DataRow = DataTables("补助测试表").AddNew()
    dr("姓名") = Vals(i)(0) & vbcrlf & Vals(i)(1) & vbcrlf & Vals(i)(2)      
Next



--  作者:有点蓝
--  发布时间:2020/1/7 9:04:00
--  
请上传具体实例说明
--  作者:hrw68529
--  发布时间:2020/1/7 9:28:00
--  
实例:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:值班补助系统1.zip


--  作者:有点蓝
--  发布时间:2020/1/7 9:51:00
--  
Dim Vals As List(of String)
Vals = DataTables("值班排班表").GetValues("处级带班_姓名")
For Each name As String In DataTables("值班排班表").GetValues("科级带班_姓名")
    If Vals.Contains(name) = False Then vals.Add(name)
Next
For Each name As String In DataTables("值班排班表").GetValues("值班人员_姓名")
    If Vals.Contains(name) = False Then vals.Add(name)
Next
Dim dr As DataRow
For Each name As String In vals
    dr = DataTables("补助测试表").AddNew
    dr("姓名") = name
    dr("次数") = DataTables("值班排班表").GetValues("值班日期|处级带班_姓名","处级带班_姓名=\'" & name & "\'").Count + DataTables("值班排班表").GetValues("值班日期|科级带班_姓名","科级带班_姓名=\'" & name & "\'").Count + DataTables("值班排班表").GetValues("值班日期|值班人员_姓名","值班人员_姓名=\'" & name & "\'").Count
Next

--  作者:hrw68529
--  发布时间:2020/1/7 10:20:00
--  
有点蓝:谢谢,但生成数据,一下生成了1765行,重复生成了好多行


--  作者:hrw68529
--  发布时间:2020/1/7 10:24:00
--  
生成了11765行,一万多行,
--  作者:有点蓝
--  发布时间:2020/1/7 10:24:00
--  
不可能,除非数据本身就有问题。上传有问题的实例说明
--  作者:hrw68529
--  发布时间:2020/1/7 10:31:00
--  
问题实例:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:值班补助系统1问题实例.zip


--  作者:hrw68529
--  发布时间:2020/1/7 10:36:00
--  
把代码放在哪个里边,我放在了PrepareEdit中
--  作者:有点蓝
--  发布时间:2020/1/7 10:39:00
--  
这种代码适合设计一个窗口,放到按钮中执行。

代码不是随便找个地方写入就可以使用的。每个事件都有自己的使用场景,不是随便乱用的