以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]为何导出时设置合计了合计模式,但不起作用?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67261)

--  作者:瞩望星空
--  发布时间:2015/4/21 13:08:00
--  [求助]为何导出时设置合计了合计模式,但不起作用?
主要 代码如下:
Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim flg As New SaveExcelFlags
    flg.CellStyle = True
    flg.RowNumber = True
    flg.MergedRanges = True
    Tables(e.Form.Name &  "_Table1").SaveExcel(dlg.FileName, Vars("button_name") &  "_统计",flg)  \'保存文件
End If

这个生成的XLS文件,没有合计一行。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:输出xls.table




--  作者:Bin
--  发布时间:2015/4/21 13:42:00
--  
用汇总模式就没问题.
--  作者:瞩望星空
--  发布时间:2015/4/21 14:37:00
--  
如果是汇总模式,只有第一个表有合计:

图片点击可在新窗口打开查看此主题相关图片如下:汇总模式.png
图片点击可在新窗口打开查看



Dim filter,filter2 As String


Dim bd1 As New SQLGroupTableBuilder("统计表1","表A")
Dim dt1 As fxDataSource
bd1.Groups.AddDef("部门名称","单位")  \'统计表1的列重命名
bd1.Totals.AddDef("部门名称", AggregateEnum.Count,"数量_性质")
bd1.FromServer = True
\'bd1.VerticalTotal = True    \'
bd1.Subtotal = True

bd1.Filter = Filter
\'dt1 = bd1.BuildDataSource()
\'bd1.Build
dt1 = bd1.BuildDataSource()

Dim bd2 As New SQLGroupTableBuilder("统计表2","表C")
Dim dt2  As fxDataSource
bd2.Groups.AddDef("部门名称","单位")  \'统计表1的列重命名
bd2.Totals.AddDef("部门名称", AggregateEnum.Count,"数量_类别")
\'bd2.VerticalTotal = True
bd2.Filter = Filter2
bd2.Subtotal = True
bd2.FromServer = True
dt2 = bd2.BuildDataSource()

dt1.Combine("单位",dt2,"单位") \'将统计表2组合到统计表1
\'

Tables(e.Form.Name &  "_Table1").DataSource = dt1 \'将统计结果绑定到Table
\'问题:以合计模式生成,不能把合计结果导出至XLS
\'Tables(e.Form.Name &  "_Table1").Cols("数量_性质").GrandTotal = True \'指定要合计的列
\'Tables(e.Form.Name &  "_Table1").Cols("数量_类别").GrandTotal = True
\'Tables(e.Form.Name &  "_Table1").GrandTotal = True \'显示合计模式
e.Form.Controls("Table1").Visible =  True
Tables(e.Form.Name &  "_Table1").DataTable.SysStyles("EmptyArea").BackColor = e.Form.BackColor



--  作者:Bin
--  发布时间:2015/4/21 14:40:00
--  
用汇总

Dim t As Table = Tables("窗口1_Table1")
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()

--  作者:瞩望星空
--  发布时间:2015/4/21 14:51:00
--  
可以了,谢谢版主!


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:输出xls.table