以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  打印的筛选范围如何不受窗口筛选的影响?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186190)

--  作者:1qaz2wsx
--  发布时间:2023/4/12 7:54: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()

上面这段代码是应用指南中的一段打印代码,在学习中发现个情况:这个代码会在订单表中筛选出符合条件(日期 = # " & Date.Today)的订单做打印处理。但当在订单表中做了筛选,比如筛选出PD1产品订单,这时这段打印代码就会在PD1产品中再筛选出符合条件(日期 = # " & Date.Today)的订单做打印。

请问老师:如何做,才能让打印时筛选范围不受表中筛选操作的影响,只受上面代码中打印条件的控制,筛选的范围总是整个表?


--  作者:有点蓝
--  发布时间:2023/4/12 8:42:00
--  
dim s as string = tables("订单").filter
tables("订单").filter="" 取消筛选
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)
tables("订单").filter = s 还原筛选
Dim 
Proc As New Process
Proc.File = fl
Proc.Start()

--  作者:1qaz2wsx
--  发布时间:2023/4/12 17:14:00
--  
谢谢!明白了。
--  作者:1qaz2wsx
--  发布时间:2023/4/12 18:56:00
--  
再请教老师一个问题:
Dim Book As New XLS.Book(ProjectPath & "Attachments\\订单.xls")
Dim fl As String = ProjectPath & "Reports\\订单.xls"

Dim Filter As String
Filter = "打印日期 : " & Date.Today & ""

Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1, 11).Value = Filter \'写入打印日期(已实现)
Sheet(1, 3).Value = Filter \'写入标题,该如何实现?
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)
App.Visible = True
ShowAppWindow("订单", 2)
Ws.PrintPreview
App.Quit
上面的代码是我学习应用指南后照着做的,实现了选中定单表的某行就可以打印的目的。我的求助是:想把订单表中的日期(格式:2023-04-12)经过格式转化后组成“二0二三年四月份定单”的形式,做为这个表的标题,以上面代码中红色一行的形式写入模板,不知在上面的代码中该加入哪些语句来实现,请老师帮忙。感谢!
[此贴子已经被作者于2023/4/13 8:13:21编辑过]

--  作者:有点蓝
--  发布时间:2023/4/13 8:32:00
--  
http://www.foxtable.com/webhelp/topics/1578.htm

Sheet(1, 3).Value = CLDate(Date.Today) & “定单

--  作者:1qaz2wsx
--  发布时间:2023/4/13 8:55:00
--  
对不起,可能是我没有描述清楚。这个定单的标题我是想用定单表中定单的时间,如:打印的时间是现在(Today),但所打印的定单的时间可能是上月或以前的,这时这个标题是“一九九八年六月份定单”(举例)。
--  作者:有点蓝
--  发布时间:2023/4/13 9:15:00
--  
Sheet(1, 3).Value = CLDate(tables(“订单”).current("日期")) & “定单
--  作者:1qaz2wsx
--  发布时间:2023/4/13 10:16:00
--  
学习了,谢谢老师!