以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  根据更改列进行计算  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=49905)

--  作者:Andyzdg
--  发布时间:2014/4/25 16:51:00
--  根据更改列进行计算
订单表:包含订单号,维保年限列
设备信息表:安装日期,过保日期,订单号列

要求当输入安装日期后,过保日期自动计算,公式为安装日期+(维保年限*365)

我在设备信息表的表属性内,DataColChanged事件中,

If e.DataCol.Name = "安装日期" Then 
    If e.DataRow.IsNull("安装日期") Then 
        e.DataRow("过保日期") = Nothing 
    Else
        
e.DataRow("过保日期") = e.DataRow("安装日期") +这里不会写了
    End If
End If

--  作者:有点甜
--  发布时间:2014/4/25 17:00:00
--  

这样改

 

 If e.DataCol.Name = "安装日期" Then
    If e.DataRow.IsNull("安装日期") Then
        e.DataRow("过保日期") = Nothing
    Else     
        Dim fdr As DataRow = DataTables("订单表").Find("订单号列 = \'" & e.DataRow("订单号") & "\'")
        If fdr IsNot Nothing Then
            e.DataRow("过保日期") = e.DataRow("安装日期") + fdr("维保年限列") * 365
        End If
    End If
End If

[此贴子已经被作者于2014-4-25 17:01:59编辑过]

--  作者:狐狸爸爸
--  发布时间:2014/4/25 17:05:00
--  

If e.DataCol.Name = "安装日期" Then
    If e.DataRow.IsNull("安装日期") Then
        e.DataRow("过保日期") = Nothing
    Else     
        Dim fdr As DataRow = DataTables("订单表").Find("订单号列 = \'" & e.DataRow("订单号") & "\'")
        If fdr IsNot Nothing Then

            e.DataRow("过保日期") = e.DataRow("安装日期").AddYears(fdr("维保年限列"))
        End If
    End If
End If

 

 

http://www.foxtable.com/help/topics/1424.htm

http://www.foxtable.com/help/topics/1337.htm

 

[此贴子已经被作者于2014-4-25 17:07:27编辑过]

--  作者:Andyzdg
--  发布时间:2014/4/28 21:06:00
--  
感谢二位,两个都可以实现,学习了。