以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  疑惑 关于关联表统计列汇总的问题。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51259)

--  作者:悦颜
--  发布时间:2014/5/22 20:54:00
--  疑惑 关于关联表统计列汇总的问题。

关联表,子表是原先的历史数据,父表是新建表,父表和子表根据 [产品名称] 关联,父表的 [入库数量] 由子表根据相同[产品名称]的[入库数量]赋值。疑惑:父表的[入库数量]有的有值了,有的需要在子表新增一行后,值才跳上。求教。。。

Dim je As DataRow  = e.DataRow
Select Case e.DataCol.name
    Case "入库数量","出库数量","产品名称"
        Dim fdr As DataRow = je.GetParentRow("当前产品库存表")
        If fdr IsNot Nothing Then
            Dim su As Double = Tables("库存明细2013年").compute("Sum(入库数量)","[产品名称] = \'" & fdr ("产品名称") & "\'")
            Dim yf As Double = Tables("库存明细2013年").compute("Sum(出库数量)","[产品名称] = \'" & fdr ("产品名称") & "\'")
            fdr("总计入库数量KG") = su
            fdr("总计出库数量KG")=yf
            DataTables("当前产品库存表").DataCols("库存数量KG").RaiseDataColChanged(fdr)
            DataTables("当前产品库存表").DataCols("总计出库数量KG").RaiseDataColChanged(fdr)
            DataTables("当前产品库存表").DataCols("总计入库数量KG").RaiseDataColChanged(fdr)
           
        End If
End Select


--  作者:有点甜
--  发布时间:2014/5/22 21:02:00
--  

 

1、统计代码写到附表的datacolchanged,子表只需要写

 

Dim je As DataRow  = e.DataRow
Select Case e.DataCol.name
    Case "入库数量","出库数量","产品名称"
        Dim fdr As DataRow = je.GetParentRow("当前产品库存表")
        If fdr IsNot Nothing Then
            DataTables("当前产品库存表").DataCols("库存数量KG").RaiseDataColChanged(fdr)
            DataTables("当前产品库存表").DataCols("总计出库数量KG").RaiseDataColChanged(fdr)
            DataTables("当前产品库存表").DataCols("总计入库数量KG").RaiseDataColChanged(fdr)
        End If
End Select


 

2、只要父表的名称等于子表的名称,修改父表对应列、或者子表对应列的时候,自然会计算,不会存在你说的那种问题

[此贴子已经被作者于2014-5-22 21:02:06编辑过]

--  作者:悦颜
--  发布时间:2014/5/22 21:28:00
--  

多谢甜老师!图片点击可在新窗口打开查看  这个问题立马解决了。

 

还有一个问题,我还没有解题思路: 我如何根据这整张的出入库明细表,去建立月报表,根据产品名称统计含 期初库数、本月出库数、本月入库数。求支招


--  作者:有点甜
--  发布时间:2014/5/22 21:31:00
--  

 先看看分组统计是怎么做的。月报表,只需要设定日期是本月的日期即可。

 

http://www.foxtable.com/help/topics/0159.htm

 


--  作者:悦颜
--  发布时间:2014/5/22 21:41:00
--  

  图片点击可在新窗口打开查看  好的,谢谢,我去试试。。


--  作者:有点甜
--  发布时间:2014/5/22 21:50:00
--  

 发错了不好意思!!!

[此贴子已经被作者于2014-5-22 21:50:36编辑过]

--  作者:悦颜
--  发布时间:2014/5/22 22:05:00
--  

挺好的,但是我如何把这个日期写正确了。还有这个建立的表是不是临时表?它会逃掉的?虽然这个使用菜单栏能自动生成,但我还是希望我能把它做出来。

 

甜老师: 我如何把月的日期写正确了? g.Groups.AddDef("日期", "月")

还有,我用什么办法得到上期的期末库存数?不太想去复制上月的库存数,能有自动生成的方法吗?  不好意思,今天提问有点多。今天的最后一个问题,呵呵~~图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2014/5/22 22:10:00
--  

 你设置以后,是可以自动生成代码的。看这里 http://www.foxtable.com/help/topics/2670.htm

 

 那么,你就可以做一个窗口,输入开始日期、结束日期,或者月份数,在合成条件得到一个你要的报表了。

 

 虽然是临时表,但是生成是瞬间的,你也可以在项目启动的时候生成各个月的报表,只要把代码赋值进去即可。


--  作者:有点甜
--  发布时间:2014/5/22 22:11:00
--  

 先自己做一下吧,把窗口做好。

 

 做不好的话,再上传你的项目。


--  作者:悦颜
--  发布时间:2014/5/22 22:13:00
--  

好的,谢谢老师!图片点击可在新窗口打开查看