以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多值多表定时搜索  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93107)

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

--  作者:有点青
--  发布时间: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
--  发布时间: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
--  发布时间:2016/11/21 12:33:00
--  
 dr1("状态") = (dr1("状态") & ",已定型").trim(",")
为什么要去掉逗号
学狐表时间不久,基本功不扎实,见笑了。

--  作者:有点蓝
--  发布时间:2016/11/21 14:21:00
--  
可能会出现类似这种情况:,a,b,c,d

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

--  作者:lk15502
--  发布时间:2016/11/21 16:00:00
--  
For Each dr1 As DataRow In dt1.Select("明细状态 not like \'%已出库%\'")
老师上面代码:Select("明细状态 not like \'%已出库%\'")好像有问题,应该怎么写?

--  作者:有点青
--  发布时间:2016/11/21 16:44:00
--  

那就试试

 

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


--  作者:lk15502
--  发布时间:2016/11/21 17:28:00
--  
谢谢,成了!老师为什么加上or 明细状态 is null;就可以了。
--  作者:有点蓝
--  发布时间:2016/11/21 17:42:00
--  
有些行明细状态没有值,明细状态 not like \'%已出库%\'只能判断有值的内容
--  作者:lk15502
--  发布时间:2016/11/21 18:29:00
--  
明白了,,谢谢!