以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  汇总报表和调用excel模板生成的报表如何合并成一个pdf文件?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153903)

--  作者:guosheng
--  发布时间:2020/8/27 9:40:00
--  汇总报表和调用excel模板生成的报表如何合并成一个pdf文件?
Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b
.Groups.AddDef("产品") \'根据产品分组
b
.Totals.AddDef("数量") \'对数量进行统计
b
.Build \'生成统计表
Maintable
= Tables("统计表1") \'打开生成的统计表




Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单.xls")
Dim
fl As String = ProjectPath & "Reports\\出库单.pdf"
Book
.Build() \'生成细节区
Book
.SaveToPDF(fl) \'保存为PDF文件
Dim
Proc As New Process \'打开PDF文件
Proc
.File = fl
Proc
.Start()

--  作者:有点蓝
--  发布时间:2020/8/27 10:03:00
--  
先生成execl报表,再填充统计表数据:http://www.foxtable.com/webhelp/topics/1148.htm

Book.Build() \'生成细节区
这里添加导出统计表数据的代码
Book
.SaveToPDF(fl\'保存为PDF文件

--  作者:guosheng
--  发布时间:2020/8/27 10:50:00
--  
若出库单引用excel模板文件“出库单.xlsx”,而统计表引用的excel模板是“统计表.xlsx”。build之后,如何“统计表.xlsxsheet(0)的内容复制到出库单.xlsx”的sheet(1)中啊?
Dim fl As String = ProjectPath & "Reports\\出库单.pdf"
\'第1个excel模板生成
Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单.xlsx")
Book.Build() \'生成细节区



\'第2个excel模板生成
Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef("产品") \'根据产品分组
b.Totals.AddDef("数量") \'对数量进行统计
b.Build \'生成统计表

Dim Book1 As New XLS.Book(ProjectPath & "Attachments\\统计表.xlsx")
Book1.Build() \'生成细节区

\'将Book1的sheet(0) 复制到Book的sheet(1) (含样式的复制)


Book.SaveToPDF(fl) \'保存为PDF文件
Dim Proc As New Process \'打开PDF文件
Proc.File = fl
Proc.Start()

[此贴子已经被作者于2020/8/27 10:51:20编辑过]

--  作者:有点蓝
--  发布时间:2020/8/27 11:57:00
--  
在第一个模板里添加一个sheet,把第二个模板的内容放到这个sheet里即可。即把2个模板放到一个execl文件的不同sheet里
--  作者:guosheng
--  发布时间:2020/8/27 12:13:00
--  
Dim fl As String = ProjectPath & "Reports\\出库单.pdf"

Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单.xlsx")


\'第二个统计表引用excel模板
"统计表1"不存在,则不执行绿色阴影的代码,且只对book的sheet(0)生成pdf文件,sheet(1)不生成pdf,该怎么写啊?
Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef("产品") \'根据产品分组
b.Totals.AddDef("数量") \'对数量进行统计
b.Build \'生成统计表


Book.Build() \'生成细节区


Book.SaveToPDF(fl) \'保存为PDF文件
Dim Proc As New Process \'打开PDF文件
Proc.File = fl
Proc.Start()

--  作者:有点蓝
--  发布时间:2020/8/27 13:34:00
--  
sheet(1)里面的表名改为“统计表1”

我测试没有问题的,不行就上传实例

--  作者:guosheng
--  发布时间:2020/8/27 13:55:00
--  
excel文件中,两个sheet中都有模板,有一种情况,我只需要调用sheet(0)的模板,不调用sheet(1)的模板。执行下边代码就出错了(错误提示,找不到 统计表1)。该怎么解决啊?

Dim fl As String = ProjectPath & "Reports\\出库单.pdf"

Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单.xlsx")


\'第二个统计表引用excel模板  ------不生成汇总数据,且不调用该模板
\'若"统计表1"不存在,则不执行绿色阴影的代码,且只对book的sheet(0)生成pdf文件,sheet(1)不生成pdf,该怎么写啊?
\'Dim b As New GroupTableBuilder("统计表1",DataTables("订单"))
\'b.Groups.AddDef("产品") \'根据产品分组
\'b.Totals.AddDef("数量") \'对数量进行统计
\'b.Build \'生成统计表


Book.Build() \'生成细节区


Book.SaveToPDF(fl) \'保存为PDF文件
Dim Proc As New Process \'打开PDF文件
Proc.File = fl
Proc.Start()
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


--  作者:有点蓝
--  发布时间:2020/8/27 14:17:00
--  
设计3个模板,如果只需要sheet(0),使用第一个模板,如果只需要sheet(1),使用第二个模板,如果2个都需要,使用第三个模板