以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]跨表代码实现计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=146921) |
||||
-- 作者:ntqhj -- 发布时间:2020/3/6 0:22:00 -- [求助]跨表代码实现计算 代码实现跨表计算:
|
||||
-- 作者:ntqhj -- 发布时间:2020/3/6 11:09:00 -- 老师好!有关跨表计算目前实在搞不定,老师帮我下。感谢! |
||||
-- 作者:有点蓝 -- 发布时间:2020/3/6 11:15:00 -- 承运人表datacolchanged Select Case e.DataCol.Name Case "装车件数" If e.DataRow.IsNull("装车件数") Then e.DataRow("装车重量") = Nothing Else Dim dr As DataRow = DataTables("接单明细表").find("内部编号=\'" & e.DataRow("内部编号") & "\'") If dr Is Nothing OrElse dr("件数") = 0 Then e.DataRow("装车重量") = Nothing Else e.DataRow("装车重量") = dr("货物重量") / dr("件数") * e.DataRow("装车件数") End If End If End Select |
||||
-- 作者:ntqhj -- 发布时间:2020/3/6 12:50:00 -- 非常感谢老师!另:件数、货物重量、装车件数的值任意修改,装车重量随之计算,如何实现?目前我改动件数、货物重量,装车重量不计算,还是原来的重量。 |
||||
-- 作者:有点蓝 -- 发布时间:2020/3/6 15:30:00 -- 参考:http://www.foxtable.com/webhelp/topics/1472.htm,到父表写代码,类似这种用法 Select Case e.DataCol.Name
Case "数量","单价","折扣" Dim pr As DataRow pr = DataTables("统计").Find("产品 = \'" & e.DataRow("产品") & "\'") If pr IsNot Nothing Then DataTables("统计").DataCols("产品").RaiseDataColChanged(pr) End If End Select |
||||
-- 作者:ntqhj -- 发布时间:2020/3/6 17:54:00 -- 谢谢老师! |
||||
-- 作者:ntqhj -- 发布时间:2020/3/8 17:30:00 -- 老师好!按帮助做了,没做好。
父表的货物重量修改后,子表的装车重量只能自动更新第一行数据,将鼠标选在子表装车件数任一单元格,点重置按钮可以实现更新。想实现:父表货物重量列或件数列有改变,子表装车重量列全部自动重置?请老师老师帮忙实现。感谢! |
||||
-- 作者:有点蓝 -- 发布时间:2020/3/8 22:54:00 -- 帮助只是针对一行记录的,子表有多行数据,改为这样 Select Case e.DataCol.Name Case "装车件数","货物重量" DataTables("承运人明细表").DataCols("装车件数").RaiseDataColChanged("内部编号 = \'" & e.DataRow("内部编号") & "\'") End Select |