Foxtable(狐表)用户栏目专家坐堂 → [讨论]动态设置打印条件


  共有2814人关注过本帖树形打印复制链接

主题:[讨论]动态设置打印条件

帅哥哟,离线,有人找我吗?
monvzhilei
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1386 威望:0 精华:0 注册:2015/4/14 17:39:00
[讨论]动态设置打印条件  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1386 威望:0 精华:0 注册:2015/4/14 17:39:00
  发帖心情 Post By:2015/5/19 8:18:00 [只看该作者]

以上 特意生成的条件表,, 我如何修改这个代码?

 

Sheet(3,9).Value = "<日期 = # " & Date.Today & "#>" '写入打印条件

 

最关键一点就是如何 将 Date.Today 修改成 我条件表里面的内容。

[此贴子已经被作者于2015/5/19 8:19:35编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/19 8:36:00 [只看该作者]

首先.   heet(3,9).  这个坐标不能硬套.根据你具体单元格而定的.

其次.连续的条件用 OR 或者 IN 即可 

Sheet(3,9).Value = "<产品 in ('PD01','PD02','PD03','PD04'>"

 回到顶部
帅哥哟,离线,有人找我吗?
monvzhilei
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1386 威望:0 精华:0 注册:2015/4/14 17:39:00
  发帖心情 Post By:2015/5/19 9:07:00 [只看该作者]

Sheet(3,9).Value = "<产品 in ('PD01','PD02','PD03','PD04'>"
 
 
上面这个条件。只是指定了一些具体的值。  我如果专门建立一个条件表,  这样,我修改条件。或者增加一些条件值,相对来说就方便很多。
 
  如果这样写,也是可以。但是条件一多。或者变动条件。  还不是非常方便。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/19 9:09:00 [只看该作者]

Sheet(3,9).Value =  talbes("表B").current("列名")

这样直接去表B当前行 某列的值.

 回到顶部
帅哥哟,离线,有人找我吗?
monvzhilei
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:201 积分:1386 威望:0 精华:0 注册:2015/4/14 17:39:00
  发帖心情 Post By:2015/5/19 9:33:00 [只看该作者]

感觉自己折腾。难度就是很大,刚才根据版主提示,测试了一下,还是报错。反复修改,也不见成效。

 


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/19 9:35:00 [只看该作者]

拼接不是这么拼接的,你把整个都作为条件吧.  这样出现In的情况也可以调整.
要拼接要这么写

Sheet(3,9).Value = "<产品 ='" &  talbes("表B").current("列名") & "'>"


你连基本知识都没掌握

建议先按部就班看一下我们的帮助
打开软件按F1或者点击左上角的小问号,可以打开非常详细的图文帮助

也可以看一下教程视频
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=67818

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/5/19 9:36:00 [只看该作者]

动态合成表达式:

http://www.foxtable.com/help/topics/1284.htm

 


 回到顶部