Foxtable(狐表)用户栏目专家坐堂 → 求助,号码段标记问题


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

主题:求助,号码段标记问题

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


加好友 发短信
等级:婴狐 帖子:24 积分:320 威望:0 精华:0 注册:2015/7/25 22:31:00
求助,号码段标记问题  发帖心情 Post By:2015/8/21 10:47:00 [只看该作者]

A表中有N个号码段

B表中有N个号码

要怎么把B表中含有A表号码中号码的号码标记出来以方便后期的统计?

我现在的做法是这样的

以下内容为程序代码:

1 Dim Arys As List(Of String())
2 Arys = DataTables("购单").GetValues("开始|结束|已用","用完 = " & False )
3 For Each Ary As String() In Arys
4 'Output.Show(Ary(0) & "|" & Ary(1) & "|" & Ary(2))
5 Dim drs As List(Of DataRow)
6 drs = DataTables("寄件").Select("[单号] >= " & ary(0) & " And [单号] <= " & ary(1) )
7 For Each dr As DataRow In drs
8 dr("购单") = True
9 Next
10 If drs.Count <> ary(2) Then
11 DataTables("购单").ReplaceFor("已用",drs.Count , "[开始] = " & ary(0))
12 End If
13 Next

 

这样虽然能把B表的号码标出来,但效率不怎么高,A表中每个号码都要轮一次,,求个高效的解决方法

 

实例如下

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:号码段标记实例_201508211040.zip


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/21 11:02:00 [只看该作者]

你这种,肯定要循环才行啊

 

For Each dr As DataRow In DataTables("购单").Select("")
    Dim filter As String = "[单号] >= " & dr("开始") & " And [单号] <= " & dr("结束")
    DataTables("寄件").replacefor("购单", True, filter)
    dr("已用") = DataTables("寄件").Compute("count(购单)", filter)
Next


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


加好友 发短信
等级:婴狐 帖子:24 积分:320 威望:0 精华:0 注册:2015/7/25 22:31:00
  发帖心情 Post By:2015/8/21 11:33:00 [只看该作者]

谢谢,你写的简洁好多

 回到顶部