以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求个跨表引用和统计的实现方法! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55386) |
||||
-- 作者:coolbhb -- 发布时间:2014/8/15 15:33:00 -- 求个跨表引用和统计的实现方法! 有两个表,年度应收和年度实收,年度应收里有个实收的数据列,这个列想自动在年度实收表统计出符合年度应收里对应年度的所有缴费金额。 我现在的方法是在年度应收和年度实收通过客户编号和运行年度2列建立关联,然后再年度应收表里的实收列用列表达式统计子表数据的。但是我又觉得这个方法不好,但是通过编码实现还不知从何下手。请指教
[此贴子已经被作者于2014-8-15 15:35:42编辑过]
|
||||
-- 作者:Bin -- 发布时间:2014/8/15 15:36:00 -- 利用Computehttp://www.foxtable.com/help/topics/0393.htm 搞不定请上例子
|
||||
-- 作者:coolbhb -- 发布时间:2014/8/19 10:12:00 -- 还是下不去手,代码写点删点,觉得很简单的东西就是整不出来,可能还是不扎实,但是吧帮助翻便了都没找到好办法,像下面的这个例子,获取父表对应的行,但是父表还有很多行,到底怎么弄呢。 Select
Case e.DataCol.Name Case "产品编号" If e.NewValue Is Nothing Then e.DataRow("单价") = Nothing Else Dim pr As DataRow = e.DataRow.GetParentRow("产品") If pr IsNot Nothing Then e.DataRow("单价") = pr("单价") If e.OldValue <> e.NewValue Then \'如果新旧产品编号不同 DataTables("产品").DataCols("产品编号").RaiseDataColChanged(pr) \'重算新产品的销售数量和金额 End If End If End If If e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then \'如果原产品编号不为空,且和新产品编号不同. pr = DataTables("产品").Find("[产品编号] = " & e.OldValue) If pr IsNot Nothing Then DataTables("产品").DataCols("产品编号").RaiseDataColChanged(pr) \'重算原产品的销售数量和金额 End If End If Case "数量","折扣","已付款","单价" If e.OldValue <> e.NewValue Then Dim pr As DataRow = e.DataRow.GetParentRow("产品") If pr IsNot Nothing Then DataTables("产品").DataCols("产品编号").RaiseDataColChanged(pr) End If End If End Select |
||||
-- 作者:Bin -- 发布时间:2014/8/19 10:16:00 -- 父表怎么可能有很多行呢,父表只允许有一行的. 搞不定就上例子,描述清楚具体需求吧
|
||||
-- 作者:coolbhb -- 发布时间:2014/8/19 10:36:00 -- 应收表的实收=实收表中符合表A客户编号和相应年度 的金额总和,例子
|
||||
-- 作者:有点甜 -- 发布时间:2014/8/19 10:53:00 --
|