Формула подавления заголовка Crystal Reports Group не работает

StackOverflow https://stackoverflow.com/questions/4052781

Вопрос

У меня есть отчет о том, что группы двумя кодами мы назовем их 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 на каждой странице» в диалоговом окне «Параметры группы».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top