以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这种错误怎么查?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120859)

--  作者:yetle
--  发布时间:2018/6/25 11:13:00
--  这种错误怎么查?

\' Tables("报价单").Current.Clone()

\' Tables("报价明细").save
\' Dim idx As String

\' Tables("报价单").Current("订单编号") =Tables("报价单").Current("订单编号") & "*"
If usna Like "业务*" Or usna="admin" Or usna="研发-祝炫丽" Then

Dim r As Row = Tables("报价单").Current
Dim dnew As Row = Tables("报价单").AddNew
\'Dim name As String = r("订单编号") & "*"
Dim name As String = r("报价编号ID") & "*"
For Each c As Col In Tables("报价单").Cols
 If c.Name <> "研发管理费" And c.Name <> "后勤管理费" And c.Name <> "制造费"   Then

\'    If c.Name = "订单编号" Then
    If c.Name = "报价编号ID" Then
        dnew(c.Name) = name
    ElseIf c.Name <> "_Identify" Then
        dnew(c.Name) = r(c.Name)
    End If
 End If 
Next
Tables("报价单").Current("财务审核") = Nothing
Tables("报价单").Current("总经理审批") = Nothing




Dim drs As List(Of DataRow)
drs = r.DataRow.GetChildRows("报价明细")
Dim rc As DataRow
For Each dr As DataRow In drs
    rc = dr.Clone
\'     rc("订单编号") = name
    rc("报价编号ID") = name
Next


Else
    MessageBox.show("你无此操作权限!")
End If

执行上面按钮代码后产生错误:
无法将值“正无穷大”转换为类型: System.Decimal。

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

[此贴子已经被作者于2018/6/25 11:36:58编辑过]

--  作者:有点甜
--  发布时间:2018/6/25 11:42:00
--  

应该是触发了下面的代码,看看你datacolchanged、currentChanged是否写了什么代码。

 

DataTables("报价单").LoadFilter = "xxxx"

DataTables("报价单").Load


--  作者:yetle
--  发布时间:2018/6/25 12:02:00
--  DataColChanged代码
If e.DataCol.Name = "订单编号" Then \'如果内容发生变动的是品名列
    If e.NewValue IsNot Nothing Then \'如果新值是空白,也就是品名列的内容为空
\'          e.DataRow("系列") = Nothing \'那么清空此行单价列的内容
\'          e.DataRow("款号") = Nothing 
\'      Else
        Dim dr As DataRow
        \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("报价申请").Find("[订单编号] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("系列") = dr("业务部_系列") 
            e.DataRow("款号") = dr("业务部_款号") 
            e.DataRow("客户名称") = dr("业务部_客户")
            e.DataRow("业务跟单") = dr("业务部_业务跟单")
            e.DataRow("类别") = dr("业务部_类别") 
            e.DataRow("款图") = dr("研发部_款图") 
            e.DataRow("研发部报价审核状态") = dr("研发部_报价审核状态")
        End If
    End If
End If


currentChanged无代码
[此贴子已经被作者于2018/6/25 12:02:39编辑过]

--  作者:有点甜
--  发布时间:2018/6/25 12:05:00
--  

加入msgbox,定位出错位置

 

http://www.foxtable.com/webhelp/scr/1485.htm

 


--  作者:yetle
--  发布时间:2018/6/25 12:33:00
--  
这个错误之前都没有的,不知道今天怎么跑出来了。
我把DataColChanged代码全部注释掉这个错误依然有,只要一点按钮就会产生
只有在数据库里将通过按钮代码新增的行删除掉,这个错误才会取消。
[此贴子已经被作者于2018/6/25 12:37:49编辑过]

--  作者:有点甜
--  发布时间:2018/6/25 12:37:00
--  
以下是引用yetle在2018/6/25 12:33:00的发言:
这个错误之前都没有的,不知道今天怎么跑出来了

 

请确定是什么代码导致的错误。你单独在命令窗口执行1楼代码也报错?


--  作者:yetle
--  发布时间:2018/6/25 12:47:00
--  
单独在命令窗口执行没错
--  作者:有点甜
--  发布时间:2018/6/25 15:01:00
--  
以下是引用yetle在2018/6/25 12:47:00的发言:
单独在命令窗口执行没错

 

说明不是那段代码的问题,看看你触发了什么代码导致的错误。如果在窗口触发导致的,看窗口全局事件是不是写了代码。