dbgrid
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
dbgrid
Arkadaşlar herkese kolay gelsin;
Tablomda durum alanım var.Firebirdde boolean alan olmadığı için smallint kullanıyorum ve true için 1 false için 0 değerini kullanıyorum.Dbgridde listeleme yaparken bu alanlar 0 ve 1 şeklinde görülüyor.dbgridde bunu 0 ise "yanlış" 1 ise "doğru" olarak nasıl gösterebilirim.
Yardımcı olan arkadaşlara şimdiden teşekkür ederim.
Tablomda durum alanım var.Firebirdde boolean alan olmadığı için smallint kullanıyorum ve true için 1 false için 0 değerini kullanıyorum.Dbgridde listeleme yaparken bu alanlar 0 ve 1 şeklinde görülüyor.dbgridde bunu 0 ise "yanlış" 1 ise "doğru" olarak nasıl gösterebilirim.
Yardımcı olan arkadaşlara şimdiden teşekkür ederim.
Table yada query ne kullanıyorsan üzerinde çift tıkla ve fields editörde yeni bir field ekle. field'ın adı durumstr olsun. türü calculated olsun. type 'ı string olsun.
Daha sonra dataset'inin oncalcfields olayına aşağıdaki gibi birşey yaz
kolay gelsin. bu arada gride yeni eklediğin fieldları eklemeyide unutma...
Daha sonra dataset'inin oncalcfields olayına aşağıdaki gibi birşey yaz
Kod: Tümünü seç
if table1durum.asinteger=1 then table1 table1durumstr.asstring:='doğru'
else table1 table1durumstr.asstring:='yanlış';
kolay gelsin. bu arada gride yeni eklediğin fieldları eklemeyide unutma...
içerikten kastın tabledeki veriler mi?
eğer verileri değiştirmek istiyorsan bunu zaten yapabiliyor olman gerekiyor.(tabi table kullandıysan) gridin ve tablenin readonly özelliği true ise değiştirebilirsin. eğer kullandığın dataset query ise updatesql kullanman gerekiyor arama yaparsan bulabilirsin...
eğer verileri değiştirmek istiyorsan bunu zaten yapabiliyor olman gerekiyor.(tabi table kullandıysan) gridin ve tablenin readonly özelliği true ise değiştirebilirsin. eğer kullandığın dataset query ise updatesql kullanman gerekiyor arama yaparsan bulabilirsin...
dbgridde hücresel konumlanma yapamazsın diye biliyorum. ama daha esnek olan;
şeklinde bir değişikliği grid zaten algılar.
bu durumda gridin üzerinde olduğu kayıtı değiştirir.
ayrıca belli kriterlere uyan kayıt üzerine dallanma yapıp değişiklikte yapabilirsin;
şeklinde...
Kod: Tümünü seç
table1durum.asinteger:=1;
bu durumda gridin üzerinde olduğu kayıtı değiştirir.
ayrıca belli kriterlere uyan kayıt üzerine dallanma yapıp değişiklikte yapabilirsin;
Kod: Tümünü seç
table1.locate('sicilno',edit1.text,[]);
table1.edit;
table1durum.asinteger:=1;
table1.post;
Bahsi geçen procedure lerde genelde DBGrid in satır ve sütunlarının renklendirilmesi için kullanılır. Hücre içerisinin değişiminden bahsetmek doğru olmaz!. Esas olan DBGrid in DataSource una bağlı DataSet in herhangi bir satırı/kayıtı üzerinde değişikliktir. DBGrid DataSet için sadece kayıtları topluca gösteren bir arayüz/araçtır.comfort yazdı:evet hocam bende dediğin gibi düşünmüştüm ama drawcolumncell veya drawdatacell olayları ile böyle bir müdahale yapılabilir kanaatindeyim genede
İyi Çalışmalar
Not: Bazen çok basit açıklamalar yapmak zorunda kaldığım için kusura bakılmasın. Ya sorunun soruluşundan yada önemli mantık/yöntem hatası bu tür açıklamalar yapmak gerektiriyor

Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!