![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скрытие повторяющихся значений в 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 отчёта.