以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]汇总模式  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86447)

--  作者:江南小城
--  发布时间:2016/6/17 14:53:00
--  [求助]汇总模式
老师,下面代码是狐表软件自带的内部函数,我要修改成对外部数据源的汇总模式。

Dim t As Table = Tables("进销存")
Dim g As Subtotalgroup
t.StopRedraw()
t.SubtotalGroups.Clear()
t.Filter = "日期 >= #1/1/2010# And 日期 <= #3/31/2010#"
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "商品名称"
g.TotalOn = "出库_数量,出库_金额"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "客户名称"
g.TotalOn = "出库_数量,出库_金额"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "数量,金额"
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()
t.ResumeRedraw()
t.ShowCell(t.Rows.Count(True) - 1, 0) \'显示最后一行

--  作者:大红袍
--  发布时间:2016/6/17 15:31:00
--  
 内部,外部,都一样,只要你表名写对,就行。
--  作者:江南小城
--  发布时间:2016/6/17 17:16:00
--  
老师,我按任务栏按钮(汇总模式)后进销存表的数据多隐藏起来了。



图片点击可在新窗口打开查看此主题相关图片如下:图像 1.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2016/6/17 18:55:00
--  

上传例子测试。


--  作者:江南小城
--  发布时间:2016/6/17 19:21:00
--  
谢谢老师,自定义函数的日期搞错了。
--  作者:江南小城
--  发布时间:2016/6/17 22:52:00
--  
For Each frm As WinForm.Form In Forms \'关闭本表其他窗口
    If frm.TableName = e.Form.TableName AndAlso frm.Opened Then
        If frm.Name <> "导航" AndAlso frm.Name <> e.Form.Name Then
            frm.Close
        End If
    End If
Next

Dim t As Table = Tables("进销存")
Dim g As Subtotalgroup
t.StopRedraw()
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.Filter = "日期 >= #9/1/2015# And 日期 <= #12/28/2015#"
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "商品名称"
g.Caption = "{0}"
t.SubtotalGroups.Add(g)
t.Subtotal()
Dim r As Row
For i As Integer = 0 To t.Rows.Count(True) - 1
    r = t.Rows(i,True)
    If r.IsGroup \'如果是分组行
        Dim f As String = "商品名称 = \'" & r("商品名称") & "\'"
        Dim v As String = "  交易数:" & t.Compute("Count(日期)",f)
        v = v & "  数量:" & t.Compute("Sum(出库_数量)",f)
        v = v & "  金额:" & t.Compute("Sum(出库_金额)",f)
        r("商品名称") = "商品:" & r("商品名称") & v
    End If
Next
t.ResumeRedraw()
t.ShowCell(t.Rows.Count(True) - 1, 0) \'显示最后一行


老师,上面代码我依样画葫芦抄的出库_数量和出库_金额为什么等于零。

图片点击可在新窗口打开查看此主题相关图片如下:图像 3.png
图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2016/6/18 8:47:00
--  

Dim f As String = "商品名称 = \'" & r("商品名称") & "\'"

 

改为:

 

Dim f As String = "商品名称 = \'" & r("客户名称") & "\'"

 

 

因为你分组行的商品名称显示在客户名称列


--  作者:Hyphen
--  发布时间:2016/6/18 8:51:00
--  
......
Dim g As Subtotalgroup
t.StopRedraw()
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.Filter = "日期 >= #9/1/2015# And 日期 <= #12/28/2015#"
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "商品名称"
g.TotalOn = "出库_数量,出库_金额"
g.Caption = "{0}"
t.SubtotalGroups.Add(g)
t.Subtotal()
......

--  作者:江南小城
--  发布时间:2016/6/18 10:27:00
--  
以下是引用狐狸爸爸在2016/6/18 8:47:00的发言:

Dim f As String = "商品名称 = \'" & r("商品名称") & "\'"

 

改为:

 

Dim f As String = "商品名称 = \'" & r("客户名称") & "\'"

 

 

因为你分组行的商品名称显示在客户名称列

老师,修改后还是没有用。


--  作者:Hyphen
--  发布时间:2016/6/18 10:30:00
--  
上传例子测试