1

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

2

Re: Grid de satır yada forecolor rengi.

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.

3

Re: Grid de satır yada forecolor rengi.

Teşekkürler ama sanırım komutta bir syntax hatası var.

4

Re: Grid de satır yada forecolor rengi.

Hayır hata yok bende çalışıyor. SIS1.XA yı kendi field ınızla değiştirmeniz lazım.

5

Re: Grid de satır yada forecolor rengi.

pardon benden kaynaklanan bir parantez hatası sad

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

6

Re: Grid de satır yada forecolor rengi.

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):

Visual Fox Pro
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:

SQL
*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:

Visual Fox Pro
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.

7

Re: Grid de satır yada forecolor rengi.

cihan1963 yazdı:

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.