以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  excel报表问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=14597)

--  作者:puyouliang
--  发布时间:2011/11/25 0:39:00
--  excel报表问题

我制了个像订单表一样的模板,用代码打印,在伐码中修改模板的打印条件为<all>,为什么打印出来的结果是:表头——记录——然后又是表头——再打记录,这样反复打印直到记录条数打完,这是什么原因啊

伐码如下:

Dim Book As New XLS.Book(ProjectPath & "Attachments\\台账.xls")
Dim fl As String = ProjectPath & "Reports\\台账.xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1,31).Value = "<all>"               \'修改模板打印条件
Sheet(1,0).Value = "<" & vars(User.Group) & ">"    \'修改模板细节区表名
Book.Build()                       \'生成细节区
Book.Save(fl)                      \'保存工作簿
Dim Proc As New Process                \'打开工作簿
Proc.File = fl
Proc.Verb = "Print"                   \'指定动作
Proc.Start()


--  作者:狐狸爸爸
--  发布时间:2011/11/25 8:14:00
--  

模板有问题。

先不用代码,直接通过菜单打印,看看正常否。

如果也不正常,就是模板问题,如果正常,就是你上面的代码有问题。

如果确定代码有问题,肯定就是这三行引起的:

 

Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1,31).Value = "<all>"               \'修改模板打印条件
Sheet(1,0).Value = "<" & vars(User.Group) & ">"    \'修改模板细节区表名

 


--  作者:puyouliang
--  发布时间:2011/11/25 11:59:00
--  

模板在菜单下直接生成报表没问题啊,这代码能改吗

Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1,31).Value = "<all>"               \'修改模板打印条件
Sheet(1,0).Value = "<" & vars(User.Group) & ">"    \'修改模板细节区表名

 

 

把红色部分删除只打一行也没问题,不用伐码直接输出可以输出全部行。

[此贴子已经被作者于2011-11-25 12:05:41编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/11/25 12:03:00
--  

这样检查一下,看看你生成的模板是什么样,就知道原因了:

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\\台账.xls")
Dim fl As String = ProjectPath & "Reports\\台账.xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1,31).Value = "<all>"               \'修改模板打印条件
Sheet(1,0).Value = "<" & vars(User.Group) & ">"    \'修改模板细节区表名
Book.Save(fl)                      \'保存工作簿
Dim Proc As New Process                \'打开工作簿
Proc.File = fl
Proc.Verb = "Print"                   \'指定动作
Proc.Start()


--  作者:puyouliang
--  发布时间:2011/11/25 12:19:00
--  
找到了,是修改的行数不对,都修改在了表头的那一行。