以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗口副表中增加临时列并进行跨表表达式计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=125972)

--  作者:ZJZK2018
--  发布时间:2018/10/10 23:47:00
--  窗口副表中增加临时列并进行跨表表达式计算
如题
下面代码出错:

Dim cmb7 As WinForm.ComboBox = e.Form.Controls("ComboBox7")
Dim tb As Table = Tables(e.Form.Name & "_Table1")
For Each dr As Row In tb.Rows
    Dim fdr As DataRow = DataTables("招标信息").Find("系统编号 = \'" & dr("系统编号") & "\'")
    If cmb7.Value = "风险控制价" Then
        tb.DataTable.DataCols.Add("下浮率_风险控制价",Gettype(Double),"IIF(fdr.IsNull("风险控制价"),Nothing,(dr("投标报价") - fdr("风险控制价")) / fdr("风险控制价")")
    Else
        If tb.DataTable.DataCols.Contains("下浮率_风险控制价") Then
            tb.DataTable.DataCols.Delete("下浮率_风险控制价")
        End If
    End If
Next

错误提示:

图片点击可在新窗口打开查看此主题相关图片如下:22222222256.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2018/10/11 8:45:00
--  

Dim cmb7 As WinForm.ComboBox = e.Form.Controls("ComboBox7")
Dim tb As Table = Tables(e.Form.Name & "_Table1")
tb.DataTable.DataCols.Add("下浮率_风险控制价",Gettype(Double))
For Each dr As Row In tb.Rows
    Dim fdr As DataRow = DataTables("招标信息").Find("系统编号 = \'" & dr("系统编号") & "\'")
    If cmb7.Value = "风险控制价" Then
        dr("下浮率_风险控制价") = IIF(fdr.IsNull("风险控制价"),Nothing,(dr("投标报价") - fdr("风险控制价")) / fdr("风险控制价"))
    End If
Next