以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请咨询下:  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50424)

--  作者:youngk
--  发布时间:2014/5/6 17:07:00
--  请咨询下:
我见了一个项目,但是在想里面粘贴东西的时候,经常项目自动关闭是怎么回事了,粘贴进去的东西也没有了。请大神解释下,谢谢~~~
--  作者:Bin
--  发布时间:2014/5/6 17:14:00
--  
往哪里黏贴东西自动关闭? 单元格?  是否DataColChanged写了死循环代码?
--  作者:有点甜
--  发布时间:2014/5/6 17:16:00
--  

 看是否这个错误

 

http://www.foxtable.com/help/topics/1522.htm

 


--  作者:youngk
--  发布时间:2014/5/7 6:48:00
--  
Select Case e.DataCol.name
    Case "进出库日期","进出库分类","计费截止日期","优惠天数","堆存天数","计费天数","吨位","费率","堆存费累计"
        Dim dt As DataTable = DataTables ("堆存费计算表")
        Dim mr As DataRow = e.DataRow
        Dim d1 As Date = mr("计费截止日期")
        Dim d0 As Date = mr("进出库日期")
        Dim u As Decimal = mr("吨位")
        Dim t As TimeSpan = d1-d0
        Dim m As Integer = t.Totaldays
        Dim f As Decimal = mr("费率")
        Dim n As Integer = mr("优惠天数")
        Dim dr As DataRow
        dr = dt.Find("[_SortKey] < " & mr("_SortKey") & "", "[_SortKey] Desc")
        If dr Is Nothing Then
            messagebox.show("请输入最近一次计费情况!","提示")
        End If
        If dr IsNot Nothing Then
            If mr("进出库分类") = "转存"  Then
                mr("堆存天数")= m
                mr("扣减天数")= 0
                mr("计费天数")= mr("堆存天数")
                mr("应计费用")=mr("计费天数")*mr("吨位")*mr("费率")
                mr("堆存费累计")= dr("堆存费累计")+mr("应计费用")
            End If
            If mr("进出库分类") = "进库"  Then
                If mr("堆存天数") >= mr("优惠天数") Then
                mr("堆存天数")= m
                mr("扣减天数")= 0
                mr("计费天数")= mr("堆存天数")-mr("优惠天数")
                mr("应计费用")=mr("计费天数")*mr("吨位")*mr("费率")
                mr("堆存费累计")= dr("堆存费累计")+mr("应计费用")
                End If
                If mr("堆存天数") < mr("优惠天数") Then
                mr("堆存天数")= 0
                mr("扣减天数")= 0
                mr("计费天数")= 0
                mr("应计费用")=mr("计费天数")*mr("吨位")*mr("费率")
                mr("堆存费累计")= dr("堆存费累计")+mr("应计费用")
                End If
           End If

--  作者:youngk
--  发布时间:2014/5/7 6:49:00
--  

请狐神帮我看看这个代码有什么问题~~~谢谢!


--  作者:狐狸爸爸
--  发布时间:2014/5/7 8:23:00
--  

你这个代码很可能会导致死循环,你这样判断列名,将所有列加进去,等于没有判断。

例如堆存天数变化,执行上面的代码,代码中又计算堆存天数,很容易死循环。

 

你不要问代码有什么问题,写好代码,上传文件,直接告诉大家你在什么事件写了代码,目的是什么,遇到了什么问题。

[此贴子已经被作者于2014-5-7 8:24:43编辑过]

--  作者:有点甜
--  发布时间:2014/5/7 9:16:00
--  

 简单的做法:你在代码前面和结尾加上事件的暂停代码。

 

http://www.foxtable.com/help/topics/2218.htm

 


--  作者:youngk
--  发布时间:2014/5/7 9:30:00
--  
写在datachanged中,问题是粘贴一些数据进出就自动关闭项目了。
--  作者:有点甜
--  发布时间:2014/5/7 9:43:00
--  
 看7楼,自己改一下。
--  作者:youngk
--  发布时间:2014/5/7 9:56:00
--  
谢谢~~~问题解决了,真是太佩服你们了~~什么问题都知道症结所在图片点击可在新窗口打开查看