以文本方式查看主题

-  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=141727)

--  作者:chen_sheng
--  发布时间:2019/10/9 19:29: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
(3,9).Value = "<日期 = # " & Date.Today & "#>"  \'写入打印条件
Book.Build() 
\'生成报表
Book.Save(fl) 

Dim 
Proc As New Process 
Proc.File = fl
Proc.Start()

--  作者:有点蓝
--  发布时间:2019/10/10 8:44:00
--  
把打印代码放到计划管理:http://www.foxtable.com/webhelp/topics/0657.htm
--  作者:chen_sheng
--  发布时间:2019/10/10 10:45:00
--  
能否就上面的实例代码指导一下,,非常感谢!

计划管理怕写的代码不合理,导致整个系统崩溃一直不敢使用,期待指导

--  作者:有点蓝
--  发布时间:2019/10/10 11:07:00
--  
把下面代码去掉,剩下的都放到计划管理即可。

Dim Proc As New Process 
Proc.File = fl
Proc.Start()

至于是否合理,自己测试过才知道。你们从来都没有测试数据库和测试项目的吗?永远都是直接在生产系统里直接更改和测试?!!

--  作者:chen_sheng
--  发布时间:2019/10/10 12:16:00
--  
我的目的是制作一个打印服务器直,接指定本服务器安装的打印机,按照代码要求时间(每天固定8:00)自动下发打印命令,自动打印出来的想法
好像去掉那些代码就是定时保存文件而已,跟我的想法还是有点偏差,再请指导一下思路和方法  谢谢


--  作者:有点蓝
--  发布时间:2019/10/10 13:46: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(3,9).Value = "<日期 = # " & Date.Today & "#>"  \'写入打印条件
Book.Build() \'生成报表
Book.Save(fl) 
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Ws.PrintOut(Preview:=False)    \'直接打印;http://www.foxtable.com/webhelp/topics/2121.htm
App.Quit

--  作者:chen_sheng
--  发布时间:2019/10/10 14:39: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(3,9).Value = "<日期 = # " & Date.Today & "#>"  \'写入打印条件
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)
Ws.PrintOut(Preview:=False)    \'直接打印;http://www.foxtable.com/webhelp/topics/2121.htm
App.Quit

感谢老师 指导  刚刚报APP错 我根据实例加了行代码 

我这里还有最后一个问题  假如电脑装了几个打印机 如何指定非默认打印机打印呢   这台电脑计划仅执行打印任务,需要把资料打印到多个网络共享打印机,只是默认打印机还是解决不了我的需求,感谢!

--  作者:有点蓝
--  发布时间:2019/10/10 14:47:00
--  
  • PrintOut

    直接打印。如,Ws.PrintOut

    该方法还可通过设置有关参数来控制打印,如下面的代码就是打印第1-10页,打印份数为3,打印前先预览,指定的打印机为"pdfFactory Pro":

    Ws.PrintOut(From:=1,To:=10,Copies:=3,Preview:=True,ActivePrinter:="pdfFactory Pro")

--  作者:chen_sheng
--  发布时间:2019/10/10 15:36:00
--  
static ptime As Date
If ptime <> Date.Today AndAlso Format(Date.Now, "HH:mm") >= "15:25" AndAlso Format(Date.Now, "HH:mm") <= "15:30" Then
    MyTimers("计划1").Enabled = False
    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(3,9).Value = "<日期 = # " & Date.Today & "#>"  \'写入打印条件
    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)
    Ws.PrintOut(Preview:=False,ActivePrinter:="RICOH Aficio MP 7001")    \'直接打印;http://www.foxtable.com/webhelp/topics/2121.htm
    \'Ws.PrintOut(Preview:=True,ActivePrinter:="RICOH Aficio MP 7001")
    App.Quit
    ptime = Date.Today
    MyTimers("计划1").Enabled = True
End If

帮忙看看这个代码放到计划管理没有问题吧  刚刚狐表崩溃了   打印任务成功下发
间隔:3000
[此贴子已经被作者于2019/10/10 15:38:32编辑过]

--  作者:chen_sheng
--  发布时间:2019/10/10 15:38:00
--  
而且这样设置会改变电脑默认的打印机的
    \'Ws.PrintOut(Preview:=True,ActivePrinter:="RICOH Aficio MP 7001")