Foxtable(狐表)用户栏目专家坐堂 → 表与表之间列值对比问题


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

主题:表与表之间列值对比问题

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/2 15:16:00 [显示全部帖子]

Dim strs() As String= Tables("表A").Rows(0)("第一列").Split(",")
Dim strList As New Dictionary(of String,Integer)
For i As Integer=0 To strs.length-1
   If Not strList.ContainsKey(strs(i)) Then
      strList.Add(strs(i),0)
   End If 
Next
For i As Integer=0 To strs.length-1
    strList(strs(i))=strList(strs(i))+1
Next

Dim strs2() As String= Tables("表B").Rows(0)("第一列").Split(",")
Dim strList2 As New Dictionary(of String,Integer)
For i As Integer=0 To strs2.length-1
  If Not strList2.ContainsKey(strs2(i)) Then
      strList2.Add(strs2(i),0)
   End If 
Next
For i As Integer=0 To strs2.length-1
    strList2(strs2(i))=strList2(strs2(i))+1
Next

For Each item As String In strList.Keys
  Dim dr As Row= Tables("表C").AddNew()
  dr("第一列")=strList(item)-strList2(item)
Next
搞定
以上代码少点重复代码。可以考虑写成函数 便于维护修改 减少代码冗余。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/2 15:18:00 [显示全部帖子]

看楼上 已经帮你写好了

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/2 16:01:00 [显示全部帖子]

Dim tb As Table =  Tables("表A")
Dim strList As New Dictionary(of String,Integer)
For i As Integer=0 To tb.Rows.Count-1
   If Not strList.ContainsKey(tb.Rows(i)("第一列")) Then
      strList.Add(tb.Rows(i)("第一列"),0)
   End If 
Next
For i As Integer=0 To tb.Rows.Count-1
    strList(tb.Rows(i)("第一列"))=strList(tb.Rows(i)("第一列"))+1
Next

Dim tb2 As Table= Tables("表B")
Dim strList2 As New Dictionary(of String,Integer)
For i As Integer=0 To tb2.Rows.Count-1
  If Not strList2.ContainsKey(tb2.Rows(i)("第一列")) Then
      strList2.Add(tb2.Rows(i)("第一列"),0)
   End If 
Next
For i As Integer=0 To tb2.Rows.Count-1
    strList2(tb2.Rows(i)("第一列"))=strList2(tb2.Rows(i)("第一列"))+1
Next
Tables("表C").Cols("第一列").Width="200"
For Each item As String In strList.Keys
  Dim dr As Row= Tables("表C").AddNew()
  If strList2.ContainsKey(item) Then
  dr("第一列")="表A比表B多了" & (strList(item)-strList2(item)) & "个" & item
  Else
  dr("第一列")="表B不存在" & item
  End If
Next
复制到命令窗口执行即可

 回到顶部