以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  版本转换后不能用了  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=116939)

--  作者:outcat
--  发布时间:2018/4/3 0:31:00
--  版本转换后不能用了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:砖厂.rar

老师,请帮忙看一下,我的这个系统,前两天由商业版转化为开发版了,转化回来后,我这里有 客户订砖、零售销砖、赊销销砖 这三个新增订单都不能正常的录入数据了,我看过了代码呢和原来商业版的代码一样,原来在商业版下,这几个功能能用的。回来还没有仔细看,不知道别的地方还有什么问题呀。真是头疼呀,请老师给看一下,怎么回事。这几个功能都在业务管理目录下

--  作者:xxfoxtable
--  发布时间:2018/4/3 8:20:00
--  

导入砖的代码应该分开吧,起码得做判断,不能都放一起

[此贴子已经被作者于2018/4/3 8:23:57编辑过]

--  作者:有点甜
--  发布时间:2018/4/3 8:48:00
--  

1、请说明具体测试步骤,你说的不能正常,是指什么?什么不正常?

 

2、尝试把bin文件夹删除,重新打开项目看看。


--  作者:outcat
--  发布时间:2018/4/3 21:31:00
--  

此主题相关图片如下:111.png
按此在新窗口浏览图片

导入代码

For Each r As Row In Tables("商品明细表").GetCheckedRows

If Forms("新增客户订砖").opened

    Dim r1 As Row = Tables("客户订砖明细表").AddNew

    Dim r2 As Row = Tables("客户订砖总表").Current

 

\'客户订砖

    r1("日期") = r2("日期")

    r1("客户名称") = r2("客户名称")

    r1("订砖单号") = r2("订砖单号")

    r1("地址") = r2("地址")

    r1("电话") = r2("电话")

    r1("付款方式") = r2("付款方式")

    r1("商品编号") = r("商品编号")

    r1("商品类别") = r("商品类别")

    r1("商品名称") = r("商品名称")

    r1("规格型号") = r("规格型号")

    r1("单位") = r("单位")

    r1("单价") = r("单价")

End If

    \'Dim rls1 As Row = Tables("零售销砖明细表").AddNew

    \'Dim rls2 As Row = Tables("零售销砖总表").Current

\'

    \'Dim rsx1 As Row = Tables("赊销销砖明细表").AddNew

    \'Dim rsx2 As Row = Tables("赊销销砖总表").Current

    \'\'客户订砖

    \'r1("日期") = r2("日期")

    \'r1("客户名称") = r2("客户名称")

    \'r1("订砖单号") = r2("订砖单号")

    \'r1("地址") = r2("地址")

    \'r1("电话") = r2("电话")

    \'r1("付款方式") = r2("付款方式")

    \'r1("商品编号") = r("商品编号")

    \'r1("商品类别") = r("商品类别")

    \'r1("商品名称") = r("商品名称")

    \'r1("规格型号") = r("规格型号")

    \'r1("单位") = r("单位")

    \'r1("单价") = r("单价")

    \'

    \'\'零售销砖

    \'rls1("日期") = rls2("日期")

    \'rls1("客户名称") = rls2("客户名称")

    \'rls1("地址") = rls2("地址")

    \'rls1("电话") = rls2("电话")

    \'rls1("零售单号") = rls2("零售单号")

    \'rls1("付款方式") = rls2("付款方式")

    \'rls1("商品编号") = r("商品编号")

    \'rls1("商品类别") = r("商品类别")

    \'rls1("商品名称") = r("商品名称")

    \'rls1("规格型号") = r("规格型号")

    \'rls1("单位") = r("单位")

    \'rls1("单价") = r("单价")

    \'

    \'\'赊销销砖

    \'rsx1("日期") = rsx2("日期")

    \'rsx1("客户名称") = rsx2("客户名称")

    \'rsx1("地址") = rsx2("地址")

    \'rsx1("电话") = rsx2("电话")

    \'rsx1("赊销单号") = rsx2("赊销单号")

    \'rsx1("商品编号") = r("商品编号")

    \'rsx1("商品类别") = r("商品类别")

    \'rsx1("商品名称") = r("商品名称")

    \'rsx1("规格型号") = r("规格型号")

    \'rsx1("单位") = r("单位")

    \'rsx1("单价") = r("单价")

Next

e.Form.close

导入砖商品代码,这个窗体我是三个录单界面都调用这个窗体,原来在商业版本下都没有没问题,商业版转换为开发版本后,在录单界面,选择了这个商品后,然后点“导入”按钮,程序就闪退了,不知道怎么回事,还有我这个要在在这个代码里加入判断,当打开不同的录单界面,调用不同的代码,这个不知道怎么定义窗体判断调用,请教了


--  作者:有点蓝
--  发布时间: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

--  作者:outcat
--  发布时间:2018/4/3 21:56:00
--  
老师,还是闪退,一点"导入"就退出程序了,我上面已经发过项目了,麻烦老师给看一下吧


--  作者:有点蓝
--  发布时间: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("订砖单号") & "\'")


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

--  作者:outcat
--  发布时间:2018/4/3 22:46:00
--  
哦,多谢老师了,原来是是这里的问题,是呀,后面我会好好看看 开发指南的