本文详细介绍在PB 7.0中实现多数据窗口的连续打印
下边我们就通过一个简单的例子来探讨如何实现多个数据窗口连续打印技术。程序首先让用户输入客户号,然后系统根据用户输入的客户号统计出该客户各类商品的购买总数以及订购的每一种商品明细。整个程序的执行如下三副图所示:


在开始之前先让我们看一下例子中用到的三张表的结构以及它们之间的相互关系,见下图:

其中,表Customer和表Sales_Order通过cust_id(客户编号)相关联,表Sales_Order和表Sales_Order_Items通过id(销售定单号)相关联。这三张表取自于PB自带的演示数据库。
首先我们要做的第一件事就是制作两张带检索参数的数据窗口,这个很简单我就不细说了。其中,统计表命名为dw_1,明细表命名为dw_2。同时,为了在打印的时候显示给用户“第几页”“总共多少页”的信息,因此在两张报表每页的底端分别加上一个计算域用来显示当前页数和总页数信息。以统计表dw_1为例,在dw_1中增加两个计算域,取名为page_1 和computer_2。见下图:

接下来要做的就是如何正确给这两个计算域赋值。对于当前页的显示,在前面已经说过了,可以直接在计算域的表达试中调用数据窗口的内嵌函数Page(),因此,在page_1的表达式中写上函数Page()。
现在来实现总页数赋值。我们知道在在数据窗口的内嵌函数中除了能得到当前页的Page()函数,还有一个函数叫PageCount(),它的功能是得到当前报表的总页数。如果说只有一张报表的话直接把它写上就行了,但问题是现在的总页数实际上是当前报表(统计表)总页数加上另一张报表(明细表)总页数之和。为了在统计表中得到明细表的总页数,我们不妨再增加一个计算域next_pagecount,该计算域保存有明细表的页数。见下图:
来源:powerba 作者:夏翔 责编:豆豆技术应用