Foxtable(狐表)用户栏目专家坐堂 → 求一对比小程序


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

主题:求一对比小程序

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


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
求一对比小程序  发帖心情 Post By:2012/6/14 22:13:00 [只看该作者]

有字段结构都一样的2个表 表A和表B,要求求出表a有表b没有的人员、2个表都有的人员和表b有表a没有的人员

[此贴子已经被作者于2012-6-14 22:13:48编辑过]

 回到顶部
帅哥,在线噢!
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/6/14 22:51:00 [只看该作者]

发示例文件,难得费口舌!


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


加好友 发短信
等级:婴狐 帖子:17 积分:209 威望:0 精华:0 注册:2011/4/19 14:42:00
回复:(yjk1023)求一对比小程序  发帖心情 Post By:2012/6/14 23:56:00 [只看该作者]

 

 

Dim alst As List(of String) = DataTables("表A").getuniquevalues("","人员")  ‘获取表A人员集合

Dim blst As List(of String) = DataTables("表B").getuniquevalues("","人员")  ‘获取表B人员集合

 

Dim aybmy As new List(of String)    ’定义A有B没有人员的集合

Dim ayby As new List(of String)      ’定义A有B也有人员的集合

Dim anm,bnm As String

 

For Each anm In alst    ‘遍历表A人员集合,获得A有B没有和 A有B也有的人员集合

If blst.contains(anm) = False Then

        aybmy.add(anm)

    Else

        ayby.add(anm)

    End If

Next

 

Dim byamy As new List(of String) 

For Each bnm In blst        ‘遍历表B人员集合,获得B有A没有的人员集合

    If alst.contains(bnm) = False Then

        byamy.add(bnm)

    End If

Next

 

Dim v,v1,v2,v3 As Integer

V1=aybmy.count

V2=ayby.count

V3=byamy.count

V = Math.max(Math.max(v1,v2),v3)       ’在3个集合中,找到最大的集合数

messagebox.Show(v)

Dim dtb As new datatablebuilder("人员比较表")   '生成一个查询表并填充人员

Dim dt As DataTable

Dtb.adddef("A有B没有",Gettype(String),16)

Dtb.adddef("A有B也有",Gettype(String),16)

Dtb.adddef("B有A没有",Gettype(String),16)

Dt = Dtb.build()

     .

     .

     .

[此贴子已经被作者于2012-6-15 8:32:32编辑过]

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


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

如果不想写代码,可以看看:

http://www.foxtable.com/help/topics/1479.htm

 


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


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2012/6/15 9:41:00 [只看该作者]

非常感谢!实验中


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


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2012/6/15 10:25:00 [只看该作者]

以下是引用程兴刚在2012-6-14 22:51:00的发言:

发示例文件,难得费口舌!


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


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2012/6/15 10:25:00 [只看该作者]

以下是引用程兴刚在2012-6-14 22:51:00的发言:

发示例文件,难得费口舌!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:人员对比.foxdb


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


加好友 发短信
等级:婴狐 帖子:17 积分:209 威望:0 精华:0 注册:2011/4/19 14:42:00
人员对比表-小例子  发帖心情 Post By:2012/6/15 14:17:00 [只看该作者]

  拜托楼主一件事:以后上传,请以商业版做示例哈!!!!!!!

 

已测试,人员对比表的小例子


图片点击可在新窗口打开查看此主题相关图片如下:人员截图.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:人员对比表.table

[此贴子已经被作者于2012-6-15 15:02:31编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2012/6/15 15:40:00 [只看该作者]

SQL法:

Dim dt1,dt2,dt3 As DataTable
Dim sql1,sql2,sql3 As String

dt1 = DataTables("窗口2_Table1")
sql1 = "SELECT 人员 as  AB都有 ,'' as A有B无,'' as A无B有  FROM {表A} WHERE 人员 IN (SELECT 人员 FROM {表B})"
sql2 = "SELECT 人员 as  A有B无  FROM {表A} WHERE 人员 Not IN (SELECT 人员 FROM {表B})"
sql3 = "SELECT 人员 as  A无B有  FROM {表B} WHERE 人员 Not IN (SELECT 人员 FROM {表A})"

Dim cmd2,cmd3 As New SQLCommand
cmd2.CommandText = sql2
dt2 = cmd2.ExecuteReader()

cmd3.CommandText = sql3
dt3 = cmd3.ExecuteReader()
dt1.Fill(sql1,"",True)

Dim f As New Filler
f.SourceTable = dt2  
f.DataTable = dt1
f.Append = False
f.Fill() '

f = New Filler
f.SourceTable = dt3  
f.DataTable = dt1
f.Append = False
f.Fill() '

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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2012/6/16 8:55:00 [只看该作者]

学习,收藏

 回到顶部