Foxtable(狐表)用户栏目专家坐堂 → [求助]填充不重复行


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

主题:[求助]填充不重复行

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


加好友 发短信
等级:幼狐 帖子:106 积分:923 威望:0 精华:0 注册:2017/3/9 9:05:00
[求助]填充不重复行  发帖心情 Post By:2017/6/15 22:45:00 [只看该作者]

各位大神,我想从员工表中已经“onduty”或者“vacation”的人员自动填充到通讯录中,但同一个人即同一个名字的不再填充,我分别指表属性beforeload 和 datarowadding中写了如下代码,但是实现不了,名字相同其他内容如Department不同的还是填充了。

beforeLoad事件:
Dim f As New Filler
f.SourceTable = DataTables("员工") '指定数据来源
f.SourceCols = "Chinese_Name,English_Name,Personnel_Classify_Department,Personnel_Classify_Position,Company" '指定数据来源列
f.DataTable = DataTables("通讯录") '指定数据接收表
f.DataCols = "Chinese_Name,English_Name,Department,Position,Company" '指定数据接收列
f.filter="Pers And Status='Onduty' or Status='Vacation'  "
f.ExcludeExistValue=True
f.Fill() '填充数据

datarowadding事件:
Dim dr As DataRow = e.DataRow
Dim dr1 As DataRow
If dr("Chinese_Name" )  IsNot Nothing Then
    If e.DataTable.Compute("Count([_Identify])","Chinese_Name = '" & dr("Chinese_Name") & "'") > 1 Then
        dr1 = e.DataTable.Find("Chinese_Name= '" &dr("Chinese_Name")& "'")
        If dr1 IsNot Nothing Then
            dr1.Delete()
        End If
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/16 0:05:00 [只看该作者]

 不能用filler填充。

 

 改成这样增加 http://www.foxtable.com/webhelp/scr/1533.htm

 

 在增加的代码上,加上判断,就好了。


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


加好友 发短信
等级:幼狐 帖子:106 积分:923 威望:0 精华:0 注册:2017/3/9 9:05:00
  发帖心情 Post By:2017/6/17 12:28:00 [只看该作者]

跟原“通讯录表“中’“Chinese_Name"不重复的条件怎么写啊?

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


加好友 发短信
等级:幼狐 帖子:106 积分:923 威望:0 精华:0 注册:2017/3/9 9:05:00
  发帖心情 Post By:2017/6/17 13:10:00 [只看该作者]

我用下面的代码,添加的是一样行数的空白行,为什么呢。 
Dim Cols1() As String = {"Chinese_Name","English_Name","Personnel_Classify_Department","Personnel_Classify_Position","Company"}
Dim Cols2() As String = {"Chinese_Name","English_Name","Department","Position","Company"}
For Each dr1 As DataRow In DataTables("员工").Select("[Personnel_Classify_Category] =  '间接' And [Status] = 'Onduty'")
    Dim dr2 As DataRow = DataTables("通讯录").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/17 14:56:00 [只看该作者]

Dim Cols1() As String = {"Chinese_Name","English_Name","Personnel_Classify_Department","Personnel_Classify_Position","Company"}
Dim Cols2() As String = {"Chinese_Name","English_Name","Department","Position","Company"}
Dim lst1 As new List(of DataRow)
Dim lstname As new List(of String)
For Each dr1 As DataRow In DataTables("员工").Select("[Personnel_Classify_Category] =  '间接' And [Status] = 'Onduty'")
    If DataTables("通讯录").Find("Chinese_Name='" & dr1("Chinese_Name") & "'") Is Nothing AndAlso lstname.Contains(dr1("Chinese_Name")) = False
        lst1.Add(dr1)
        lstname.Add(dr1("Chinese_Name"))
    End If
Next

For Each dr As DataRow In lst1
    Dim dr2 As DataRow = DataTables("通讯录").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr(Cols1(i))
    Next
Next

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


加好友 发短信
等级:幼狐 帖子:106 积分:923 威望:0 精华:0 注册:2017/3/9 9:05:00
  发帖心情 Post By:2017/6/17 20:36:00 [只看该作者]

添加的符合条件相同数量的是空白行,这是为什么呀?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/18 17:43:00 [只看该作者]

 上传实例说明问题。

 回到顶部