Crystal reports Crystal Reports组标头抑制公式不适用';行不通
我有一份按两种代码分组的报告,我们称它们为Crystal reports Crystal Reports组标头抑制公式不适用';行不通,crystal-reports,crystal-reports-8.5,Crystal Reports,Crystal Reports 8.5,我有一份按两种代码分组的报告,我们称它们为Parent和Child 在每页的顶部,在页眉中,我想打印父名称 报告中有许多列,当组中断时,我希望再次显示新的子名称以及列标题。报告应如下所示: Parent Name Child Name Col1 Col2 Col3 Col4 Col5 Col6 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX Child Total:
Parent
和Child
在每页的顶部,在页眉中,我想打印父名称
报告中有许多列,当组中断时,我希望再次显示新的子名称以及列标题。报告应如下所示:
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
页眉中有一个变量rowsete
,它包含以下公式:
WhilePrintingRecords;
Shared numberVar nRowCount := 0
然后,在每个细节行以及组页脚1和组页脚2部分中,我有以下RowIncrement
公式:
WhilePrintingRecords;
Shared numberVar nRowCount := nRowCount + 1;
最后,在每个组头2部分中,我有以下条件抑制公式:
WhilePrintingRecords;
Shared numberVar nRowCount;
IF (PageNumber <> 1) AND (nRowCount = 0 OR nRowCount = 0.00) THEN
True
ELSE
False
由于某种原因,我无法理解,在报告的40页左右,我得到了确切的答案;页面标题记录,后跟组标题2记录。如果我创建了一个包含条件抑制公式的公式,它将显示TRUE
,但组标题仍然不抑制
如果我分解代码,使其仅检查其中一个条件(无论是PageNumber 1
还是nRowCount=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);
打印记录时;
共享号码nRowCount;
booleanVar bSuppress:=假;
如果页码为1,则b支持:=真;
如果(b支持),则(如果nRowCount=0,则为真,否则为假);
当显示在屏幕上时,它也会显示True
,但无法抑制组标题
我到底做错了什么?有更好的方法吗?我建议将“父名称”字段放在自己组的组标题中,而不是放在页面标题中。然后,在父组和子组中,选择“在“组选项”对话框中的“在每页上重复组标题”复选框。你知道,这真是令人尴尬——不知何故,我从未注意到“组选项”对话框中的复选框。我在格式组选项中寻找类似的内容。它仍然不能解释为什么代码不起作用,但我很高兴继续。谢谢我很高兴它对你有用。我使用了一些变量,就像您在某些情况下所做的那样,在这些情况下,内置属性并没有完全减少它,而让它正常工作总是一场噩梦。
WhilePrintingRecords;
Shared numberVar nRowCount;
booleanVar bSuppress:= False;
IF PageNumber <> 1 THEN bSuppress:= True;
IF (bSuppress) THEN (IF nRowCount = 0 THEN True ELSE False);