以下是在订单模块中统计产品欠货的代码,需要加载产成品仓的模块-产品明细。我不想加载产品明细的表,如何调用后台统计的数据呢?
'生成产品欠货统计表
Dim dta As New DataTableBuilder("产品欠货统计")
dta.AddDef("产品代码", Gettype(String), 32)
dta.AddDef("产品", Gettype(String), 32)
dta.AddDef("颜色", Gettype(String), 32)
dta.AddDef("订单数量", Gettype(Integer))
dta.AddDef("发货数量", Gettype(Integer))
dta.AddDef("欠货数量", Gettype(Integer))
dta.Build()
'填充数据
Dim b As New Filler
b.SourceTable = DataTables("销售订单明细")
b.SourceCols = "产品代码,产品,颜色"
b.DataTable = DataTables("产品欠货统计")
b.DataCols = "产品代码,产品,颜色"
b.ExcludeExistValue = True
b.Fill()
b = New Filler
b.SourceTable = DataTables("产品明细")
b.SourceCols = "产品代码,产品,颜色"
b.DataTable = DataTables("产品欠货统计")
b.DataCols = "产品代码,产品,颜色"
b.ExcludeExistValue = True
b.Fill()
'产品欠货统计
For Each dra As DataRow In DataTables("产品欠货统计").DataRows
dra("订单数量") = DataTables("销售订单明细").Compute("Sum(订单数量)"," [产品代码] = '" & dra("产品代码") & "' and [颜色] = '" & dra("颜色") & "'")
dra("发货数量") = DataTables("产品明细").Compute("Sum(出仓数量)"," [产品代码] = '" & dra("产品代码") & "' and [颜色] = '" & dra("颜色") & "'")
dra("欠货数量") = dra("订单数量") - dra("发货数量")
Next
Forms("销售订单统计").Controls("统计表").Table.DataSource = DataTables("产品欠货统计")
Forms("销售订单统计").Controls("统计表").Table.AutoSizeCols() '设置自动列宽
'删除数值为空的记录
Tables("销售订单统计_统计表").DataTable.DeleteFor("[欠货数量] = 0" )
Tables("销售订单统计_统计表").DataTable.SysStyles("EmptyArea").BackColor = Color.WhiteSmoke '表空白区的背景设置为灰色
Tables("销售订单统计_统计表").Sort = "产品代码,颜色"
Tables("销售订单统计_统计表").Appearance.ShowSortIcon = False
Tables("销售订单统计_统计表").Refresh
'自动列宽
Tables("销售订单统计_统计表").AutoSizeCols()
用sql直接用数据库取不就行了
select 产品代码,产品,颜色, 0 as 订单数量,0 as 发货数量, 0 as 欠货数量 from 销售订单明细
union all
select 产品代码,产品,颜色, 0 as 订单数量,0 as 发货数量, 0 as 欠货数量 from 产品明细
sql,去掉换行,自己用到sqlcommand:
Select *,订单数量 - 发货数量 As 欠货数量 from (
Select 产品代码,产品,颜色,sum(订单数量) As 订单数量,0 As 发货数量 from 销售订单明细 group by 产品代码,产品,颜色
union all
Select 产品代码,产品,颜色,0 As 订单数量,sum(发货数量) As 发货数量 from 产品明细 group by 产品代码,产品,颜色) As a where 订单数量 - 发货数量 <> 0
dim dt as datatable = sqlcommand返回的表
Forms("销售订单统计").Controls("统计表").Table.DataSource = dt
Forms("销售订单统计").Controls("统计表").Table.AutoSizeCols() '设置自动列宽
'删除数值为空的记录
Tables("销售订单统计_统计表").DataTable.SysStyles("EmptyArea").BackColor = Color.WhiteSmoke '表空白区的背景设置为灰色
Tables("销售订单统计_统计表").Sort = "产品代码,颜色"
Tables("销售订单统计_统计表").Appearance.ShowSortIcon = False
Tables("销售订单统计_统计表").Refresh
'自动列宽
Tables("销售订单统计_统计表").AutoSizeCols()
1楼是加载产品明细表后可以正常运行的代码,数据库名WgCableERP
此主题相关图片如下:snap1.jpg
4楼的代码一时搞不定,能帮我完善取代1楼的代码吗?或改进1楼的代码.我就是不想加载产品明细表