Konu: Grid SetALL hk.
Kodun üzerinde oynadım ama bir noktadan sonra kolayına kaçıp kodun sahibine sormaya karar verdim
Yapmak istediğim ise şu; Gridin sadece belirli sürunlarına göre renklendirme yapmak istiyorum.
Üstat, şimdiden çok teşekkür ediyorum
* Author : Cetin BASOZ
* url : http://www.fox4um.com/topic/1746/grid-satirlarini-renklendirmek-ve-grid-initini-calistirmak/
Public oForm
oForm = Createobject('myForm')
oForm.Show
Define Class myForm As Form
DataSession = 2
Height=400
Width=400
Add Object myGrid As Grid With ;
RecordSource='Orders', Height=400, Width=400,Anchor=15, ReadOnly=.T.
Procedure Load
Use (_samples+'data\orders')
Endproc
Procedure Init
This.myGrid.SetAll('DynamicBackColor', '(thisform.ColorMe(Orders.Emp_id, .F.))')
This.myGrid.SetAll('DynamicForeColor', '(thisform.ColorMe(Orders.Emp_id, .T.))')
Endproc
Procedure ColorMe(tcValue, tlForeColor)
Local lnBackColor, lnForeColor
lnBackColor = Bitand( Val(Sys(2007,m.tcValue,1,1)), 0x00FFFFFF )
If !m.tlForeColor
Return m.lnBackColor
Endif
Local lnRed, lnGreen, lnBlue,lnAlpha
lnRed = Bitand(Bitrshift(m.lnBackColor,0),0xFF)
lnGreen = Bitand(Bitrshift(m.lnBackColor,8),0xFF)
lnBlue = Bitand(Bitrshift(m.lnBackColor,16),0xFF)
lnAlpha = (Max(m.lnRed,m.lnGreen,m.lnBlue)+Min(m.lnRed,m.lnGreen,m.lnBlue))/2
Return Iif(m.lnAlpha < 0x80, 0xFFFFFF, 0)
Endproc
Enddefine
Aşağıdaki satırı denedim ama sonuç yok ! Sadece o hücreye ait renklendirme yapmak istiyorum!
.Columns(9).SetAll('DynamicBackColor','(ThisForm.MakeColorForGrid(ALLTRIM(STR(CrsTablo.FieldbyNumber)), .F.))')
.Columns(9).SetAll('DynamicForeColor','(ThisForm.MakeColorForGrid(ALLTRIM(STR(CrsTablo.FieldbyNumber)), .T.))')
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır. Türk Atasözü