以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  输出报表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23896)

--  作者:gzyt
--  发布时间:2012/9/23 16:16:00
--  输出报表
请问老师,我在输出报表,特别是多张报表时,比如出库单,每张都要重命名,能否直接根据出库单号直接命名,并存储在指定文件夹中,比如我有客户名叫“AA”,生成出库单为“AA-CK-2012-09-23-1”,在生成报表时直接命名为“AA-CK-2012-09-23-1”,并存储在AA文件夹的2012中,谢谢
--  作者:狐狸爸爸
--  发布时间:2012/9/24 10:59:00
--  

可以的:
 
http://www.foxtable.com/help/topics/1145.htm


 
例如:
 
Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单.xls") \'打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(6,6).Value = "制单人:" & User.Name \'修改模板,加入制单人信息
Book.Build() \'生成细节区
Book.Save("c:\\reports\\test.xls") \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = Tables("客户").Current("客户名称") & "-CK-" & Foramt(Date.Today,"yyyy-MM-dd") & ".xls"
Proc.Start()


--  作者:gzyt
--  发布时间:2012/9/24 14:07:00
--  
弱弱的问一下,这串代码加在哪里?我加在报表事件的BeforeBuild,总是不对
--  作者:lin_hailun
--  发布时间:2012/9/24 15:39:00
--  
以下是引用gzyt在2012-9-23 16:16:00的发言:
请问老师,我在输出报表,特别是多张报表时,比如出库单,每张都要重命名,能否直接根据出库单号直接命名,并存储在指定文件夹中,比如我有客户名叫“AA”,生成出库单为“AA-CK-2012-09-23-1”,在生成报表时直接命名为“AA-CK-2012-09-23-1”,并存储在AA文件夹的2012中,谢谢

在AfterBuild事件里写这句代码

e.Book.Save(保存的文件路径.xls)

路径自己根据自己的实际需要而定。

--  作者:gzyt
--  发布时间:2012/9/25 8:18:00
--  

狐爸,这串代码总是报错,

Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单.xls") \'打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(6,6).Value = "制单人:" & User.Name \'修改模板,加入制单人信息
Book.Build() \'生成细节区
Book.Save("c:\\reports\\test.xls") \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = Tables("客户").Current("客户名称") & "-CK-" & Foramt(Date.Today,"yyyy-MM-dd") & ".xls"
Proc.Start()
只要是红色的部分,不一致,就会报错。


--  作者:狐狸爸爸
--  发布时间:2012/9/25 11:08:00
--  
Dim fl As String = Tables("客户").Current("客户名称") & "-CK-" & Foramt(Date.Today,"yyyy-MM-dd") & ".xls"
Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单.xls") \'打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(6,6).Value = "制单人:" & User.Name \'修改模板,加入制单人信息
Book.Build() \'生成细节区
Book.Save(fl) \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = fl
Proc.Start()

--  作者:gzyt
--  发布时间:2012/9/26 12:57:00
--  

Dim fl As String =  ProjectPath & "Reports" & "\\" &  Tables("出库单").Current("出库编号")  & ".xls"
Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单模板.xls") \'打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(6,6).Value = "制单人:" & User.Name \'修改模板,加入制单人信息
Book.Build() \'生成细节区
Book.Save(fl) \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = fl
Proc.Start()

还是应该要有保存地址才行,谢谢老师,不过只能加在按钮里吗,我没有窗口,不是很方便


--  作者:狐狸爸爸
--  发布时间:2012/9/26 14:13:00
--  
不用窗口,也可以用菜单按钮
--  作者:lin_hailun
--  发布时间:2012/9/26 14:23:00
--  
 楼主,其实你这个问题,是可以通过 报表事件 解决的。

 认真看看这一章 http://www.foxtable.com/help/topics/1960.htm

 还有就是,看看 5楼。

--  作者:gzyt
--  发布时间:2012/9/26 15:07:00
--  
多谢各位的帮助!