1

我有一份按两个代码分组的报告,我们称它们为ParentChild

在每一页的顶部,在页眉中,我想打印父名称。

报告中有许多列,当分组中断时,我想再次显示新的子名称以及列标题。报告应如下所示:

Parent Name
    Child Name
    Col1 Col2 Col3 Col4 Col5 Col6
    XXXX XXXX XXXX XXXX XXXX XXXX
    XXXX XXXX XXXX XXXX XXXX XXXX

    Child Total:             XXXX

    Child Name
    Col1 Col2 Col3 Col4 Col5 Col6
    XXXX XXXX XXXX XXXX XXXX XXXX

但是,如果子组环绕到新页面,我想在再次显示数据之前重新显示子名称和列标题。

为此,我创建了一个包含以下对象的页眉:

Parent Name
    Child Name
    Col1 Col2 Col3 Col4 Col5 Col6

页眉中有一个变量RowReset,其中包含以下公式:

WhilePrintingRecords;
Shared numberVar nRowCount := 0

然后,在每个详细信息行以及 Group Footer 1 和 Group Footer 2 部分中,我有以下RowIncrement公式:

WhilePrintingRecords;
Shared numberVar nRowCount := nRowCount + 1;

最后,在每个 Group Header 2 部分中,我有以下条件抑制公式:

WhilePrintingRecords;
Shared numberVar nRowCount;
IF (PageNumber <> 1) AND (nRowCount = 0 OR nRowCount = 0.00) THEN
    True
ELSE
    False

如果我们在一个全新的页面上,并且还没有打印任何详细记录,那么这个尝试做的是抑制子组标题,以防止发生以下情况:

Parent Name                          ---+
    Child Name                          +-- Page header
    Col1 Col2 Col3 Col4 Col5 Col6    ---+

    Child Name                       ---+-- Group header 2
    Col1 Col2 Col3 Col4 Col5 Col6    ---+

出于某种原因,我无法弄清楚,报告大约有 40 页,但我确实明白了;一个页眉记录,后跟一个组页眉 2 记录。如果我创建一个包含条件抑制公式的公式,它会显示TRUE,但组标题仍然不抑制。

如果我分解代码以便它只检查一个条件(PageNumber <> 1nRowCount = 0),那么组标题 2 会正确抑制。

我什至尝试过这样做来解决问题:

WhilePrintingRecords;
Shared numberVar nRowCount;
booleanVar bSuppress:= False;

IF PageNumber <> 1 THEN bSuppress:= True;
IF (bSuppress) THEN (IF nRowCount = 0 THEN True ELSE False);

True在屏幕上显示时也会显示,但无法抑制组标题。

我到底在这里做错了什么?我可以采取更好的方法吗?

4

1 回答 1

3

我建议将“父名称”字段放在自己组的组头中,而不是页头中。然后,在父组和子组中,选中组选项对话框中的“在每页上重复组标题”复选框。

于 2010-10-29T14:42:01.890 回答