我执行下面的代码就死机是什么原因,是不是刷新问题,就像VBA一样要关闭刷新
Dim dr As DataRow=e.DataRow
Dim tmp As Single '单精度型
Dim reg As new System.Text.RegularExpressions.Regex("\[.*\]")
'tmp =eval(reg.replace(dr("计算公式_水平"),""),dr)+eval(reg.replace(dr("计算公式_垂直_开关"),""),dr)+eval(reg.replace(dr("计算公式_垂直_配电箱"),""),dr) '计算相加初始数值
Select Case e.DataCol.Name
Case "楼层_数量","构件_数量"
If dr.IsNull("楼层_数量") OrElse dr.IsNull("构件_数量") Then
dr("管道合计") = Nothing
dr("定额_电线规格1合计") = Nothing
dr("定额_电线规格2合计") = Nothing
dr("清单_电线规格1合计") = Nothing
dr("清单_电线规格2合计") = Nothing
End If
MessageBox.Show(1)
Case "规格型号"
dr = DataTables("常用数据").Find("规格型号 = '" & e.DataRow("规格型号") & "'" )
If dr IsNot Nothing '如果找到, 则设置各列内容
e.DataRow("规格型号")= dr("规格型号")
e.DataRow("电线_根数1")= dr("电线_根数1")
e.DataRow("电线_规格1")= dr("电线_规格1")
e.DataRow("电线_根数2")= dr("电线_根数2")
e.DataRow("电线_规格2")= dr("电线_规格2")
e.DataRow("管道规格")= dr("管道规格")
End If
MessageBox.Show(2)
Case "电线_根数1","电线_规格1"
If dr.IsNull("电线_规格1") OrElse dr.IsNull("电线_根数1") Then
dr("定额_电线规格1合计") = Nothing
dr("清单_电线规格1合计") = Nothing
End If
Case "电线_根数2","电线_规格2"
If dr.IsNull("电线_规格2") OrElse dr.IsNull("电线_根数2") Then
dr("定额_电线规格2合计") = Nothing
dr("清单_电线规格2合计") = Nothing
End If
MessageBox.Show(3)
Case "计算公式_水平","计算公式_垂直_开关","计算公式_垂直_配电箱"
dr("计算公式_小计") =eval(reg.replace(dr("计算公式_水平"),""),dr)+eval(reg.replace(dr("计算公式_垂直_开关"),""),dr)+eval(reg.replace(dr("计算公式_垂直_配电箱"),""),dr) '计算相加初始数值
MessageBox.Show(4)
Case "特性"
If dr("特性")="线" Or dr("特性")= "线槽" Then
dr("管道合计") = Nothing
Else
If dr("特性")="管" Then
tmp =eval(reg.replace(dr("计算公式_水平"),""),dr)+eval(reg.replace(dr("计算公式_垂直_开关"),""),dr)+eval(reg.replace(dr("计算公式_垂直_配电箱"),""),dr)
dr("管道合计") =tmp*dr("构件_数量")*dr("楼层_数量")
dr("定额_电线规格1合计") = Nothing
dr("定额_电线规格2合计") = Nothing
dr("清单_电线规格1合计") = Nothing
dr("清单_电线规格2合计") = Nothing
End If
End If
MessageBox.Show(5)
'计算结果程序
tmp = dr("计算公式_小计") 'eval(reg.replace(dr("计算公式_水平"),""),dr)+eval(reg.replace(dr("计算公式_垂直_开关"),""),dr)+eval(reg.replace(dr("计算公式_垂直_配电箱"),""),dr)
MessageBox.Show(6)
dr("管道合计") =tmp*dr("构件_数量")*dr("楼层_数量")
dr("定额_电线规格1合计") =(tmp+dr("电线预留长度"))*dr("电线_根数1")*dr("构件_数量")*dr("楼层_数量")
dr("定额_电线规格2合计") =(tmp+dr("电线预留长度"))*dr("电线_根数2")*dr("构件_数量")*dr("楼层_数量")
dr("清单_电线规格1合计") =tmp*dr("电线_根数1")*dr("构件_数量")*dr("楼层_数量")
dr("清单_电线规格2合计") =tmp*dr("电线_根数2")*dr("构件_数量")*dr("楼层_数量")
MessageBox.Show(7)
End Select
[此贴子已经被作者于2014-9-11 10:52:02编辑过]