以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]我的表事件代码应该怎样写才对呢? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=54238) |
-- 作者:rophy0952 -- 发布时间:2014/7/24 10:54:00 -- [求助]我的表事件代码应该怎样写才对呢? 请教一个关于多行数值变化的数据引用,表事件的设置应该是怎样设呢?即:蒸镀派工表引用的是窗口的蒸镀派工表的数据,当蒸镀派工表的派工件数发生变化的时候,生产主表中的"蒸镀已派工件数"随着发生变化,同时"蒸镀未派工件数"也发生变化. 我在蒸镀派工表的表事件datacolchanged中写入的代码为: Dim dr As DataRow = e.DataRow dr = DataTables("生产主表").find("生产单号 = \'" & Tables("蒸镀派工表").Current("生产单号") & "\'") Select Case e.DataCol.Name Case "派工件数" dr("蒸镀已派工件数") = DataTables("蒸镀派工表").Compute("sum(派工件数)","生产单号 = \'" & Tables("蒸镀派工表").Current("生产单号") & "\'") End Select 在生产主表的表事件datacolchanged中写入的代码为: If e.DataCol.Name = "蒸镀已派工件数" Then Dim r As Row = Tables("生产主表").Current r("蒸镀未派工件数") = r("件数") - r("蒸镀已派工件数") End If \'--------------------------------------- If e.DataCol.Name = "蒸镀未派工件数" Then Dim r As Row = Tables("生产主表").Current If r("蒸镀未派工件数") = 0 Then r("蒸镀已派工") = True Else r("蒸镀已派工") = False End If End If 如果同时引用两条以上数据的时候,生产主表中的蒸镀已派工件数,只变化一行,其它行不变,详见图例,请问该如何修改代码?谢谢
|
-- 作者:Bin -- 发布时间:2014/7/24 10:58:00 -- find 改为select |
-- 作者:有点甜 -- 发布时间:2014/7/24 11:01:00 -- 改一下
在蒸镀派工表的表事件datacolchanged中写入的代码为: Select Case e.DataCol.Name
|
-- 作者:rophy0952 -- 发布时间:2014/7/24 11:18:00 -- 可以了, e.datarow("蒸镀未派工件数") = e.DataRow("件数") - e.DataRow("蒸镀已派工件数"),这样写对吧? |
-- 作者:rophy0952 -- 发布时间:2014/7/24 11:18:00 -- 谢谢! |