我已经制作了一份报告,显示某些产品在特定时间段内的交易。
简化它;它基于3个表:交易,产品和客户。事务分别通过密钥ProductID和CustomerID连接到产品和客户。该产品可供多个客户使用,因此客户与产品之间不存在联接。
报告的结构如下:
Report Header:
-Group Header 1 - CustomerID (prints name, id etc)
--Group Header 2a - Product Code (prints name, description..)
--Group Header 2b - sub report GetOpeningBalance
---Group Header 3 - Transaction Date
----Details (nothing printed)
---Group Footer 3 - Prints transaction date, details, new balance
--Group Footer 2 - Prints Product closing balance (opening - transactions).
-Group Footer 1 - Prints nothing.
Report Footer - prints nothing.
子报告GetOpeningBalance调用存储的程序并在与期初余额对应的共享变量中返回一个数字。然后,每个交易递增/递减,最后显示期末余额。
现在选择公式基于:客户,产品和日期范围(到/来自)。客户和产品可以是离散的,范围的或离散的+范围值。
这很好用;它显示了在给定和显示的数字范围内发生的产品交易。但客户希望它能显示所有产品;即使在那段时间内没有发生任何交易。例如他们有股票;但没有进/出口,所以开盘和期末余额相等。
所以解决这个问题;我删除了选择标准中的日期范围参数(因此它返回产品的所有交易),然后抑制了超出所需日期范围的任何明细行。我已相应地修改了运行的总公式,因此它们只包含“显示”的事务。
现在我遇到了奇怪的行为。完整的组可以在下一页复制。假设产品1-9打印在第1页,您希望第2页从产品10开始,依此类推。但是产品1-9是印刷的;但是在第二页开始时再次打印产品8和9。它打印完整部分,包括正确的总数。
这种行为不一致;它不会在每个页面或每个日期范围/产品选择中都这样做。
我在“区域专家”和“群组专家”中尝试勾选/取消勾选。我也尝试删除一些额外的组和细节,试图缩小它无济于事。
是否有任何选项或设置可能导致这些群组重新打印?
在这类问题中,我通常会使用子报告来获取详细信息部分;然而,由于产品和客户之间没有直接联系,因此无法实现。
答案 0 :(得分:0)
今天我有空闲时间玩这个。
我发现用2b切换组头2a ;以便子报表在产品详细信息标题之前停止此行为发生。
现在进行测试,测试,测试!