Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.20;
Скачать: CL | DM;

Вниз

Опять про печать   Найти похожие ветки 

 
Weare ©   (2003-09-26 13:31) [0]

Задача: нужно распечатать из грида фамилии сотрудников и их зарплаты, причем если зарпалата <150, то эти цыфры должны быть красного цвета, а если >500, то синего, остальные черного.
Понятно, что в самом гриде это можно сделать с помощью OnDrawColumnCell, а как этот грид затем вывести на печать с теми же цветами ячеек.


 
Vlad ©   (2003-09-26 13:33) [1]

Скриншот :)


 
Weare ©   (2003-09-26 13:33) [2]

Извините за ошибку в слове ЦЫФРЫ


 
Weare ©   (2003-09-26 13:35) [3]


> Vlad © (26.09.03 13:33) [1]

Спасибо, а если серьезно?


 
Weare ©   (2003-09-26 15:38) [4]

Ну что мастера, неужели никто с подобной проблемой не встречался?


 
Rem ©   (2003-09-26 18:46) [5]

Хм... QuickRep... (см. палитру Quick Report в Delphi)


 
Weare ©   (2003-09-29 18:46) [6]


> Rem © (26.09.03 18:46) [5]
> Хм... QuickRep... (см. палитру Quick Report в Delphi)

Тоже самое, что и с TPrintDbGridEh, весь текст в гриде черно-белый, хотя TPrintDbGridEh отрисовывает цвет всей колонки, если его изначально задать в самом гриде, а не в OnDrawColumnCell.


 
Brahman ©   (2003-09-29 18:51) [7]

Weare © (26.09.03 13:31)
Вообще-то для это существуют различные Report-ы.
Но если очень хочется, то можно.

Через TPrinter, присваивая свойствам печати свойства ячеек DBGrid


 
Чайник   (2003-09-29 19:03) [8]

Но это же просто переменная, а не компонента со своим интерфейсом и средствами предпросмотра. И вообще, если ячеек очень много, то как присваивать.


 
MsGuns ©   (2003-09-29 20:00) [9]

Для делального бэнда пишешь что-то вроде этого:

procedure TfrmINVRep9.QRBand3BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
var
cl: TColor;
i: integer;
begin
if Trim(frmINVRep9.quRep9.FieldByName("MNAME").AsString)>"" then
cl := cl3DLight
else
cl := clWindow;
Sender.Color := cl;
for i := 0 to Sender.ControlCount-1 do
begin
if Sender.Controls[i].ClassType=TQRDBText then
TQRDBText(Sender.Controls[i]).Color := cl;
if Sender.Controls[i].ClassType=TQRLabel then
TQRLabel(Sender.Controls[i]).Color := cl;
if Sender.Controls[i].ClassType=TQRShape then
TQRShape(Sender.Controls[i]).Brush.Color := cl;
end;
end;


 
MsGuns ©   (2003-09-29 20:04) [10]

Только я там фон строки крашу, поэтому все контролы бэнда дергаю. Тебе проще. Трогай только те TQRDBText`ы, которые тебе надо.
Ну, и надо не Color, а Font.Color, ессно


 
Weare ©   (2003-09-30 10:31) [11]


> MsGuns © (29.09.03 20:00) [9]
> Для детального бэнда пишешь что-то вроде этого:...

Огромное спасибо, сейчас попробую. Появилась куча вопросов, но если я их не раъясню для себя, то ты уж не обижайся - буду допытываться.


 
Чайник   (2003-09-30 11:21) [12]

Все ОК.
MsGuns ОГРОМНОЕ СПАСИБО !!!



Страницы: 1 вся ветка

Текущий архив: 2003.10.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
1-65546
Tetros
2003-10-06 19:06
2003.10.20
Исполняемый код!


3-65394
AccessHelp
2003-09-26 18:30
2003.10.20
Access


8-65557
Mr.ElectroNick
2003-06-14 10:19
2003.10.20
Изменение размера компоненты (от TImage) в RunTime


1-65481
нет
2003-10-08 17:21
2003.10.20
Экспорт в Эксель когда его нет


1-65456
Nikolai_S
2003-10-07 12:45
2003.10.20
Проблема с потоком