Формула подавления заголовка Crystal Reports Group не работает
-
27-09-2019 - |
Вопрос
У меня есть отчет о том, что группы двумя кодами мы назовем их 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
В заголовке страницы является переменной RowReset
который содержит следующую формулу:
WhilePrintingRecords;
Shared numberVar nRowCount := 0
Затем, в каждой детали строки, а также групповой нижний колонтитул 1 и групповым нижним колонтитулом 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 страниц в отчет, я получаю именно то, что; Запись заголовка страницы, а затем запись заголовка группы. Если я создаю формулу, которая содержит условную формулу подавления, она отображает 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);
Это также отображает True
При отображении на экране, но не сможет подавить заголовок группы.
Что на земле я здесь делаю не так? Есть ли лучший подход, который я мог взять?
Решение
Я предлагаю положить поле «Имя родительского наименований в заголовок группы своей собственной группы, а не в заголовке страницы. Затем в родительских и дочерних группах выберите флажок «Repear Group Header на каждой странице» в диалоговом окне «Параметры группы».