Konu: Grid de satır yada forecolor rengi.
Gridde belirli bir kurala uyan satırın (yada yazının) rengini IIF ile nasıl değiştirebiliriz
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
fox4um » Gridler ve Diğer Kontroller » Grid de satır yada forecolor rengi.
Gridde belirli bir kurala uyan satırın (yada yazının) rengini IIF ile nasıl değiştirebiliriz
ofrm.grd1.SETALL("DynamicBackColor","IIF(LEFT(SIS1.XA,1)=CHR(45),RGB(240,240,200),RGB(210,205,130))","Column")
CHR(45) , yani - karakteri ile başlayan satırların rengini değiştirir.
Teşekkürler ama sanırım komutta bir syntax hatası var.
Hayır hata yok bende çalışıyor. SIS1.XA yı kendi field ınızla değiştirmeniz lazım.
pardon benden kaynaklanan bir parantez hatası
thisform.Grid1.SetAll("DynamicbackColor", "IIF (SUBSTR(sig_gorunen,1,1)='A'), RGB(255,0,0) , RGB(0,255,0))", "Column")
Ancak yukarıdaki şart oluşmasa bile ikinci rengin uygulanması gerekmiyormu. Bende şart oluşsada oluşmasada hiç bir değişiklik olmuyor. Bunu "Afterrowcolchange" yazıyorum. Helpteki örnek çalışıyor ama bunda başarılı olamadım
Normalde setall ve dynamicbackcolor kullanarak. Yalniz dikkat et eger yazdigin iif() te hata varsa VFP hata vermez sadece istedigin renkler uygulanmaz. Tablonun adi myTable olsun. KOntrol etmek istedigin de myTable.myField (mesela myTable.myField > 10 ise kirmizi, degilse beyaz):
thisform.myGrid.Setall('DynamicBackColor', ;
'iif(mytable.myField > 10, 0x0000FF,0xFFFFFF)')
Bunu herhangi bir yerde kurabilirsin (form.init, grid.init. bir buton click vs) ama kurmak icin AfterRowColChange gibi yerleri kullanma.
Bir de farkedebilecegin bir etki rengin seni bir satir farkla takip etmesi, dogru uygulanmasi icin:
*grid.BeforeRowColChange
thisform.lockscreen = .t.
*grid.AfterRowColChange
thisform.lockscreen = .f.
Setall ve iif() ile kurmak bu sekilde, ancak her zaman iif() isi kurtarmiyor ya da iif() cok karmasik hale gelebiliyor oraya yazmak icin (genelde istedigin rengi elde edemedigin hatali expression yazimina neden oluyor). Daha pratik bir yontem:
thisform.myGrid.Setall('DynamicBackColor', ;
'(thisform.GetRowColor())')
* form GetRowColor
if myTable.myField > 10
return rgb(255,0,0) && 0x0000FF ile ayni
else
return rgb(255,255,255) && 0xFFFFFF
endif
GetRowColor bir metod oldugu icin cok daha komplex kontrolleri yapabilirsin ve kolon basina farkli renk uygulayabilirsin (daha dogrusu 'hucre' basina). Ancak cok fazla satir ve kolon goruntuleniyorsa, unutma her refreshte cagirilicak, fazla komplex olmayan hizli kodlar kullan.
merhaba
ben çaylak üyeyim size sormak istedigim fox'da sql kullanımı
iyyi çalışmalar
Hosgeldin:)
Fox SQL, ANSI SQL92'nin bir alt seti (yani onun kadar yetenekli degil) ama yine de cok zengin. Spesifik bir soru sorarsan yanitlayalim, SQL kullanimi belki de basli basina kitap olabilecek kadar genis.
fox4um » Gridler ve Diğer Kontroller » Grid de satır yada forecolor rengi.