以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  代码错误,请帮忙看看  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106351)

--  作者:zhangning
--  发布时间:2017/9/7 10:41:00
--  代码错误,请帮忙看看
老师,我在“加工排产”表的datacolchanged 里面写了以下代码:
If e.DataRow("安排") = "安排加工"  Then
    If e.DataRow("类别") = "计划"  Then
        If e.DataCol.name Like "*序_工程名*" OrElse e.DataCol.name Like "*序_调度设备*" Then
            Dim idx As Integer = e.DataCol.name.replace("第", "").replace("序_工程名", "").replace("序_调度设备", "")
            If e.DataRow.IsNull("第" & idx & "序_工程名") = False AndAlso e.DataRow.IsNull("第" & idx & "序_调度设备") = False Then
                Dim dr6 As DataRow
                dr6 = DataTables("设备别任务").Find("开始日期 = \'" & e.DataRow("第" & idx & "序_开始日") & "\' And 工程 = \'" & e.DataRow("第" & idx & "序_工程名") & "\' AND 指令 单 = \'" & e.DataRow("指令单") & "\'")
                If dr6 Is Nothing Then
                    dr6 = DataTables("设备别任务").AddNew()
                    dr6("开始日期") = e.DataRow("第" & idx & "序_开始日")
                    dr6("设备") = e.DataRow("第" & idx & "序_调度设备")
                    dr6("指令单") = e.DataRow("指令单")
                    dr6("部品ID") = e.DataRow("部品ID")
                    dr6("部组名") = e.DataRow("部组名")
                    dr6("工程") = e.DataRow("第" & idx & "序_工程名")
                    dr6("结束日期") = e.DataRow("第" & idx & "序_结束日")
                    dr6("投入数量") = e.DataRow("第" & idx & "序_投入数量")
                    dr6("作业者") = e.DataRow("第" & idx & "序_作业者")
                    dr6("加工先") = e.DataRow("第" & idx & "序_加工先")
                    dr6("配膳日") = e.DataRow("第" & idx & "序_配膳日")
                    dr6("良品率") = e.DataRow("第" & idx & "序_良品率")
                    dr6("段") = e.DataRow("第" & idx & "序_段")
                    dr6("装") = e.DataRow("第" & idx & "序_装")
                    dr6("机") = e.DataRow("第" & idx & "序_机")
                    dr6("标准耗时天") = e.DataRow("第" & idx & "序_标准耗时天")
                    dr6("夜") = e.DataRow("第" & idx & "序_夜")
                    dr6("瓶颈") = e.DataRow("第" & idx & "序_瓶颈")
                    dr6("指令单变化") = e.DataRow("分类")
                End If
            End If
        End If
        Tables("设备别任务").Sort = "设备,指令单,开始日期"
    End If
End If




如“安排”列的内容显示为“安排加工”时,出现异常信息:

图片点击可在新窗口打开查看此主题相关图片如下:44.png
图片点击可在新窗口打开查看


看不出错在哪里,请老师帮看看,谢谢!


--  作者:zhangning
--  发布时间:2017/9/7 10:42:00
--  
如将“安排加工”全部消除的话,就不会出现异常


--  作者:有点甜
--  发布时间:2017/9/7 10:44:00
--  

AND 指令 单 = \'" & e.DataRow("指令单") & "\'")

 

改成

 

AND 指令单 = \'" & e.DataRow("指令单") & "\'")


--  作者:zhangning
--  发布时间:2017/9/7 11:03:00
--  
老师,我改了以下代码后
dr6 = DataTables("设备别任务").Find("开始日期 = \'" & e.DataRow("第" & idx & "序_开始日") & "\' And 工程 = \'" & e.DataRow("第" & idx & "序_工程名") & "\' And 指令单 = \'" & e.DataRow("指令单") & "\'")

上述异常消失,出现新的异常:

图片点击可在新窗口打开查看此主题相关图片如下:55.png
图片点击可在新窗口打开查看



--  作者:zhangning
--  发布时间:2017/9/7 11:06:00
--  
老师,我将 第1日负荷  列由整数改为字符,后异常消失了,
请问老师,为什么会出现这种现象呢?


--  作者:有点甜
--  发布时间:2017/9/7 11:18:00
--  

你表达式列有问题,或者你其它代码有问题。

 

把表达式列的公式删掉看看。

 

如果是代码,加入msgbox定位错误 http://www.foxtable.com/webhelp/scr/1485.htm