Foxtable(狐表)用户栏目专家坐堂 → 版本转换后不能用了


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

主题:版本转换后不能用了

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


加好友 发短信
等级:超级版主 帖子:106809 积分:543246 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/3 21:48:00 [显示全部帖子]

这个代码不应该会导致闪退。把项目里的bin目录完整删除干净,然后重启项目测试

代码可以优化一下

If Forms("新增客户订砖").opened
    Dim r2 As Row = Tables("客户订砖总表").Current
    For Each r As Row In Tables("商品明细表").GetCheckedRows
        Dim r1 As Row = Tables("客户订砖明细表").AddNew
        
        '客户订砖
        r1("日期") = r2("日期")
        r1("客户名称") = r2("客户名称")
        r1("订砖单号") = r2("订砖单号")
        r1("地址") = r2("地址")
        r1("电话") = r2("电话")
        r1("付款方式") = r2("付款方式")
        r1("商品编号") = r("商品编号")
        r1("商品类别") = r("商品类别")
        r1("商品名称") = r("商品名称")
        r1("规格型号") = r("规格型号")
        r1("单位") = r("单位")
        r1("单价") = r("单价")
    Next
End If
e.Form.close

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


加好友 发短信
等级:超级版主 帖子:106809 积分:543246 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/3 22:37:00 [显示全部帖子]

项目有许多不合理的代码用法。

1、客户定砖明细表DataColChanging,这种代码会引起死循环
If e.DataCol.Name = "客户名称" Then
    If e.NewValue IsNot Nothing Then
        DataTables("客户订砖明细表").ReplaceFor("客户名称",e.NewValue,"订砖单号 = '" & e.DataRow("订砖单号") & "'")
    End If
End If

不停的自己触发更新自己,应该改为
If e.DataCol.Name = "客户名称" Then
    If e.NewValue IsNot Nothing Then
        SystemReady = False
        DataTables("客户订砖明细表").ReplaceFor("客户名称",e.NewValue,"订砖单号 = '" & e.DataRow("订砖单号") & "'")
        SystemReady = true
    End If
End If

这个事件其它代码一样,自己改回来

2、不少明细表Datacolchanged这种代码非常不严谨

Tables("客户订砖总表").Current("应付金额") = DataTables("客户订砖明细表").Compute("sum(应付金额)","订砖单号 = '" & Tables("客户订砖总表").Current("订砖单号") & "'")
Tables("客户订砖总表").Current("实付金额") = DataTables("客户订砖明细表").Compute("sum(实付金额)","订砖单号 = '" & Tables("客户订砖总表").Current("订砖单号") & "'")


建议花时间好好看看【开发指南】

 回到顶部