以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教:交叉统计, (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77895) |
||||
-- 作者:yancheng -- 发布时间:2015/11/27 12:24:00 -- 请教:交叉统计, Dim bd1 As New SQLCrossTableBuilder("统计表1","采购进货") Dim bd2 As New SQLCrossTableBuilder("统计表2","销售明细") Dim nms As String() = {"定额编码"} \'指定连接列 Tables("库存数量表_Table1").DataSource = dt1 \'将统计结果绑定到Table .Add("库存_数量",Gettype(Integer), "IsNull([进货_数量],0) - ISNULL([销售_数量],0)")
目标问题: 1、弹出说:找不到:进货_数量,进货金额:列? 2、同一个工程,的进货与销售,不在同一个列组里面?(我需要的结构是:同一:合同名称,下的:进货、销售、库存。合同名称_进货\\销售\\库存_数量\\金额; 3、行里面,需要除了显示:定额编码外,还需要显示:材料名称,型号等信息。 [此贴子已经被作者于2015/11/27 12:28:57编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2015/11/27 12:33:00 -- 上传项目测试。 |
||||
-- 作者:yancheng -- 发布时间:2015/11/27 13:00:00 --
[此贴子已经被作者于2015/11/27 21:20:16编辑过]
|
||||
-- 作者:yancheng -- 发布时间:2015/11/27 13:06:00 -- 已上传实例 |
||||
-- 作者:yancheng -- 发布时间:2015/11/27 14:32:00 -- 已上传实例,麻烦老师了。 |
||||
-- 作者:大红袍 -- 发布时间:2015/11/27 15:46:00 --
|
||||
-- 作者:yancheng -- 发布时间:2015/11/27 16:21:00 -- 老师,我放把代码放进去了。大概是这个意思,但还有两个问题:(现在没有:库存数量) 1、库存,我是需要,每个合同都要看库存?(每个合同,就是一个:仓库) 2、库存数量=进货数量-销售数量。 此主题相关图片如下:77.jpg [此贴子已经被作者于2015/11/27 16:22:51编辑过]
|
||||
-- 作者:yancheng -- 发布时间:2015/11/27 16:44:00 -- Dim sql As String = "sele ct a.定额编码 as 定额编码, 合同名称, a.数量 as 数量, 合计, 类型, b.* from (selec t 定额编码, 合同名称, 进货数量 as 数量, 进货合计 as 合计, \'进货\' as 类型 from {采购进货} union all se lect 定额编码, 合同名称, 销售数量, 销售合计, \'销售\' from {销售明细}) as a left join {材料} as b on a.定额编码 = b.定额编码" 看不懂。 |
||||
-- 作者:大红袍 -- 发布时间:2015/11/27 17:28:00 -- mark 交叉统计
|
||||
-- 作者:yancheng -- 发布时间:2015/11/29 19:26:00 -- Dim sql As String = "sele ct a.定额编码 as 定额编码, 合同名称, a.数量 as 数量, 合计, 类型, b.* from (sel ect 定额编码, 合同名称, 进货数量 as 数量, 进货合计 as 合计, \'进货\' as 类型 from {采购进货} union all s elect 定额编码, 合同名称, 销售数量, 销售合计, \'销售\' from {销售明细} union all sel ect 定额编码, 合同名称, 0, 0, \'进货\' from {销售明细} union all sele ct 定额编码, 合同名称, 0, 0, \'销售\' from {采购进货}) as a left join {材料} as b on a.定额编码 = b.定额编码" Dim g As New CrossTableBuilder("统计表1",sql, "服务器") g.HGroups.AddDef("定额编码") g.HGroups.AddDef("材料名称") g.HGroups.AddDef("单位") g.VGroups.AddDef("合同名称") g.VGroups.AddDef("类型") g.Totals.AddDef("数量","数量") \'对数量进行统计 g.Totals.AddDef("合计","金额") \'对金额进行统计 Tables("库存数量表_Table1").DataSource = g.BuildDataSource Dim t As Table = Tables("库存数量表_Table1") Dim pht As String = "" For i As Integer = t.Cols.Count - 1 To 0 Step -1 If t.Cols(i).caption Like "*_销售_*" OrElse t.Cols(i).caption Like "*_进货_*" Then Dim ht As String = t.Cols(i).caption.Split("_")(0) If pht = Nothing OrElse ht <> pht Then t.DataTable.DataCols.Add(ht & "_库存_数量",Gettype(Integer), "isnull(" & t.cols(i-3).name & ",0) - isnull(" & t.Cols(i-1).name & ",0)") t.DataTable.DataCols.Add(ht & "_库存_金额",Gettype(Double), "isnull(" & t.cols(i-2).name & ",0) - isnull(" & t.Cols(i).name & ",0)") t.Cols(ht & "_库存_金额").Move(i+1) t.Cols(ht & "_库存_数量").Move(i+1) pht = ht End If End If Next 上面代码看不懂:请教一下老师: 1、sele ct a.定额编码 as 定额编码 ;这个:a. 是什么意思? 2、union all sel ect 定额编码, 合同名称, 0, 0, ;这个0, 0, 是什么意思? 3、Dim g As New CrossTableBuilder("统计表1",sql, "服务器") 这个sql是怎么意思?
[此贴子已经被作者于2015/11/29 19:28:04编辑过]
|