以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [讨论]动态设置打印条件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68482) |
|
-- 作者:monvzhilei -- 发布时间:2015/5/19 8:17: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()
那么 。我的动态条件是 <产品 = \'PD01\'> ,<产品 = \'PD02\'>,<产品 = \'PD03\'>,<产品 = \'PD04\'>。 我分别将PD01—PD04写入一张表(条件表), 我想动态引用条件表的内容。当成条件。 此主题相关图片如下:1743.gif |
|
-- 作者:monvzhilei -- 发布时间:2015/5/19 8:18:00 -- 以上 特意生成的条件表,, 我如何修改这个代码?
Sheet(3,9).Value = "<日期 = # " & Date.Today & "#>" \'写入打印条件
最关键一点就是如何 将 Date.Today 修改成 我条件表里面的内容。 [此贴子已经被作者于2015/5/19 8:19:35编辑过]
|
|
-- 作者:Bin -- 发布时间:2015/5/19 8:36:00 -- 首先. heet(3,9). 这个坐标不能硬套.根据你具体单元格而定的. 其次.连续的条件用 OR 或者 IN 即可 Sheet(3,9).Value = "<产品 in (\'PD01\',\'PD02\',\'PD03\',\'PD04\'>"
|
|
-- 作者:monvzhilei -- 发布时间:2015/5/19 9:07:00 -- Sheet(3,9).Value = "<产品 in (\'PD01\',\'PD02\',\'PD03\',\'PD04\'>"
上面这个条件。只是指定了一些具体的值。 我如果专门建立一个条件表, 这样,我修改条件。或者增加一些条件值,相对来说就方便很多。
如果这样写,也是可以。但是条件一多。或者变动条件。 还不是非常方便。
|
|
-- 作者:Bin -- 发布时间:2015/5/19 9:09:00 -- Sheet(3,9).Value = talbes("表B").current("列名") 这样直接去表B当前行 某列的值.
|
|
-- 作者:monvzhilei -- 发布时间:2015/5/19 9:33:00 -- 感觉自己折腾。难度就是很大,刚才根据版主提示,测试了一下,还是报错。反复修改,也不见成效。
此主题相关图片如下:2.png |
|
-- 作者:Bin -- 发布时间:2015/5/19 9:35:00 -- 拼接不是这么拼接的,你把整个都作为条件吧. 这样出现In的情况也可以调整. 要拼接要这么写
|
|
-- 作者:狐狸爸爸 -- 发布时间:2015/5/19 9:36:00 -- 动态合成表达式: http://www.foxtable.com/help/topics/1284.htm
|