以文本方式查看主题 - 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一个表看数据。红色代码仅仅是进货的合计,不可能有销售单价什么事。 |