以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  汇总模式 如何将日期放在最后分组?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=183336)

--  作者:水墨青花
--  发布时间:2022/11/1 16:49:00
--  汇总模式 如何将日期放在最后分组?
老师,您好:

现希望能够进行如下汇总:每周 各个项目 在某个状态下的清单,请问该如何把日期按 “每周” 汇总,并放在最后?

谢谢!

--  作者:有点蓝
--  发布时间:2022/11/1 17:00:00
--  
参考:http://www.foxtable.com/webhelp/topics/3291.htm
--  作者:水墨青花
--  发布时间:2022/11/1 18:56:00
--  

可能我没表达清晰,我希望日期的分组,是最顶层的分组,其后才是 其他分组。
现在的问题是,日期的分组 (code中在最前面),结果展现出来,是在最底层。见下图

图片点击可在新窗口打开查看

--  作者:水墨青花
--  发布时间:2022/11/1 18:57:00
--  
希望 “周”的分组,能够在 “最顶层”,其下面才是  周几、项目、条件。
--  作者:有点蓝
--  发布时间:2022/11/1 19:56:00
--  
贴出完整代码看看
--  作者:水墨青花
--  发布时间:2022/11/2 9:15:00
--  
就是希望在这组代码下,加入 日期的周分组,但是“周分组”在最顶层,而不是最底层的分组。谢谢!

Dim t As Table = Tables("TableA")
Dim g As SubtotalGroup
t.SubtotalGroups.Clear()
t.GroupAboveData = True
t.TreeVisible = True
t.SpillNode = True

g = New SubtotalGroup
g.Aggregate = AggregateEnum.Count
g.GroupOn = "条件"
g.TotalOn = "批号"
g.Caption = "{0} "
t.SubtotalGroups.Add(g)

g = New SubtotalGroup
g.Aggregate = AggregateEnum.Count
g.GroupOn = "项目"
g.TotalOn = ""
g.Caption = "{0}"
t.SubtotalGroups.Add(g)

g = New SubtotalGroup
g.Aggregate = AggregateEnum.Count
g.GroupOn = "星期"
g.TotalOn = ""
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 Then
        Dim xm As String
        Select Case r.Level
            Case 0
                r("条件") = r("实验ID")
                r("实验ID") = Nothing
            Case 1
                r("条件") = r("实验ID")
                r("实验ID") = Nothing
            Case 2
                r("实验ID") = r("实验ID") & " : " & r("批号") & "批" 
                r("批号") = Nothing
        End Select 
    End If
Next

t.Grid.Tree.Show(2)



--  作者:水墨青花
--  发布时间:2022/11/2 9:18:00
--  
加载的数据经常是 跨月的,所以希望在 某一周内(最顶层),按照 “星期几、项目、条件” 的顺序 依次向下分组
--  作者:有点蓝
--  发布时间:2022/11/2 9:24:00
--  
把星期的代码放到前面

Dim t As Table = Tables("TableA")
Dim g As SubtotalGroup
t.SubtotalGroups.Clear()
t.GroupAboveData = True
t.TreeVisible = True
t.SpillNode = True

g = New SubtotalGroup
g.Aggregate = AggregateEnum.Count
g.GroupOn = "星期"
g.TotalOn = ""
g.Caption = "【周{0}】"
t.SubtotalGroups.Add(g)

g = New SubtotalGroup
g.Aggregate = AggregateEnum.Count
g.GroupOn = "条件"
g.TotalOn = "批号"
g.Caption = "{0} "
t.SubtotalGroups.Add(g)
……

--  作者:水墨青花
--  发布时间:2022/11/2 17:51:00
--  
老师, 现在的问题跟 “星期”无关,星期列,只是周几DayOfWeek,字符列。

我的问题是 “日期”列,Date, 如果把 “日期” 列加入到分组中,按周Week分组(如下),然后这个分组 放在最后,也就是分组的最顶层,而不是放在最前面。

当我把如下code放在最后时,会报错“汇总模式的日期分组必须作为第一个分组”,但是如果放在最前面,日期分组就成了最底层的分组。我需要的是 每周下 的其他汇总分组。

g = New SubtotalGroup
g.Aggregate = AggregateEnum.Count
g.GroupOn = "日期"
g.TotalOn = ""
g.Caption = "{0} 周"
t.SubtotalGroups.Add(g)


--  作者:有点蓝
--  发布时间:2022/11/3 8:34:00
--  
试试自己扩展:http://www.foxtable.com/webhelp/topics/1911.htm