У меня есть отчет о группах по двум кодам, мы назовем их Parent
и Child
.Формула подавления заголовка группы отчетов Crystal Reports не работает
В верхней части каждой страницы, в заголовке страницы, я хочу напечатать родительское имя.
В отчете есть несколько столбцов, и когда группа разбивается, я хочу снова отобразить новое имя дочернего элемента, а также заголовки столбцов. Отчет должен выглядеть следующим образом:
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;
Наконец, в каждой из 2 раздела Заголовок группы, у меня есть следующая условная формула подавления:
WhilePrintingRecords;
Shared numberVar nRowCount;
IF (PageNumber <> 1) AND (nRowCount = 0 OR nRowCount = 0.00) THEN
True
ELSE
False
Что это пытается сделать это подавить заголовок Child группы, если мы находимся на новой странице, и нет детальные записи были напечатаны еще, чтобы предотвратить следующее случилось:
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 <> 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
при отображении на экране, но не в состоянии подавить заголовок группы.
Что я здесь делаю неправильно? Есть ли лучший подход, который я мог бы предпринять?
Вы знаете, это действительно смущает - как-то я * никогда не заметил, что этот флажок установлен в диалоговом окне «Параметры группы». Я искал что-то подобное в параметрах «Формат группы». Он по-прежнему не объясняет, почему код не работает, но я просто счастлив двигаться дальше. – LittleBobbyTables
Я рад, что это сработало для вас. Я использовал переменные, как вы делали в некоторых случаях, когда встроенные свойства не совсем сократили его, и всегда это кошмар, чтобы заставить его работать исправно. – Ray