Foxtable(狐表)用户栏目专家坐堂 → 代码出错了


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

主题:代码出错了

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


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

用户已被锁定

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


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

用户已被锁定

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


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

看代码没应该没错。

 

1、加入msgbox定位出错位置 http://www.foxtable.com/webhelp/scr/1485.htm

 

2、不会做发实例上来。


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


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

用户已被锁定

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


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

用户已被锁定

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


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

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "费用计算式","费率","金额","专业编号"
        If e.DataRow.IsNull("费用计算式") = False Then
            Dim str As String = e.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)
                Dim fdr = e.DataTable.Find("序号 = '" & match.Value.trim("{","}") & "'" & iif(dr.IsNull("专业编号"), ""," And 专业编号 = '" & dr("专业编号") & "'"))
                If fdr IsNot Nothing Then
                    str = str.replace(match.Value, fdr("金额"))
                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
        Dim flt1 As String = "清单类别 = '分部分项' And 项目编码 <> ''" & iif(dr.IsNull("专业编号"), ""," And 专业编号 = '" & dr("专业编号") & "'")
        Dim flt2 As String = " 清单类别 = '技术措施' And 项目编码 <> ''" & iif(dr.IsNull("专业编号"), ""," And 专业编号 = '" & dr("专业编号") & "'")
        If dr("费用名称") = "工程量清单分部分项工程费" Then
            dr("金额") = DataTables("合同清单").Compute("Sum(合价)",flt1)
        ElseIf dr("费用名称") = "施工技术措施项目费" Then
            dr("金额") = DataTables("合同清单").Compute("Sum(合价)",flt2)
        ElseIf dr("费用名称") = "分部分项(人工费+机械费)" Then
            dr("金额") = DataTables("合同清单").Compute("Sum(其中_人工费)",flt1) + DataTables("合同清单").Compute("Sum(其中_机械费)",flt1)
        ElseIf dr("费用名称") = "技措项目(人工费+机械费)" Then
            dr("金额") = DataTables("合同清单").Compute("Sum(其中_人工费)",flt2) + DataTables("合同清单").Compute("Sum(其中_机械费)",flt2)
        End If
End Select

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


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

你新增行的时候,不要触发datacolchanged事件,因为没必要计算。

 

http://www.foxtable.com/webhelp/scr/2218.htm

 


 回到顶部