以下是关于报表设计部分,教程的内容,能很好的解决关联表报表设计问题,但有一个非常大的问题,就是在报表中有很多"0"显示, 有什么办法可以使当"0"时不显示呢?谢谢!在父方设计
在子方设计一对多报表有一个不足,就是每次只能打印父方一条记录,对于批量打印报表非常不便。为解决这个问题,我们也可以考虑在父方设计报表,不过相对要繁琐一些。
要在父方设计一对多报表,必须掌握FindText函数,我们知道FindText可以按照指定的条件从指定表中返回指定列的内容,而且可以用参数决定返回第几个符合条件的数据,例如:
FindText("入库明细","存货编码","入库单编号","=",[入库单编号],1)
表示从入库明细表中找出第一个入库单编号等于当前入库单编号的记录,并返回该记录存货编码列的内容。
FindText("入库明细","数量","入库单编号","=",[入库单编号],6)
表示从入库明细表中找出第六个入库单编号等于当前入库单编号的记录,并返回该记录数量列的内容。
利用FindText设计一对多的关联报表时,首先应该估计父方每条记录最多可能对应子表中多少条记录,例如一个入库单,最多可能包括多少种产品,假定这个最大数为Rows,子表最大的列数是Cols,那么就在报表的细节区绘制一个(Rows+1) * Cols的表,第一行打印子表的列标题,其他各行用FindText函数调用子表数据进行打印,如下图所示。为了提高效率,我们可以先设置好第二行的对象,然后复制、粘贴,将新粘贴的对象拖到第三行,然后稍作修改即可,其他各行也用类似的方法处理。
![](http://www.egrid2000.com/dvbbs/UploadFile/jpg/1111_1226728689.jpg)
上图中,第2行第3列的内容为:
FindText("入库明细","规格","入库单编号","=",[入库单编号],1)
第7行第6列的内容为:
findtext("入库明细","数量","入库单编号","=",[入库单编号],6)
其他单元格的内容类推,下面是打印效果: