Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
我制了个像订单表一样的模板,用代码打印,在伐码中修改模板的打印条件为<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()
模板有问题。
先不用代码,直接通过菜单打印,看看正常否。
如果也不正常,就是模板问题,如果正常,就是你上面的代码有问题。
如果确定代码有问题,肯定就是这三行引起的:
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1,31).Value = "<all>" '修改模板打印条件
Sheet(1,0).Value = "<" & vars(User.Group) & ">" '修改模板细节区表名
模板在菜单下直接生成报表没问题啊,这代码能改吗
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1,31).Value = "<all>" '修改模板打印条件
Sheet(1,0).Value = "<" & vars(User.Group) & ">" '修改模板细节区表名
把红色部分删除只打一行也没问题,不用伐码直接输出可以输出全部行。
这样检查一下,看看你生成的模板是什么样,就知道原因了:
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()