以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  部分代码不执行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=124221)

--  作者:wuchangke4
--  发布时间:2018/9/2 16:02:00
--  部分代码不执行
Select Case e.DataCol.name 
    Case "Lwg12","Lwg18","Lwg20","Lwg22","Lwg25","Lwg28","Lwg32"  \',"lwg16"
      Dim sksumlwg As Double = 0
      Dim n1() As String = {"Lwg12","Lwg18","Lwg20","Lwg22","Lwg25","Lwg28","Lwg32"}
      For Each n As String In n1
        If e.DataTable.DataCols.contains(n)
          sksumlwg = sksumlwg + e.DataRow(n)
        End If
      Next
      e.DataRow("Sjlwg") = sksumlwg
    Case "Gyg12","Gyg10","Gyg8","Gyg6"
      Dim sksumgyg As Double = 0
      Dim n2() As String = {"Gyg12","Gyg10","Gyg8","Gyg6"}
      For Each n As String In n2
        If e.DataTable.DataCols.contains(n)
          sksumgyg = sksumgyg + e.DataRow(n)
        End If
      Next
    e.DataRow("Sjgyg") = sksumgyg
  End Select
If e.DataCol.name = "Jianglwg" Then
   e.DataRow("jianglwg") = e.DataRow("Lwg32") + e.DataRow("lwg28") + e.DataRow("Lwg25") - e.DataRow("LwgN4")
   e.DataRow("jianggyg") = e.DataRow("Gyg10") - e.DataRow("GygN7")
   e.DataRow("jiangj") = e.DataRow("jianglwg") + e.DataRow("jianggyg")
End If
Select Case e.DataCol.name 
  Case "Skzd"  
    If e.DataRow("Beizu") <> "重复冲桩" Then
      e.DataRow("Zjfl") = 3.14 * e.DataRow("zhuangchang") * e.DataRow("zhuangjing")/2 * e.DataRow("zhuangjing")/2
    End If
Case "Zhuangjing"  从这里开始代码不执行,求助
   If e.DataRow("Zhuangjing") = 1.6 Then
      e.DataRow("Zjflqe") = e.DataRow("Zjfl") * 230  
   Else If e.DataRow("Zhuangjing") = 2.2 Then
     e.DataRow("Zjflqe") = e.DataRow("zjfl") * 197.4
   End If
End Select

--  作者:有点甜
--  发布时间:2018/9/2 16:11:00
--  

1、具体说明你的问题,什么代码没有执行?你执行什么操作以后,对应要执行什么代码?

 

2、你可以在代码里面加入msgbox弹出值,看是否执行到了对应的代码。


--  作者:wuchangke4
--  发布时间:2018/9/2 16:13:00
--  
Case "Zhuangjing"  从这里开始代码不执行,求助
   If e.DataRow("Zhuangjing") = 1.6 Then
      e.DataRow("Zjflqe") = e.DataRow("Zjfl") * 230  
   Else If e.DataRow("Zhuangjing") = 2.2 Then
     e.DataRow("Zjflqe") = e.DataRow("zjfl") * 197.4
   End If
End Select

--  作者:有点甜
--  发布时间:2018/9/2 16:14:00
--  
你修改了列【Zhuangjing】的值,才会执行的。
--  作者:wuchangke4
--  发布时间:2018/9/2 16:21:00
--  
我重置列也不会执行呢
--  作者:wuchangke4
--  发布时间:2018/9/2 16:25:00
--  
【Zhuangjing】桩径有1.6米、1.8米、2.2米,我要求1.6米的单价为230元,2.2米的为179.4元,但代码不执行,急死了
--  作者:wuchangke4
--  发布时间:2018/9/2 16:53:00
--  
现在要求列【zhuangjing】的值为1.6米时,对应的列[zjflqe]=列【zjfl】* 230
能用if e.datarow("zhuangjing") = 1.6 then
        e.datarow("zjflqe") = e.datarow("zjflqe") * 230
     end if 
代码有问题吗?

--  作者:wuchangke4
--  发布时间:2018/9/2 17:22:00
--  
我知道了,不能作【Zhuangjing】= 1.6 而只能是 【zhuangjing】> 1.5 and [zhuangjing] < 1.7
--  作者:有点甜
--  发布时间:2018/9/2 20:03:00
--  
以下是引用wuchangke4在2018/9/2 17:22:00的发言:
我知道了,不能作【Zhuangjing】= 1.6 而只能是 【zhuangjing】> 1.5 and [zhuangjing] < 1.7

 

应该是精度问题,看看

 

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

 

你可以把这个列改成高精度小数。