以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 重置问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=137562) |
-- 作者:huizhong -- 发布时间:2019/7/9 16:58:00 -- 重置问题 老师,请教一下,以下代码我单行测试没有问题,但是使用重置代码 DataTables("发票台账").DataCols("发票号码").RaiseDataColChanged() 后结果有问题出现计算错误,您给看看是什么情况 ElseIf e.DataCol.Name = "发票号码" Then If e.OldValue <> e.NewValue Then e.DataRow("发生时间") = Date.Now e.DataRow("经手人") = User.Name End If Dim r As Row = Tables("发票台账").Current If r("窗口属性") = "XK" Then Dim Filter As String = "[发票号码] = \'" & e.NewValue & "\' and [窗口属性] = \'XK\' " e.DataRow("虚开收款金额") = DataTables("财务收支台账").Compute("Sum(收款金额)", Filter) e.DataRow("虚开付款金额") = DataTables("财务收支台账").Compute("Sum(已付虚开)", Filter) Dim dr As DataRow dr= DataTables("财务收支台账").Find("[支付虚开发票号码] = \'" & e.NewValue & "\'") If dr IsNot Nothing Then \'如果找到了同名的发票号码行,也就是dr不是Nothing e.DataRow("支付虚开时间") = dr("财务处理日期") End If Else e.DataRow("虚开收款金额") = Nothing e.DataRow("虚开付款金额") = Nothing e.DataRow("支付虚开时间") = Nothing End If End If |
-- 作者:狐狸爸爸 -- 发布时间:2019/7/9 17:15:00 -- Dim r As Row = Tables("发票台账").Current 这种用法是不对的,事件中的所有代码都应该用e参数,否则你充值所有行,实际调用的还是当前行。 [此贴子已经被作者于2019/7/9 17:21:24编辑过]
|
-- 作者:huizhong -- 发布时间:2019/7/9 17:39:00 -- 谢谢老师 |