以文本方式查看主题

-  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=122000)

--  作者:nbsugu_z
--  发布时间:2018/7/17 10:05:00
--  如何排序

Dim bd1 As New GroupTableBuilder("统计表B1",DataTables("pzk"))
Dim dt1 As fxDataSource \'工程发票
bd1.Groups.AddDef("发票1_所属项目","项目分类")
bd1.Groups.AddDef("发票1_出票方","结算平台名称")
bd1.Groups.AddDef("年月")
bd1.Totals.AddDef("发票1_税额","发票销项税")
dt1 = bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表B2",DataTables("pzk"))
Dim dt2  As fxDataSource \'主材料发票
bd2.Groups.AddDef("发票_所属项目","项目分类")
bd2.Groups.AddDef("发票_平台","结算平台名称")
bd2.Groups.AddDef("年月")
bd2.Totals.AddDef("发票_税额","进项税_主材发票")
dt2 = bd2.BuildDataSource()

Dim bd3 As New GroupTableBuilder("统计表B3",DataTables("pzk"))
Dim dt3  As fxDataSource  \'劳务费发票
bd3.Groups.AddDef("成本1_所属项目","项目分类")
bd3.Groups.AddDef("成本1_收票方","结算平台名称")
bd3.Groups.AddDef("年月")
bd3.Totals.AddDef("成本1_税额","进项税_劳务发票")
dt3 = bd3.BuildDataSource()

Dim bd4 As New GroupTableBuilder("统计表B4",DataTables("pzk"))
Dim dt4  As fxDataSource
bd4.Groups.AddDef("报销_所属项目","项目分类")
bd4.Groups.AddDef("报销_平台","结算平台名称")
bd4.Groups.AddDef("年月")
bd4.Totals.AddDef("报销_税额","进项税_报销发票")
dt4 = bd4.BuildDataSource()


Dim arr() As String = {"项目分类","结算平台名称","年月"}
dt1.Combine(arr,dt2,arr)
dt1.Combine(arr,dt3,arr)
dt1.Combine(arr,dt4,arr)

dt1.show("统计表B") \'将统计结果绑定到Table
Dim t As Table = Tables("统计表B")

With t.DataTable.DataCols  \'用表达式列计算库存数据
    .Add("进项税_小计",Gettype(Double), "IsNull([进项税_主材发票],0) + ISNULL([进项税_劳务发票],0)+ISNULL([进项税_报销发票],0)")
    .Add("应交增值税",Gettype(Double), "IsNull([发票销项税],0) - ISNULL([进项税_小计],0)")
   
End With
With Tables("统计表B")
    .MergeMode = MergeModeEnum.Standard
    .MergeCols.Clear()
    .MergeCols.Add("项目分类")
    .MergeCols.Add("结算平台名称")
    .MergeCols.Add("年月")
    .MergeSort = "项目分类,结算平台名称,年月"
    .AllowMerge = True
End With

Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "发票销项税,进项税_主材发票,进项税_劳务发票,进项税_报销发票,进项税_小计,应交增值税"
g.Caption = "总计"
t.SubtotalGroups.Add(g)
t.Subtotal()

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "项目分类"
g.TotalOn = "发票销项税,进项税_主材发票,进项税_劳务发票,进项税_报销发票,进项税_小计,应交增值税"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)


t.Subtotal()

 

 

MainTable = t

\'以下显示格式
Tables("统计表B").cols("发票销项税").DataCol.setFormat("#,###.00")
Tables("统计表B").cols("进项税_主材发票").DataCol.setFormat("#,###.00")
Tables("统计表B").cols("进项税_劳务发票").DataCol.setFormat("#,###.00")
Tables("统计表B").cols("进项税_报销发票").DataCol.setFormat("#,###.00")
Tables("统计表B").cols("进项税_小计").DataCol.setFormat("#,###.00")
Tables("统计表B").cols("应交增值税").DataCol.setFormat("#,###.00")

Dim frm As WinForm.Form
frm = Forms("按项目应交增值税汇总窗口")
frm.Open()
MainTable = Tables("统计表B")

\'结束

 

 

老师,以上代码正确无误,现在在第二分组“结算平台名称”合并列中有年月,请问小组的年月要按年月大小排序,如何加代码?


--  作者:有点甜
--  发布时间:2018/7/17 10:57:00
--  
上传具体实例说明你的问题。
--  作者:nbsugu_z
--  发布时间:2018/7/17 12:14:00
--  

With Tables("统计表B")
    .MergeMode = MergeModeEnum.Standard
    .MergeCols.Clear()
    .MergeCols.Add("项目分类")
    .MergeCols.Add("结算平台名称")
    .MergeCols.Add("年月")
    .MergeSort = "项目分类,结算平台名称,年月"
    .AllowMerge = True
End With

 

这代码.MergeSort = "项目分类,结算平台名称,年月",合并模式后的排序,不会排,只排第一个“项目分类”,后面二个不会排序


--  作者:有点甜
--  发布时间:2018/7/17 12:35:00
--  

1、你试试先设置汇总模式,再设置合并模式;

 

2、你试试设置完以后,再设置 Tables("").sort="xxxxxx"


--  作者:nbsugu_z
--  发布时间:2018/7/17 15:10:00
--  
谢谢老师,已解决