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


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

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

帅哥哟,离线,有人找我吗?
建筑人生
  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楼 | 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,要如何写

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
建筑人生
  4楼 | 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


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


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

96啊

 回到顶部
帅哥哟,离线,有人找我吗?
建筑人生
  6楼 | 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才对,就是[ ]内所有东西都不参与计算

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


加好友 发短信
等级:小狐 帖子:341 积分:3422 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By:2014/9/13 3:02:00 [显示全部帖子]

如果

Dim str As String = "96[1+2+**6]+88+99[123fdsg455]"


Dim reg As new System.Text.RegularExpressions.Regex("\[.*\]")


msgbox(reg.Replace(str, ""))

 

 

结过应该是 96+88+99=283要怎么写代码,就是说所有[***]的文字及数字都不参与计算

[此贴子已经被作者于2014-9-13 3:03:30编辑过]

 回到顶部