以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]统计问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=93393)

--  作者:鲁吉
--  发布时间:2016/11/27 15:52:00
--  [求助]统计问题
Dim sd As WinForm.DateTimePicker
Dim ed As WinForm.DateTimePicker
sd = e.Form.Controls("DateTimePicker1")
ed = e.Form.Controls("DateTimePicker2")
Dim cpbh As String = e.Form.Controls("产品编号").Value
If cpbh = "" Then
DataTables("入库记录").LoadFilter=" [入库日期] >= #" & sd.Value & "#  and [入库日期] <= #" & ed.Value & "#"
DataTables("入库记录").Load
DataTables("销售数据").LoadFilter=" [销售日期] >= #" & sd.Value & "#  and [销售日期] <= #" & ed.Value & "#"
DataTables("销售数据").Load
DataTables("借货记录").LoadFilter=" [借货日期] >= #" & sd.Value & "#  and [借货日期] <= #" & ed.Value & "#"
DataTables("借货记录").Load
DataTables("还货记录").LoadFilter=" [还货日期] >= #" & sd.Value & "#  and [还货日期] <= #" & ed.Value & "#"
DataTables("还货记录").Load
Else
DataTables("入库记录").LoadFilter=" [入库日期] >= #" & sd.Value & "#  and [入库日期] <= #" & ed.Value & "# and [产品编号] like \'%" & cpbh & "%\' "
DataTables("入库记录").Load
DataTables("销售数据").LoadFilter=" [销售日期] >= #" & sd.Value & "#  and [销售日期] <= #" & ed.Value & "# and [产品编号] like \'%" & cpbh & "%\' "
DataTables("销售数据").Load
DataTables("借货记录").LoadFilter=" [借货日期] >= #" & sd.Value & "#  and [借货日期] <= #" & ed.Value & "# and [产品编号] like \'%" & cpbh & "%\' "
DataTables("借货记录").Load
DataTables("还货记录").LoadFilter=" [还货日期] >= #" & sd.Value & "#  and [还货日期] <= #" & ed.Value & "# and [产品编号] like \'%" & cpbh & "%\' "
DataTables("还货记录").Load
End If
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("入库记录"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("产品编号") \'根据型号分组
bd1.Groups.AddDef("产品名称")
bd1.Totals.AddDef("入库数量","进货_数量") \'对数量进行统计
bd1.Totals.AddDef("总金额","进货_金额") \'对金额进行统计
dt1 = bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("销售数据"))
Dim dt2  As fxDataSource
bd2.Groups.AddDef("产品编号") \'根据型号分组
bd2.Groups.AddDef("产品名称")
bd2.Totals.AddDef("数量","销售_数量") \'对数量进行统计
bd2.Totals.AddDef("应收金额","销售_金额") \'对金额进行统计
dt2 = bd2.BuildDataSource()

Dim bd3 As New GroupTableBuilder("统计表3",DataTables("借货记录"))
Dim dt3 As fxDataSource
bd3.Groups.AddDef("产品编号") \'根据型号分组
bd3.Groups.AddDef("产品名称")
bd3.Totals.AddDef("借出数量","借货_数量") \'对数量进行统计
bd3.Totals.AddDef("小计","借货_押金") \'对金额进行统计
dt3 = bd3.BuildDataSource()

Dim bd4 As New GroupTableBuilder("统计表4",DataTables("还货记录"))
Dim dt4 As fxDataSource
bd4.Groups.AddDef("产品编号") \'根据型号分组
bd4.Groups.AddDef("产品名称")
bd4.Totals.AddDef("归还数量","还货_数量") \'对数量进行统计
bd4.Totals.AddDef("返还押金","还货_返还押金") \'对金额进行统计
dt4 = bd4.BuildDataSource()

Dim nms As String() = {"产品编号","产品名称"}
dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统计数据
dt1.Combine(nms,dt3,nms)
dt1.Combine(nms,dt4,nms)
Tables("数据汇总_Table1").DataSource = dt1 \'将统计结果绑定到Table
With DataTables("数据汇总_Table1").DataCols  \'用表达式列计算库存数据
    .Add("库存_剩余数量",Gettype(Integer), "IsNull([进货_数量],0) - ISNULL([销售_数量],0) - ISNULL([借货_数量],0) + ISNULL([还货_数量],0)")
    .Add("库存_收入金额",Gettype(Integer), "ISNULL([销售_金额],0) - ISNULL([借货_押金],0) + ISNULL([还货_返还押金],0)")
End With
Tables("数据汇总_Table1").AutoSizeCols()
Dim rkSum As Integer = DataTables("入库记录").Compute("Sum(入库数量)")
Dim xsSum As Integer = DataTables("销售数据").Compute("Sum(数量)")
Dim jhSum As Integer = DataTables("借货记录").Compute("Sum(借出数量)")
Dim hhSum As Integer = DataTables("还货记录").Compute("Sum(归还数量)")
e.Form.Controls("Label2").Text = rkSum
e.Form.Controls("Label4").Text = xsSum
e.Form.Controls("Label6").Text = jhSum
e.Form.Controls("Label8").Text = hhSum
这是“汇总数据”按钮的事件代码,红色部分是统计入库情况,在第一次填写入库数据时,总金额(应是进货金额)是对的,但再次增加入库时,总金额却按销售价格计算,请高手帮看下哪里有问题
[此贴子已经被作者于2016/11/27 16:54:59编辑过]

--  作者:鲁吉
--  发布时间:2016/11/27 16:01:00
--  
这是项目及数据库,实在改不明白了。开发者密码123
[此贴子已经被作者于2016/12/2 13:00:31编辑过]

--  作者:鲁吉
--  发布时间:2016/11/27 16:08:00
--  
怎么传不上来附件啊?


--  作者:鲁吉
--  发布时间:2016/11/27 16:10:00
--  
111111111111111
[此贴子已经被作者于2016/12/2 12:56:00编辑过]

--  作者:鲁吉
--  发布时间:2016/11/27 19:54:00
--  
别沉啊,还没弄好呢!
--  作者:有点色
--  发布时间:2016/11/27 20:14:00
--  
 贴出开发者密码。
--  作者:鲁吉
--  发布时间:2016/11/27 20:15:00
--  
开发者密码123
--  作者:有点色
--  发布时间:2016/11/27 20:28:00
--  

 数据都没有,怎么查?要怎么操作?


--  作者:鲁吉
--  发布时间:2016/11/27 20:49:00
--  

任意作进货入库,第一次,进行统计,进货总金额=进货单价*数量(正确)

然后第二次再进货入库,进行统计,进货总金额=之前进货金额+(销售单价*第二次进货数量)   (是不是错了?)


--  作者:有点色
--  发布时间:2016/11/28 8:46:00
--  
 你单独测试红色那段代码,直接build一个表看数据。红色代码仅仅是进货的合计,不可能有销售单价什么事。