以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 多层表头导出为模板 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191382) |
-- 作者:g1j2h3 -- 发布时间:2024/4/13 17:24:00 -- 多层表头导出为模板 在窗口中形成多表头的统计表 ,想按excel模板格式导出,该如何写代码,数据应该是全年的,图例只是部分的 [此贴子已经被作者于2024/4/13 17:25:13编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/4/14 20:03:00 -- 如果是动态生成的统计表,参考这里的4楼用法:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=191346&skin=0 |
-- 作者:g1j2h3 -- 发布时间:2024/4/14 22:58:00 -- 麻烦老师看下代码错在哪里,一直试,没反应啊,发货数量和未发货数量就是填不上数据 Dim Book As New XLS.Book(ProjectPath & "Attachments\\年接单发货统计表.xls") Dim fl As String = ProjectPath & "Reports\\年接单发货统计表.xls" Dim b As New SQLCrossTableBuilder("接单发货数量统计", "销售接单") b.C b.HGroups.AddDef("产品名称") \'添加客户列用于水平分组 b.HGroups.AddDef("规格型号") \'添加客户列用于水平分组 \'b.VGroups.AddDef("接单日期", DateGroupEnum.Year, "{0}年") \'添加日期列用于垂直分组,按年分组 b.VGroups.AddDef("接单日期", "{0}月") \'添加日期列用于垂直分组,按月分组 b.Totals.AddDef("销售数量", "销售数量") b.Totals.AddDef("已发货数量", "发货数量") \'b.Totals.AddDef("未发货数量", "未发货数量") \'b.HorizontalTotal = True Dim dt As DataTable = b.Build(True) Dim Sheet As XLS.Sheet = Book.Sheets(0) For Each dc As DataCol In dt.DataCols If dc.Caption Like "*月" Then Dim i As Integer = Val(dc.Caption) Sheet(5, 9 + i).Value = "[" & dc.Name & "]" End If Next book.AddDataTable("接单发货数量统计", dt) \'添加临时表 Book.Build() Book.Save(fl) Dim Proc As New Process Proc.File = fl Proc.Start() [此贴子已经被作者于2024/4/14 22:58:25编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/4/14 23:23:00 -- …… Dim dt As DataTable = b.Build(True) Dim Sheet As XLS.Sheet = Book.Sheets(0) For Each dc As DataCol In dt.DataCols Dim i As Integer = (Val(dc.Caption) - 1) * 3 + 3 If dc.Caption Like "*销售数量" Then Sheet(5, i + 1).Value = "[" & dc.Name & "]" elseIf dc.Caption Like "*未发货数量" Then Sheet(5, i + 3).Value = "[" & dc.Name & "]" elseIf dc.Caption Like "*发货数量" Then Sheet(5, i + 2).Value = "[" & dc.Name & "]" End If Next book.AddDataTable("接单发货数量统计", dt) \'添加临时表
|
-- 作者:g1j2h3 -- 发布时间:2024/4/15 9:36:00 -- 老师辛苦 |
-- 作者:g1j2h3 -- 发布时间:2024/5/25 8:39:00 -- 大师,按照上面的代码生成的报表,合计位置不对 |
-- 作者:有点蓝 -- 发布时间:2024/5/25 9:29:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626 |
-- 作者:g1j2h3 -- 发布时间:2024/5/25 9:42:00 -- 按照下边的代码生成的报表,合计部分的数据自动填到了前面的三列,麻烦老师看下代码错在哪里 Dim Book As New XLS.Book(ProjectPath & "Attachments\\年接单发货统计表.xls") Dim fl As String = ProjectPath & "Reports\\年接单发货统计表.xls" Dim b As New SQLCrossTableBuilder("接单发货数量统计", "接单登记") b.C b.AddTable("接单登记", "接单单号", "接单明细", "接单单号") b.HGroups.AddDef("产品名称") \'添加客户列用于水平分组 b.HGroups.AddDef("规格型号") \'添加客户列用于水平分组 \'b.VGroups.AddDef("接单日期", DateGroupEnum.Year, "{0}年") \'添加日期列用于垂直分组,按年分组 b.VGroups.AddDef("接单日期", "{0}月") \'添加日期列用于垂直分组,按月分组 b.Totals.AddDef("销售数量", "销售数量") b.Totals.AddExp("已发货数量", "发货数量") b.Totals.AddExp("未发货数量", "销售数量 - 发货数量", "未发货数量") b.HorizontalTotal = True Dim dt As DataTable = b.Build(True) Dim Sheet As XLS.Sheet = Book.Sheets(0) For Each dc As DataCol In dt.DataCols \' If dc.Caption Like "*月" Then Dim i As Integer = (Val(dc.Caption) - 1) * 3 + 3 If dc.Caption Like "*销售数量" Then Sheet(5, i + 1).Value = "[" & dc.Name & "]" ElseIf dc.Caption Like "*未发货数量" Then Sheet(5, i + 3).Value = "[" & dc.Name & "]" ElseIf dc.Caption Like "*已发货数量" Then Sheet(5, i + 2).Value = "[" & dc.Name & "]" End If \' End If Next book.AddDataTable("接单发货数量统计", dt) \'添加临时表 Book.Build() Book.Save(fl) Dim Proc As New Process Proc.File = fl Proc.Start() 生成的报表 报表模板 |
-- 作者:有点蓝 -- 发布时间:2024/5/25 10:12:00 -- 到命令窗口使用b.Build()生成这个统计表,然后打开表结构看看这个统计表的列名和标题名是怎么样的 |
-- 作者:g1j2h3 -- 发布时间:2024/5/25 10:18:00 -- 下图是生成的临时表,看似没问题 |