Foxtable(狐表)用户栏目专家坐堂 → [求助]调用函数并筛选结果不符合


  共有46人关注过本帖树形打印复制链接

主题:[求助]调用函数并筛选结果不符合

帅哥哟,离线,有人找我吗?
lgj716330
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1412 积分:10946 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]调用函数并筛选结果不符合  发帖心情 Post By:2025/3/10 12:14:00 [只看该作者]

首先有个总表,如下
1、定义总表的筛选条件,函数名FilterNY5
Dim e = Args(0)
Dim N1 As Integer = e.Form.Controls("NF1").value
Dim n2 As Integer = N1 - 1
Dim n3 As Integer = N1 - 2
Dim Y1 As Integer = e.Form.Controls("YF1").value
Dim Y2 As Integer = e.Form.Controls("YF2").value
Dim FilterNY5 As String = "年份=" & n2 & " OR 年份=" & n3 & " OR (年份=" & n1 & " and 月份>=" & y1 & " and 月份<=" & y2 & ")"
Return FilterNY5
2、汇总表,函数名为”零售汇总“
Dim e = Args(0)
Dim FilterNY5 As String = Functions.Execute("FilterNY5", e)
Dim b As New SQLJoinTableBuilder("零售汇总", "核算汇总表")
b.C
b.AddCols("{核算汇总表}.*")
b.Filter = "" & FilterNY5 & " and 实销金额<>0"
b.Build()

上述查询没有问题
然后对总表进行筛选
1、筛选条件函数,函数名为”跨年时间筛选bq“
Dim e = Args(0)
Dim N1 As Integer = e.Form.Controls("NF1").value
Dim N2 As Integer = e.Form.Controls("NF2").value
Dim Y1 As Integer = e.Form.Controls("YF1").value
Dim Y2 As Integer = e.Form.Controls("YF2").value
Dim FilterKNY As String
If N2 > N1 Then
    FilterKNY = "(年份=" & N1 & " and 月份 >= " & Y1 & ") or (年份=" & N2 & " and 月份 <= " & Y2 & ")"
ElseIf N2 = N1 Then
    FilterKNY = "(年份=" & N1 & " and 月份 >= " & Y1 & " and 月份 <= " & Y2 & ")"
End If
Return FilterKNY

2、筛选统计下如
Dim FilterKNY As String
Functions.Execute("零售汇总", e)
Functions.Execute("跨年时间筛选bq", e)
msgbox(FilterKNY)
Tables("零售汇总").Filter = FilterKNY

MainTable = Tables("零售汇总")

首先这里的msgbox(FilterKNY)显示是空值,然后筛选结果出来了FilterKNY范围内及以前年份的数据,比如筛选2024年3-5月,会出来24年3-5月及24年之前的数据,24年5月之后的数据有限制住了。不知哪里问题

[此贴子已经被作者于2025/3/10 12:31:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112701 积分:573844 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/3/10 13:39:00 [只看该作者]

Dim FilterNY5 As String = Functions.Execute("FilterNY5", e)

 回到顶部