以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]流转总是出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=164253)

--  作者:hbkongxin
--  发布时间:2021/5/2 9:03:00
--  [求助]流转总是出错
图片点击可在新窗口打开查看

这个报错是在保存时出现的,保存的代码如下
Dim Filter As String
Dim bj As String
Dim drs As List(Of DataRow)
\'移除处理完毕的行
Select Case User.roles
    Case "录入员"
        Filter = "进度 = \'录入完成\'" 
    Case "调色员"
        Filter = "进度 = \'调色完成\' And 调色员 = \'" & User.Name & "\'" 
    Case "打印员"
        Filter = "进度 = \'打印完成\' And 打印机台 = \'" & User.Name & "\'" 
    Case Else
        Return \'其他用户正常返回
End Select
DataTables("华晨生产计划").RemoveFor(Filter)
\'追载待处理的行
Select Case User.roles
    Case "调色员"
        Filter = "进度 = \'录入完成\' And 调色员 = \'" & User.Name & "\'" 
        bj = "调色开始"
    Case "打印员"
        Filter = "进度 = \'调色完成\' And 打印机台 = \'" & User.Name & "\' And 米数 > 0 " 
        bj = "打印开始"
    Case Else
        Return \'其他用户正常返回
End Select
drs = DataTables("华晨生产计划").AppendLoad(Filter,False)
\'为新追载的行设置流程开始标记
If drs.Count > 0 Then 
    For Each dr As DataRow In drs
        dr("进度") = bj
        dr.Save() \'一定要保存,以更新后台的流程进度标记
    Next
End If

老师,是哪里有问题吗

--  作者:hbkongxin
--  发布时间:2021/5/2 10:42:00
--  
老师都休息了吗
--  作者:hbkongxin
--  发布时间:2021/5/3 9:11:00
--  
求助
--  作者:hbkongxin
--  发布时间:2021/5/4 9:28:00
--  
求助
--  作者:chnfo
--  发布时间:2021/5/4 10:34:00
--  
Dim drs as new list(of data row)
--  作者:hbkongxin
--  发布时间:2021/5/4 12:25:00
--  
大佬,我试了还是会出现报错,我用的示例文件,自动流转一,在流程2的时候,刚登陆加载完是进度2A,我输入内容后进度变为2B,未保存,我又把输入的内容删除了,进度变为1B,这时再保存后就报错了
--  作者:有点蓝
--  发布时间:2021/5/5 11:46:00
--  
先移除再追加
DataTables("华晨生产计划").RemoveFor(Filter)
drs = DataTables("华晨生产计划").AppendLoad(Filter,False)

--  作者:hbkongxin
--  发布时间:2021/5/5 12:14:00
--  
Dim Filter As String
Dim bj As String
Dim drs As List(Of DataRow)
\'移除处理完毕的行
Select Case User.roles
    Case "录入员"
        Filter = "进度 = \'录入完成\'" 
    Case "调色员"
        Filter = "进度 = \'调色完成\' And 调色员 = \'" & User.Name & "\'" 
    Case "打印员"
        Filter = "进度 = \'打印完成\' And 打印机台 = \'" & User.Name & "\'" 
    Case Else
        Return \'其他用户正常返回
End Select
DataTables("华晨生产计划").RemoveFor(Filter)
\'追载待处理的行
Select Case User.roles
    Case "调色员"
        Filter = "进度 = \'录入完成\' And 调色员 = \'" & User.Name & "\'" 
        bj = "调色开始"
    Case "打印员"
        Filter = "进度 = \'调色完成\' And 打印机台 = \'" & User.Name & "\' And 米数 > 0 " 
        bj = "打印开始"
    Case Else
        Return \'其他用户正常返回
End Select
DataTables("华晨生产计划").RemoveFor(Filter)
drs = DataTables("华晨生产计划").AppendLoad(Filter,False)
\'为新追载的行设置流程开始标记
If drs.Count > 0 Then 
    For Each dr As DataRow In drs
        dr("进度") = bj
        dr.Save() \'一定要保存,以更新后台的流程进度标记
    Next
End If

--  作者:hbkongxin
--  发布时间:2021/5/5 12:15:00
--  
是这样吗,老师
--  作者:有点蓝
--  发布时间:2021/5/5 13:46:00
--  
是的