以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 当前表要修改成其它表要怎么写? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=158026) |
||||
-- 作者:hitzfeld -- 发布时间:2020/11/5 13:52:00 -- 当前表要修改成其它表要怎么写? 我想要实现的是,当前表的“审核”字段发生变化,则统计入库数量到采购表,但是红色部分改不好,一直报错。 ![]() If e.DataCol.Name = "审核" Then datatables(“采购单”).DataRow("已入库数量") = DataTables("入库明细").Compute("Sum(数量)","[产品名称] = \'" & e.NewValue & "\'") End If |
||||
-- 作者:有点蓝 -- 发布时间:2020/11/5 13:55:00 -- If e.DataCol.Name = "审核" Then dim dr as datarow = datatables(“采购单”).find("单号=\'" & e.datarow("单号") & "\'") if dr isnot nothing then dr("已入库数量") = e.DataTable.Compute("Sum(数量)","[产品名称] = \'" & e.NewValue & "\'") end if End If
|
||||
-- 作者:hitzfeld -- 发布时间:2020/11/5 13:57:00 -- 谢谢蓝老师! |
||||
-- 作者:hitzfeld -- 发布时间:2020/11/9 1:52:00 --
蓝老师,这个代码的事件仍然无法触发,麻烦您再指点下。
|
||||
-- 作者:有点蓝 -- 发布时间:2020/11/9 8:54:00 --
|
||||
-- 作者:hitzfeld -- 发布时间:2020/11/9 15:55:00 -- Select Case e.DataCol.Name Case "审核" ,"产品名称","入库数量","采购单号" Dim dr As DataRow = DataTables("采购明细").find("采购单号=\'" & e.DataRow("采购单号") & "\' and 产品名称=\'" & e.DataRow("产品名称") & "\'") If dr IsNot Nothing Then dr("已入库") = e.DataTable.Compute("Sum(入库数量)","采购单号=\'" & e.DataRow("采购单号") & "\' and [产品名称] = \'" & e.DataRow("产品名称") & "\' and 审核=\'已审核\'") End If End Select ======================================================== 谢谢蓝老师,没想到要这么复杂的代码! ![]() Select Case e.DataCol.Name Case "审核" ,"产品名称","入库数量","采购单号" 这句是指当"审核" "产品名称""入库数量""采购单号"四个字段都发送变化的时候才触发事件,还是只要有一个字段变化就触发事件?我把代码改为 Case "审核" 也能统计,应该是只要一个条件改变就能触发,那么为什么要增加后面三个字段呢?学生愚钝,请老师指点迷津下,谢谢! [此贴子已经被作者于2020/11/9 15:55:59编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/11/9 15:58:00 -- 只要有一个字段变化就触发事件。 如果审核后"产品名称","入库数量","采购单号"3个列不能再修改,可以不用加这3个判断
|
||||
-- 作者:hitzfeld -- 发布时间:2020/11/9 16:04:00 -- 谢谢老师!我明白您为什么要加这三个条件了! ![]() 还是您经验丰富呀!我都没考虑到“即使审核后也有可能发送数量变化和产品名称变化的可能性”!这个确实太重要了! 拜谢老师
![]() |