以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  提示异常未知编译错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193283)

--  作者:nuoyan89
--  发布时间:2024/8/31 23:25:00
--  提示异常未知编译错误
老师,我加上如图上圈起来的代码后提示“未知编译错误”,不加这个代码没有问题,全部代码如附件

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码.txt



--  作者:有点蓝
--  发布时间:2024/9/1 20:08:00
--  
首先,注意项目文件所在的路径,以及项目名称不要有括号,空格等特殊字符,否则无法显示详细的错误提示,只能显示未知编译错误。

其次,代码里定义的变量都有使用范围。在case 1里定义的变量,到case 2是无法使用的,case 2没有定义barcode这个变量。

然后,2个【cmd1.CommandText =】代码挨着放到一起,第2句赋值后会替代第1句赋值的内容,所以第1句没有任何作用

--  作者:nuoyan89
--  发布时间:2024/9/1 22:28:00
--  

老师,才接触这个JS语句的写法,cmd1.CommandText  这个做的是全局变量。可教下怎么改吗?如图1,圈起来的地方没有起作用,也不报错。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码.txt



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




--  作者:有点蓝
--  发布时间:2024/9/1 22:49:00
--  
说明这个编码返回的数量值是0
--  作者:nuoyan89
--  发布时间:2024/9/1 23:09:00
--  
不是的,求和的数量是 2,这个情况他应该提示有不良记录的,但是实际却没提示
--  作者:有点蓝
--  发布时间:2024/9/2 8:37:00
--  
学会调试



If e.GetValues.ContainsKey("type") Then
msgbox(e.GetValues("type"))
    Select Case CInt(e.GetValues("type"))
        Case 1
            Dim barcode As String = e.GetValues("code")
            Dim smlx As String = e.GetValues("smlx")
            Dim jggx As String = e.GetValues("jggx")
            msgbox(barcode )
            cmd1.CommandText = "Select sum(待转数量) From 过程异常明细 Where 毛坯编码 = \'" & barcode & "\'"
dim k as integer = cmd1.ExecuteScalar 
            msgbox("第一次=" & k)
            If k > 0 Then
                code = 1
                msg = "请解封不良记录"
                
                cmd1.CommandText = "Select Count(*) From 工序跟踪表 Where 毛坯编码 = \'" & barcode & "\' And 加工工序 = \'" & jggx & "\' And 扫码类型 = \'" & smlx & "\'"
k = cmd1.ExecuteScalar 
            msgbox("第2次=" & k)
                If k > 0 Then
                    code = 1
                    msg = "请勿重复扫码"
                    ……

--  作者:nuoyan89
--  发布时间:2024/9/2 9:57:00
--  
已处理好,换了一种方式,谢谢
--  作者:nuoyan89
--  发布时间:2024/10/12 23:04:00
--  
老师,红色代码不能按条件统计结果,调试之后显示的结果为0,但是我的过程异常明细表中是有数据的。
Dim cmd1 As New S QLCommand
Dim cmd2 As New S QLCommand       
Dim barcode As String = e.GetValues("code")     
cmd2.CommandText = "S elect Count(*) From 过程异常明细 Where 毛坯编码 = \'" & barcode & "\' And (返修结果  Like \'%废%\' or 返修结果  Like \'%转自用%\' Or 返修结果 Is Null)"
            cmd1.CommandText = "S elect Count(*) From 工序跟踪表 Where 毛坯编码 = \'" & barcode & "\' And 加工工序 = \'" & jggx & "\' And 扫码类型 = \'" & smlx & "\'"
            If cmd1.ExecuteScalar > 0 Or cmd2.ExecuteScalar > 0 Then
                code = 1
                msg = "检查重码和不良"
End If

--  作者:有点蓝
--  发布时间:2024/10/13 19:40:00
--  
说明没有符合条件的数据。有数据和有符合条件的数据是两码事
--  作者:nuoyan89
--  发布时间:2024/10/14 7:52:00
--  
有,如图

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