Foxtable(狐表)用户栏目专家坐堂 → 多值多表定时搜索


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

主题:多值多表定时搜索

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


加好友 发短信
等级:三尾狐 帖子:706 积分:4908 威望:0 精华:0 注册:2016/5/17 12:03:00
多值多表定时搜索  发帖心情 Post By:2016/11/21 7:55:00 [只看该作者]

订单明细表有一列“明细状态”,有一列“订单明细编号”是不重复的,有织造产量表,配缸表,染色表,烘剪表,定型表,
成品入库表,成品出库表都有“订单明细编号”;想做一个功能:定时搜索上面的各个表,如在织造产量表找到相同的订单明细编号,
在“明细状态”原来内容加入已织造,如果明细状态已经有了已织造就不加了,其他表也这样以此类推,如果明细状态已经有了已出库就不搜索了;
请问老师,实现这个功能,应该写在哪个表事件里,应该如何,求老师指点?

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


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/21 9:26:00 [只看该作者]

 先做成一个按钮测试是否正确,再把代码拷贝计划管理里面去定时执行。

 

 

dim dt1 as datatable = datatables("表a")
Dim dt2 As DataTable = DataTables("表b")
Dim dt3 As DataTable = DataTables("表c")
For Each dr1 As DataRow In dt1.Select("")
   
    If dr1("状态").contains("已染色") = False Then
        Dim dr2 As DataRow = dt2.Find("编号 = '" & dr1("编号") & "'")
        If dr2 IsNot Nothing Then
            dr1("状态") = (dr1("状态") & ",已染色").trim(",")
        End If
    End If

    If dr1("状态").contains("已染色") = False Then
        Dim dr3 As DataRow = dt3.Find("编号 = '" & dr1("编号") & "'")
        If dr3 IsNot Nothing Then
            dr1("状态") = (dr1("状态") & ",已定型").trim(",")
        End If
    End If
Next


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


加好友 发短信
等级:三尾狐 帖子:706 积分:4908 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2016/11/21 12:30:00 [只看该作者]

Dim dt1 As DataTable = DataTables("订单明细表")
dim dt2 as datatable = datatables("织造产量表")     '已织造
Dim dt3 As DataTable = DataTables("计划配缸通知单") '已配缸
Dim dt4 As DataTable = DataTables("染色生产表")     '已染色
Dim dt5 As DataTable = DataTables("烘剪产量表")     '已烘剪
Dim dt6 As DataTable = DataTables("定型产量表")     '已定型
Dim dt7 As DataTable = DataTables("成品入库表")     '已入库
Dim dt8 As DataTable = DataTables("成品出库表")     '已出库
For Each dr1 As DataRow In dt1.Select("明细状态 not like '%已出库%'")
老师上面代码:Select("明细状态 not like '%已出库%'")好像有问题,应该怎么写?

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


加好友 发短信
等级:三尾狐 帖子:706 积分:4908 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2016/11/21 12:33:00 [只看该作者]

 dr1("状态") = (dr1("状态") & ",已定型").trim(",")
为什么要去掉逗号
学狐表时间不久,基本功不扎实,见笑了。

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


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

可能会出现类似这种情况:,a,b,c,d

所以要去掉拼接的字符串的前后逗号

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


加好友 发短信
等级:三尾狐 帖子:706 积分:4908 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2016/11/21 16:00:00 [只看该作者]

For Each dr1 As DataRow In dt1.Select("明细状态 not like '%已出库%'")
老师上面代码:Select("明细状态 not like '%已出库%'")好像有问题,应该怎么写?

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


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/21 16:44:00 [只看该作者]

那就试试

 

For Each dr1 As DataRow In dt1.Select("明细状态 not like '%已出库%' or 明细状态 is null")


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


加好友 发短信
等级:三尾狐 帖子:706 积分:4908 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2016/11/21 17:28:00 [只看该作者]

谢谢,成了!老师为什么加上or 明细状态 is null;就可以了。

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


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

有些行明细状态没有值,明细状态 not like '%已出库%'只能判断有值的内容

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


加好友 发短信
等级:三尾狐 帖子:706 积分:4908 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2016/11/21 18:29:00 [只看该作者]

明白了,,谢谢!

 回到顶部