子报表复合条件筛选 兼答rockyvan

本文的相关文章:
子报表与主报表的链接
使用共享变量实现主报表及子报表之间的数据共享

在CSDN的回复贴中,rockyvan提到一个子报表数据根据主报表的条件进行进一步筛选的问题
http://topic.csdn.net/u/20080328/11/bd343c29-7351-437e-8183-d8d4a4ef1f10.html
我在回复中,想当然地采用了主子报表链接结合一个主、子报表共享变量,按照变量对子报表数据筛选的方式来实现
但是实际使用该方式时,提示“由于该公式必须稍后求值,所以现在无法使用”,所以公式无法使用。

现在简单地描述一下需求,并提出解决方法:




根据上面两张表实现如下效果,其中主报表及子报表通过EmpNo字段链接,但是子报表的数据需要根据PayMonth字段过滤


我们知道对于直接的关联,可以通过主、子报表的链接来实现。
但是对于进一步的条件,如果使用共享变量的形式,会因为共享变量的限制导致无法使用
(共享变量在WhilePrintingRecords时生效,但是记录筛选发生在WhileReadingRecords,早于WhilePrintingRecords)

提供解决方法如下:

对于主、子报表直接关联的字段,加上去,注意红色部分的对应关系



对于要用到的参数字段,无直接对对应关系的,也加上,注意把勾点掉



点确定后,在子报表中进入公式编辑器,可以看到记录选定公式里已经有默认的关联字段限制



此时,手工编辑另外一个字段的条件即可




说明一下:
这个公式中比较繁琐,是因为year,month,默认取出来的值是带格式的
如2008-1-1,取Year为2,008.00,取Month后为1.00,所以要将其处理下才能正确使用。
当然啦,把2008-02取出后转换成number也行,呵呵。

---over---



posted @ 2008-03-30 01:02  阿泰  阅读(1362)  评论(2编辑  收藏  举报