Foxtable(狐表)用户栏目专家坐堂 → [求助]表达式计算


  共有3281人关注过本帖树形打印复制链接

主题:[求助]表达式计算

帅哥哟,离线,有人找我吗?
建筑人生
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3422 威望:0 精华:0 注册:2014/8/20 20:14:00
[求助]表达式计算  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
建筑人生
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3422 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By:2014/9/9 21:58:00 [只看该作者]

谢谢,如果在计算公式增加[注释],要怎么写    比如:1+2*3+5[四楼],结果是 12,要如何写

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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, ""))


 回到顶部
帅哥哟,离线,有人找我吗?
建筑人生
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3422 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By:2014/9/9 22:15:00 [只看该作者]

你太牛了,谢谢,我慢慢琢磨

 回到顶部
帅哥哟,离线,有人找我吗?
建筑人生
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3422 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/9 23:02:00 [只看该作者]

 应该等于多少?你的方括号加入运算?等于 96 * (1+2+6) ?


 回到顶部
帅哥哟,离线,有人找我吗?
建筑人生
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3422 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By:2014/9/9 23:07:00 [只看该作者]

96啊

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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, ""))

 回到顶部
帅哥哟,离线,有人找我吗?
建筑人生
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3422 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By:2014/9/9 23:09:00 [只看该作者]

比如我再    计算公式_水平 输入1+2*3+9[1236kkkk],在小计=16才对,就是[ ]内所有东西都不参与计算

 回到顶部
总数 12 1 2 下一页