以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  【求助】订单表和产品表的单价同步  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=52667)

--  作者:shanmao
--  发布时间:2014/6/20 8:57:00
--  【求助】订单表和产品表的单价同步
订单和产品两个表中都有单价这一列,而且两者是对应相同的。当产品表中的单价发生变动的时候,订单表的单价也跟随着变动,让单价始终保持最新值。怎么设置?
--  作者:Bin
--  发布时间:2014/6/20 8:58:00
--  
参考帮助http://www.foxtable.com/help/topics/1453.htm
--  作者:shanmao
--  发布时间:2014/6/20 9:19:00
--  
如果表是窗口中的表呢?
--  作者:Bin
--  发布时间:2014/6/20 9:20:00
--  
同样道理.DataColChanged事件副本表 或者普通表会继承  SQLTABLE  会有单独的表事件
--  作者:shanmao
--  发布时间:2014/6/20 9:37:00
--  
我的窗口中的表是SQLTable型的,里面的品名这一列是追加的。在DataTable("订单")里是没有的,只有单价这一列。也就是说在窗口Table("订单_Table1")里的品名列是根据单价来显示,从产品表中抓取。
--  作者:Bin
--  发布时间:2014/6/20 9:39:00
--  
没有品名,怎么知道那个单价是谁的?
--  作者:有点甜
--  发布时间:2014/6/20 9:39:00
--  
回复5楼,追加进去的列,是临时列,是不能保存的啊。
--  作者:shanmao
--  发布时间:2014/6/20 9:39:00
--  
产品表窗口中的datacolchanged事件中的代码:
If e.DataCol.Name = "单价"
    
Dim Filter As String = "[品名] = \'" & e.DataRow("品名") & "\'"
    
Dim drs As List(Of DataRow) = DataTables("订单_Table1").Select(Filter)
    
For Each dr As DataRow In drs
        
dr("单价") = e.DataRow("单价")
    Next

End
 
If
--  作者:有点甜
--  发布时间:2014/6/20 9:41:00
--  
 如果是sqlTable,你就在sqlTable的表事件那里填写代码。
--  作者:shanmao
--  发布时间:2014/6/20 9:42:00
--  
回复7楼,对,是的。就是打开窗口的时候能够看到品名和单价,但是在datatable就只有单价。我现在遇到的就是这样的难题。