以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助,修改数据时的,修改前,修改后数据调用问题。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171430)

--  作者:夜点蚊香
--  发布时间:2021/8/30 10:10:00
--  求助,修改数据时的,修改前,修改后数据调用问题。
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2021.5.12.1
错误所在事件:表,课程缴费表,BeforeSaveDataRow
详细错误信息:
调用的目标发生了异常。
未找到类型“Integer”的公共成员“OriginalValue”。

\'判断当前行是修改行,如果是修改行 修改功能
If Tables("课程缴费表").Current.DataRow.RowState = DataRowState.Modified Then
    Dim pr As DataRow
    pr = DataTables("学员管理_学员信息表").Find("学号 = \'" & e.DataRow("学号") & "\'")
    If pr IsNot Nothing Then
        pr("最近缴费日期") = e.DataRow("缴费日期")
        pr("充值课时") = pr("充值课时") - e.DataRow("实际课时").OriginalValue + e.DataRow("实际课时")
    End If
    pr.Save
End If

--  作者:有点蓝
--  发布时间:2021/8/30 10:16:00
--  

学会看帮助


1、http://www.foxtable.com/webhelp/topics/0628.htm

BeforeSaveDataRow

在保存某一数据行之前执行,可以在此对数据进行最终的验证。

e参数属性:
 
DataTable: 返回正在保存的数据表。
DataRow:   返回正在保存的数据行。
Cancel:   逻辑型,设为True,取消正在进行的保存。


If e.DataRow.RowState = DataRowState.Modified Then
    Dim pr As DataRow
……

 pr("充值课时") = pr("充值课时") - e.DataRow.OriginalValue("实际课时") + e.DataRow("实际课时")