Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Скрытие повторяющихся значений в Quick Report [D7]


Дмитрий_Б ©   (2006-06-12 15:42:00) 

Здравствуйте. Есть отчет, упорядочен по первому столбцу, причем значения в нем повторяются. Чтобы исключить повторения значений в первом столбце, делаю так:

var OldValue : string;

procedure TfReport.DetailBand2AfterPrint(Sender: TQRCustomBand;
 BandPrinted: Boolean);
begin
  OldValue := DataSet.FieldByName('QAZ').AsString;
end;

procedure TfReport.QRDBText14Print(sender: TObject;
 var Value: String);
begin
  if Value = OldValue then
     QRDBText14.Font.Color := clWhite
  else
     QRDBText14.Font.Color := clBlack;
end;

procedure TfReport.FormCreate(Sender: TObject);
begin
  OldValue := '';
end;

В предварительном просмотре все выглядит так как должно быть, но:
Если групп больше одной то все ОК.
Если в первом столбце только одна группа значений, то в просмотре она есть, а при печати не выводится.

Если у кого то есть решение другим способом, поделитесь пож-та.


Дмитрий_Б   (2006-06-12 16:14:00) [1]

ОК, спасибо, сейчас попробую.


Johnmen   (2006-06-12 16:10:00) [2]

Достаточно одного обработчика BeforePrint у детального бенда.
В нём на основе анализа OldValue и DataSet.FieldByName('QAZ').AsString принимаем решение QRDBText14.Enable (или используем Visible).
И ещё важный момент - OldValue должна инициализироваться каждый разперед генерацией отчёта, напр. в BeforePrint отчёта.


Наверх

Титульная страница Поиск, карта сайта Написать письмо