1

Konu: Data Gridde Current control ve Renk değiştirme.

Merhaba arkadaşlar,Foxpro9 da yine karşılaştığım basit bir problem var.

SQl ile 6 fieldli rapor isimli cursor oluşturuyorum.Gridin tasarım aşamasında 7.kolonum var ve 7.Kolonda Command5 current control olarak duruyor.Forma girişte Sql cümlesi çalışıyor ve rapor isimli oluşan table gride atanıyor.Son olarak;


ThisForm.grd1.Column7.sparse=.f.
ThisForm.grd1.Column7.CurrentControl="ThisForm.grd1.Column7.Command5"

komutu ile Column7 nin current kontrolünü Command5 olarak değiştirmek istediğimde,(SQL çalışınca commad5 gridde gözükmüyor)"Expression evalueted an illegal value" şeklinde hata mesajı veriyor. Buradaki amacım kullanıcıya command5'i tıklatara grid üzerinden istediğim kayıdı seçtirmek.bu işlemi başka bir şekilde yapmak mümkün mü?Birde grid kolon header lerin backcolar yada forecolor özelliğini değiştirdiğim halde renk değişmiyor.üsdatların fikirlerini bekliyorum.

En büyük sermaye nakit,nakit sermaye vakittir...

2

Re: Data Gridde Current control ve Renk değiştirme.

ThisForm.grd1.Column7.CurrentControl="Command5"
olarak dene.
ya da bu işi tasarımda yap.
Header'ların zemin rengini değiştirmek için Grid'in Themes özelliğini .F. yap ve header'lerın backcolor'ına istediğin rengi ata

/o---------------------o\
     www.haser.com
\o---------------------o/

3 Son düzenleyen, cetinbasoz (01.09.2007 15:45:11)

Re: Data Gridde Current control ve Renk değiştirme.

CurrentControl="Command5"
ancak o butona ne gerek var, click zaten o satiri aktif hale getiriyor. Varsa da tasarim sirasinda koy ancak kaybolmasini onle:

thisform.myGrid.RecordSource = ""
* SQL
thisform.myGrid.RecordSource = "crsResult"

AllowCellSelection = .f. yaparsan listbox gibi renklendirecek. Ya da eski yontem ile DynamicBackColor, DynamicForeColor kullan.

Header renklerinin degismesini istiyorsan Themes = .F. ama tavsiye etmem. Oyle yaptiklarina gore bir bildikleri var. Renk yerine headerda resim kullanabilirisin (mesela ben sort edildiginde baslik yanina kucuk asagi/yukari ok resmi koyuyorum, eskiden renk vardi).

4

Re: Data Gridde Current control ve Renk değiştirme.

Üsdatlar zaten tasarımda Command5 var ve görülüyor.SOL cümlesi çalışınca kayboluyor..Command düğmesinde captionu ise "Detay.." Kullanıcı gridde herhangi bir satır üzerinde iken bu düğmeye bastığında daha detaylı bilgi ekranı geliyor.Düğme yi bu amaç için tasarlamıştım..

En büyük sermaye nakit,nakit sermaye vakittir...

5

Re: Data Gridde Current control ve Renk değiştirme.

Sanırım kodla daha iyi anlasilack ne demek istedigim.

Visual Fox Pro
Public oForm

oForm = Createobject("myForm")
oForm.Show
 
Define Class myForm As Form
  DataSession = 2
  Height = 500
  Width = 800
 
  Add Object grd As Grid With Height=450,Width=800,ColumnCount = 5
  Add Object cmd As CommandButton With Caption="Dosya bagla", Top = 460
 
  Procedure Load
    Use (_samples+'data\customer')In 0
    Use (_samples+'data\Orders') In 0
  Endproc
 
  Procedure grd.Init
    With This.Columns(5)
      .Header1.Caption = ""
      .Newobject("btnDetay","detayGoster")
      .CurrentControl = "btnDetay"
      .btnDetay.Visible = .T.
      .Sparse =  .F.
    Endwith
    This.Columns(1).Header1.Caption = "Id"
    This.Columns(2).Header1.Caption = "Sirket"
    This.Columns(3).Header1.Caption = "Irtibat"
    This.Columns(4).Header1.Caption = "Unvan"
    This.RecordSource = ""
  Endproc
 
 
  Procedure cmd.Click
    Thisform.grd.RecordSource = ""
 
    Select Top 1 country,Rand() ;
      FROM (_samples+'data\customer') ;
      ORDER By 2 ;
      INTO Array aCountry
 
    Select cust_id,company,contact,Title ;
      FROM (_samples+'data\customer') ;
      WHERE country == aCountry ;
      INTO Cursor crsCustomer nofilter
    Thisform.grd.RecordSource = "crsCustomer"
    Thisform.grd.Autofit()
  Endproc
 
Enddefine
 
Define Class detayGoster As CommandButton
  Caption = "Detay"
  Procedure Click
    Select * From (_samples+'data\Orders') ;
      WHERE cust_id = crsCustomer.cust_id
  Endproc
Enddefine

Tasarim anini kodda taklit etmek gridler icin zor. Gene de dataenvironment dolu iken bile nasıl olduğu görülüyor sanıyorum. Dosya bagla dedikce farkli data secilip baglaniyor ki o da "Detay"in hala orada kaldıgını gostermek icin. Anahtar SQL oncesi:
recordsource = ""

6

Re: Data Gridde Current control ve Renk değiştirme.

çetin üsdadım yardımlarınız için teşekkür ederim.Yardımlarınız ile sorun çözüldü

En büyük sermaye nakit,nakit sermaye vakittir...