s.a. herkese iyi çalışmalar. sitede araştırdım ama yapmak istediğimi bulamadım.
TARİH SAAT DERS GÖREVLİ1 GÖREVLİ2 GÖREVLİ3
10.04.2009 10:00 DERS1 AYŞE MUSA ALİ
10.04.2009 10:00 DERS2 ALİ AHMET MEHMET
10:04.2009 13:00 DERS3 ÖKKEŞ OSMAN ÖMER
10.04.2009 13:00 DERS4 OSMAN KEMAL AYŞE
11.04.2009 10:00 DERS5 MUSTAFA AHMET HAKAN
11.04.2009 10:00 DERS6 HAKAN ÖMER FATMA
cxgrid kullanıyorum ve veri tabanı yapısı yukarıdaki gibi. burada yapmak istediğim aynı tarih ve saatte aynı görevliye ikinci bir görev verildiğinde hücrenin renklenmesi (örneğin kırmızı). satır bazında aynı görevliye ikinci bir görev verildiğinde hücreyi renklendirebiliyorum. örneğin aynı tarih ve saatte birden fazla ders olabiliyor. tarih 10.04.2009 saat 10:00 da yapılan görevlendirmelerde aynı görevliye ikinci veya 3 ... görevlendirme yapıldığında hücrenin renklenmesini istiyorum.
yukarıdaki tabloya göre 10.04.2009 saat 10:00 da ders1 ve ders2 de ALİ isimli görevliye 2 defa görev verilmiş. ALİ yazan hücrelerin renklenmesini istiyorum. aynı şekilde 10.04.2009 saat 13:00 da OSMAN isimli görevli, 11.04.2009 saat 10:00 da HAKAN isimli görevli gibi. yardımcı olursanız çok sevinirim.
şartlı renklendirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: şartlı renklendirme
cxgrid için nasıldır bilmiyorum ama normal dbgrid için sana bir yol vereyim buradan çıkarabilirsin sanırım. Yapman gereken if bloğu içine "and" ile birleştirerek alanları vermen...
Birkaç alan için dbgridin satırlarının renklendirilmesi var burada istersen diğer şartların içinde dbgridin satırlarını renklendirebilirsin...
Kod: Tümünü seç
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if DBGrid1.Fields[4].asstring <> 'K' then
begin
DBGrid1.Canvas.Brush.Color := clRed;
dbGrid1.Canvas.Font.Color := clYellow; // Fontun rengini değiştirir..
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end
else if DBGrid1.Fields[7].asstring = '0.00' then
begin
DBGrid1.Canvas.Brush.Color := clYellow;
dbGrid1.Canvas.Font.Color := ClBlack; // Fontun rengini değiştirir..
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end
// else if DBGrid1.Fields[17].asstring ='998' then
// begin
// DBGrid1.Canvas.Brush.Color := clgreen;
// dbGrid1.Canvas.Font.Color:=ClBlack; // Fontun rengini değiştirir..
// DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
// end
else if (gdSelected in state) then // eğer seçili ise
begin
DBGrid1.Canvas.Brush.Color := $00A00000; // zemin rengi Lacivert= $00A00000
DbGrid1.Canvas.Font.Color := clYellow; // font rengi
end
else if (dbgrid1.datasource.dataset.recno mod 2) = 0 then
DBGrid1.Canvas.Brush.Color := $00C8FBFD // Krem rengine yakın= $00C8FBFD
else
DBGrid1.Canvas.Brush.Color := $00BFD7B5; // Açık yeşil gibi= $00BFD7B5
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Re: şartlı renklendirme
hocam teşekkür ederim ama bunun işime yarayacağını sanmıyorum
Re: şartlı renklendirme
OnGetContentStyle eventi işini görür. Kullandıgın cxGrid de ait view nun eventi bu.
Aşagıdaki kodda DURUM adlı integer field da göre düzenlemeyi gösterdim. Sen kendi fieldlarına göre ayarlamayı yaparsın. Ayrıca cxStyleRepository ile istedigin stilleri oluşturabilirsin.
Aşagıdaki kodda DURUM adlı integer field da göre düzenlemeyi gösterdim. Sen kendi fieldlarına göre ayarlamayı yaparsın. Ayrıca cxStyleRepository ile istedigin stilleri oluşturabilirsin.
Kod: Tümünü seç
procedure TEmlakForm.DBCardView2StylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
with DBCardView2.DataController do
if Arecord.Values[GetItemByFieldName('DURUM').Index] = 1 then
Astyle:=cxStyle2
else
Astyle:=cxStyle9;
end;