-- 作者:fubblyc
-- 发布时间:2016/7/16 22:18:00
-- 根据统计表后动态增加的列 的值 设置 加载条件
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编辑过]
|