以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]再探打印问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=119311)

--  作者:积水成渊
--  发布时间:2018/5/22 16:09:00
--  [讨论]再探打印问题
之前已经弄了一个关于打印的功能,有自动连续打印的(没有预览),有连续单个预览打印的等,但是还是不够效率,现在能不能实现这样的功能,我需要打印三张单据,将三张单据的预览体现在一张打印页面中,确定没有问题后,点击打印,将三张单据连续打印出来
--  作者:积水成渊
--  发布时间:2018/5/22 16:16:00
--  
For Each dr As DataRow In DataTables("出纳单据").Select("是否打印= 1")

Dim Book As New XLS.Book(ProjectPath & "Attachments\\费用报销单.xls")
Dim fl As String = ProjectPath & "Reports\\费用报销单.xls"
book.AddDataTable("A","数据源A","s elect * f rom {A} where ID = \'"& dr("ID") &"\'") \'添加父表
book.AddDataTable("B","数据源B","s elect * f rom  {B} where PARENT = \'"& dr("ID") &"\'") \'添加子表
book.AddDataTable("C","数据源C","s elect * f rom  {C} where PARENT = \'"& dr("ID") &"\'") \'添加子表
book.AddRelation("A","ID","B","PARENT") \'建立关联
book.AddRelation("A","ID","C","PARENT") \'建立关联
Book.Build() \'生成细节区
Book.Save(fl) \'保存工作簿
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
wb.saved = True
App.Visible = True
Ws.PrintPreview
wb.close
App.Quit
next
以上代码是单个预览,然后打印,例如我选中三条需要打印的单据,我需要将这三张单据在一个页面预览出来,点击打印时,连续打印三张单据,而不是预览一张单据,点击打印一张,然后又预览一张单据,点击又打印一张

--  作者:有点甜
--  发布时间:2018/5/22 16:39:00
--  

如果你要一起预览,你要把所有内容拷贝到同一个sheet里面才可以的。(效率更低)

 

先生成 1.xls 、2.xls、3.xls 三个文件,然后打开三个文件,拷贝,粘贴到某一个sheet里面,然后把sheet打印。


--  作者:积水成渊
--  发布时间:2018/5/22 16:59:00
--  
老师,有具体的案例吗,因为我看别的软件的打印模式都是这种的,显然更有利于用户的实际操作
--  作者:有点甜
--  发布时间:2018/5/22 17:49:00
--  
以下是引用积水成渊在2018/5/22 16:59:00的发言:
老师,有具体的案例吗,因为我看别的软件的打印模式都是这种的,显然更有利于用户的实际操作

 

如果要高效率,请使用【专业报表】做,如果使用excel报表做,就是很麻烦的。

 

具体问题,请做一个对应的实例发上来测试。