Foxtable(狐表)用户栏目专家坐堂 → 如何利用列名进行自定义表达式计算


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

主题:如何利用列名进行自定义表达式计算

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


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

 控件不能直接绑定列【费用汇总.费用计算式

 

 如果要赋值,请在窗口关闭的时候给表列赋值。


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


加好友 发短信
等级:五尾狐 帖子:810 积分:7727 威望:0 精华:0 注册:2014/7/4 20:32:00
  发帖心情 Post By:2017/9/26 19:07:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:五尾狐 帖子:810 积分:7727 威望:0 精华:0 注册:2014/7/4 20:32:00
  发帖心情 Post By:2017/9/26 19:08:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:五尾狐 帖子:810 积分:7727 威望:0 精华:0 注册:2014/7/4 20:32:00
  发帖心情 Post By:2017/9/26 19:10:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/26 20:49:00 [只看该作者]

改下公式的规则,序号使用大括号括起来,列名使用中括号括起来,这样就方便处理了

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据列名计算式(1).table



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


加好友 发短信
等级:五尾狐 帖子:810 积分:7727 威望:0 精华:0 注册:2014/7/4 20:32:00
  发帖心情 Post By:2017/9/26 23:20:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/26 23:28:00 [只看该作者]

方法一样。看懂15楼代码。

只是不同的序号列都有相同的内容,就不知道要到哪个列去查数据。要想办法区分

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


加好友 发短信
等级:五尾狐 帖子:810 积分:7727 威望:0 精华:0 注册:2014/7/4 20:32:00
  发帖心情 Post By:2017/9/27 0:25:00 [只看该作者]

用户已被锁定

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


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

If e.DataRow.IsNull("费用计算式") = False Then
    Dim str As String = e.DataRow("费用计算式")
    Dim dr As DataRow
    Dim pattern As String = "{.+?}"
    Dim rgx = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    For Each  match As System.Text.RegularExpressions.Match In rgx.Matches(str)
        dr = e.DataTable.Find("序号='" & match.Value.trim("{","}") & "'")
        If dr IsNot Nothing Then
            str = str.replace(match.Value, dr("金额"))
        End If
    Next
    pattern = "\[.+?\]"
    rgx = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    For Each  match As System.Text.RegularExpressions.Match In rgx.Matches(str)
        str = str.replace(match.Value, e.DataRow(match.Value.trim("[","]")))
    Next
    If TryEval(str, e.DataRow) Then
        e.DataRow("金额") = Eval2(str,e.DataRow)
    Else
        msgbox("公式错误")
    End If
End If

[此贴子已经被作者于2017/9/28 15:38:42编辑过]

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


加好友 发短信
等级:五尾狐 帖子:810 积分:7727 威望:0 精华:0 注册:2014/7/4 20:32:00
  发帖心情 Post By:2017/9/27 11:15:00 [只看该作者]

用户已被锁定

 回到顶部
总数 31 上一页 1 2 3 4 下一页