以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  根据统计表后动态增加的列 的值 设置 加载条件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87682)

--  作者: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编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/7/18 8:37:00
--  
最后再加一行代码,删除不符合条件的行:
 DataTables(e.Form.Name & "_table1").Removefor(“可续销周数 <= 2”)