以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助]表达式计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56614)
|
-- 作者:建筑人生
-- 发布时间:2014/9/9 21:46:00
-- [求助]表达式计算
管道小计=水平段+开关+配电箱
Dim dr As DataRow
Select Case e.DataCol.Name Case "计算公式_水平","计算公式_垂直_开关","计算公式_垂直_配电箱"
dr("管道_小计") =eval(dr("计算公式_水平"),dr)+eval(dr("计算公式_垂直_开关"),dr)+eval(dr("计算公式_垂直_配电箱"),dr)
End Select
提示错误 此主题相关图片如下:01.jpg
[此贴子已经被作者于2014-9-11 14:29:02编辑过]
|
-- 作者:有点甜
-- 发布时间:2014/9/9 21:50:00
--
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name Case "计算公式_水平","计算公式_垂直_开关","计算公式_垂直_配电箱" dr("管道_小计") =eval(dr("计算公式_水平"))+eval(dr("计算公式_垂直_开关"))+eval(dr("计算公式_垂直_配电箱")) End Select
|
-- 作者:建筑人生
-- 发布时间:2014/9/9 21:58:00
--
谢谢,如果在计算公式增加[注释],要怎么写 比如:1+2*3+5[四楼],结果是 12,要如何写
|
-- 作者:有点甜
-- 发布时间:2014/9/9 22:10:00
--
参考代码
Dim str As String = "1+2*3+5[四楼]" Dim reg As new System.Text.RegularExpressions.Regex("[^0-9+\\-*/]") msgbox(reg.Replace(str, ""))
|
-- 作者:建筑人生
-- 发布时间:2014/9/9 22:15:00
--
你太牛了,谢谢,我慢慢琢磨
|
-- 作者:建筑人生
-- 发布时间:2014/9/9 22:59:00
--
Dim dr As DataRow=e.DataRow
Dim reg As new System.Text.RegularExpressions.Regex("[^0-9+\\-*/]")
Select Case e.DataCol.Name Case "计算公式_水平","计算公式_垂直_开关","计算公式_垂直_配电箱"
dr("管道_小计") =val(reg.replace(dr("计算公式_水平"),""))
End Select
我这样写怎么还是不对,奇怪 我输入 96[1+2+**6] 会等于961
|
-- 作者:有点甜
-- 发布时间:2014/9/9 23:02:00
--
应该等于多少?你的方括号加入运算?等于 96 * (1+2+6) ?
|
-- 作者:建筑人生
-- 发布时间:2014/9/9 23:07:00
--
96啊
|
-- 作者:有点甜
-- 发布时间:2014/9/9 23:08:00
--
Dim str As String = "96[1+2+**6]" Dim reg As new System.Text.RegularExpressions.Regex("\\[.*\\]") msgbox(reg.Replace(str, ""))
|
-- 作者:建筑人生
-- 发布时间:2014/9/9 23:09:00
--
比如我再 计算公式_水平 输入1+2*3+9[1236kkkk],在小计=16才对,就是[ ]内所有东西都不参与计算
|