Dim bd1 As New SQLCrossTableBuilder("统计表1","销售明细")
Dim dt1 As fxDataSource
bd1.C
bd1.HGroups.AddDef("货号") '添加客户列用于水平分组
bd1.VGroups.AddDef("销售日期",DateGroupEnum.week,"{0}周销量") '添加日期列用于垂直分组,按月分组
bd1.Totals.AddDef("销售数量") '添加数量列用于统计
If Filter >"" Then
bd1.Filter = filter
End If
dt1 = bd1.BuildDataSource()
Dim bd2 As New SQLgroupTableBuilder("统计表2","销售明细")
Dim dt2 As fxDataSource
bd2.C
bd2.Groups.AddDef("货号") '添加客户列用于水平分组
bd2.Totals.AddDef("销售数量","累计销量") '添加数量列用于统计
bd2.Filter = filter
dt2 = bd2.BuildDataSource()
Dim bd3 As New SQLgroupTableBuilder("统计表3","截止库存")
Dim dt3 As fxDataSource
bd3.C
bd3.Groups.AddDef("货号") '添加客户列用于水平分组
bd3.Totals.AddDef("可用库存") '添加数量列用于统计
bd3.Filter = filter2
dt3 = bd3.BuildDataSource()
Dim nms1 As String() = {"货号"} '指定连接列
Dim nms2 As String() = {"货号"} '指定连接列
dt1.Combine(nms1,dt2,nms2) '将退货统计数据组合到进货统计数据
Dim nms3 As String() = {"货号"} '指定连接列
Dim nms4 As String() = {"货号"} '指定连接列
dt1.Combine(nms3,dt3,nms4) '将退货统计数据组合到进货统计数据
Tables(e.Form.Name & "_table1").DataSource = dt1
DataTables(e.Form.Name & "_table1").DataCols.Add("前两周平均销量",Gettype(Single))
DataTables(e.Form.Name & "_table1").DataCols.Add("可续销周数",Gettype(Single))
For Each dr As DataRow In DataTables(e.Form.Name & "_table1").DataRows
dr("前两周平均销量") = (dr("销售数量_1") + dr("销售数量_2")) / 2
If dr("前两周平均销量") <> 0 Then
dr("可续销周数") = dr("可用库存") / dr("前两周平均销量")
Else
dr("可续销周数") = dr("可用库存")
End If
Next
这是窗口统计表,要设一个 可续销周数 >2 的加载条件。
那这个 dr("可续销周数") 是统计后才计算出来的,不是在统计表里的条件。要怎么写这个代码呢?
[此贴子已经被作者于2016/7/16 22:20:11编辑过]