以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]统计表筛选效率  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175017)

--  作者:lgj716330
--  发布时间:2022/2/16 12:07:00
--  [求助]统计表筛选效率
Dim b3 As New SQLGroupTableBuilder("工资", "工资统计表")
b3.C
b3.AddTable("工资统计表","店铺编号","档案","部门编号") 
b3.Groups.AddDef("开店日期",DateGroupEnum.Year,"开业年份")
b3.Groups.AddDef("开店日期",DateGroupEnum.Month,"开业月份")
b3.Groups.AddDef("关店日期",DateGroupEnum.Year,"闭店年份")
b3.Groups.AddDef("关店日期",DateGroupEnum.Month,"闭店月份")
b3.Groups.AddDef("年份")
b3.Groups.AddDef("月份") 
b3.Groups.AddDef("姓名") 
b3.Totals.AddDef("折算人数") 
b3.Totals.AddDef("应付工资") 
b3.Totals.AddExp("折算应付工资","case when 折算人数<=0 then 0 else 应付工资/折算人数 end")
b3.Filter = "(" & filter1 & ") and (年份 = \'" & n1 & "\' or 年份 = \'" & n2 & "\')"
b3.Build

For Each r As Row In Tables("工资").Rows
    Dim yf As Integer = CInt(r("闭店月份"))
    If yf>0 Then
        Tables("工资").Filter="(年份=开业年份 and 月份>开业月份) or (年份=闭店年份 and 月份<闭店月份) or (年份<闭店年份 and 年份>开业年份)"
    ElseIf yf=0 Then
        Tables("工资").Filter="(年份=开业年份 and 月份>开业月份) or 年份>开业年份"
    End If
Next

当没有标黄部分筛选条件的时候没有什么问题,但加了这个筛选条件后直接卡死了,怎么改可以提升打开速度。开店日期和关店日期属于档案表中的列
[此贴子已经被作者于2022/2/16 13:08:52编辑过]

--  作者:有点蓝
--  发布时间:2022/2/16 13:32:00
--  
为什么要遍历所有行?红色代码想实现什么功能?
--  作者:lgj716330
--  发布时间:2022/2/16 14:06:00
--  
哦,明白了