以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 关于条件审核的代码优化  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139248)

--  作者:2900819580
--  发布时间:2019/8/8 21:47:00
--  [求助] 关于条件审核的代码优化

   说明一下:Chk列是用于记录选择需审核的物料,临时增加上去的

    dt 表是将生产任务单中的相同子阶ID,车间,组别,任务单号的物料统计在一起的。

我现在的方法是遍历表单的方法去处理的,便数据比较多的时候,就比较慢,各位老师,有没有更好的方法或者思路

 

     Dim drs As List(of DataRow) = dt.Select("chk = \'Y\'")
        For Each dr As DataRow In drs
            fil = "任务单号 = \'" & dr("任务单号") & "\' and 子阶ID = \'" & dr("子阶ID") & "\' and 车间 = \'" & dr("车间") & "\' and 组别 = \'" & dr("组别") & "\'"
            cmd.CommandText = "UPD ATE {生产任务单} SET [状态] = 1,[审核] = \'" & _UserName & "\',[审核日期] = \'" & Functions.Execute("返回服务器日期").Date & "\' WHERE " & fil
            cmd.ExecuteNonQuery()
            dr("审核标志") = "Y"
            dr("审核") = _UserName           
        Next
        fil = Nothing
        MessageBox.Show("【审核单据成功】","信息提示",MessageBoxButtons.ok,MessageBoxIcon.Information)


--  作者:有点蓝
--  发布时间:2019/8/9 9:51:00
--  
dim ids as string = dt.GetComboListString("[_Identify]","chk = \'Y\'")

cmd.CommandText = "UPD ATE {生产任务单} SET [状态] = 1,[审核] = \'" & _UserName & "\',[审核日期] = \'" & Functions.Execute("返回服务器日期").Date & "\' WHERE [_Identify] in (" & ids.replace("|",",") & ")"
cmd.ExecuteNonQuery()
dt.replacefor("审核标志","Y","chk = \'Y\'")
dt.replacefor("审核",_UserName ,"chk = \'Y\'")

--  作者:2900819580
--  发布时间:2019/8/9 17:00:00
--  
以下是引用有点蓝在2019/8/9 9:51:00的发言:
dim ids as string = dt.GetComboListString("[_Identify]","chk = \'Y\'")

cmd.CommandText = "UPD ATE {生产任务单} SET [状态] = 1,[审核] = \'" & _UserName & "\',[审核日期] = \'" & Functions.Execute("返回服务器日期").Date & "\' WHERE [_Identify] in (" & ids.replace("|",",") & ")"
cmd.ExecuteNonQuery()
dt.replacefor("审核标志","Y","chk = \'Y\'")
dt.replacefor("审核",_UserName ,"chk = \'Y\'")

 

老师,没办法这样用,因为我Dt的表是根据{生产任务单}中的相同子“阶ID”,“车间”,“组别”,“任务单号”的物料合计在一起的;

也就是说目前的Dt是统计表来的;

 


--  作者:有点蓝
--  发布时间:2019/8/9 17:06:00
--  
统计表、临时表GetComboListString和replacefor一样可以使用。具体上传实例说明
--  作者:2900819580
--  发布时间:2019/8/9 19:25:00
--  
以下是引用有点蓝在2019/8/9 17:06:00的发言:
统计表、临时表GetComboListString和replacefor一样可以使用。具体上传实例说明

不是这个GetComboListString和replacefor这个不能使用,

 

是统计表出来的 [_Identify] 与没有统计之前的{生产任务单}的 [_Identify]  应该不可能一样的

如A物料 A车间 数量合计100

 

在生产任务单中就可能 有二条数据

A物料 A车间 数量 50

A物料 A车间 数量 50


--  作者:有点蓝
--  发布时间:2019/8/9 20:31:00
--  
这样啊,那就没有办法了。上传实例看看能不能换个思路处理