Foxtable(狐表)用户栏目专家坐堂 → [求助] 关于条件审核的代码优化


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

主题:[求助] 关于条件审核的代码优化

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


加好友 发短信
等级:六尾狐 帖子:1327 积分:9648 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助] 关于条件审核的代码优化  发帖心情 Post By: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)


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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1327 积分:9648 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By: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是统计表来的;

 


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


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

统计表、临时表GetComboListString和replacefor一样可以使用。具体上传实例说明

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


加好友 发短信
等级:六尾狐 帖子:1327 积分:9648 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By: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


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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/9 20:31:00 [只看该作者]

这样啊,那就没有办法了。上传实例看看能不能换个思路处理

 回到顶部