1

Konu: Nasıl Yapılır?

Adi_soyadi                date_time
------------------------ ---------------------
Ahmet                      2014-08-19 18:32:21
Mehmet                   2014-08-19 18:31:10
Ali                            2014-08-19 18:30:02
Ahmet                      2014-08-19 18:25:55
Mehmet                   2014-08-19 18:20:21

Yukarıdaki şekilde bir gridim var.
Bu gridde adı soyadı aynı olan ve dakika aralığı 10 dk dan az ise  o satırları renklendirmek istiyorum.
(Yukarıdaki bilgilere göre Ahmet satırları aradaki dakika 10 dk dan az olduğu için renkli olmalı)
Nasıl yapabilirim?

2 Son düzenleyen, KONURALP (19.08.2014 16:58:02)

Re: Nasıl Yapılır?

Gridde renk alttaki gibi yapılabilir.

form1.grid1.SetAll("dynamicforecolor", "IIF( KOSUL, RGB(0,0,255), RGB(0,0,0))")
form1.grid1.Refresh()

gibi olur ama koşul işin mantık kurman lazım.

KOSUL :   para.miktar>100    şeklinde olabilir.

3

Re: Nasıl Yapılır?

Benim de ihtiyacım olan koşul için mantık.
Nasıl mantık kurabilirim?

4

Re: Nasıl Yapılır?

Visual Fox Pro
Select t1.*, ;

    date_time - (Select Max(t2.date_time) From myTable t2 ;
    where t1.Adi_soyadi = t2.Adi_soyadi And t2.date_time < t1.date_time) <= 10*60 ;
    or ;
    (Select Min(t2.date_time) From myTable t2 ;
    where t1.Adi_soyadi = t2.Adi_soyadi And t2.date_time > t1.date_time)-date_time <= 10*60 ;
    as renklendir ;
    from myTable t1

5

Re: Nasıl Yapılır?

benim önerim aşağıda, index önemli

Visual Fox Pro
CREATE CURSOR yeni (adsoyad C(10), tarih datetime, renk L)

INSERT INTO yeni VALUES ("Ahmet",CTOT("2014-08-19T18:32:21"),.f.)
INSERT INTO yeni VALUES ("Mehmet ",CTOT("2014-08-19T18:31:10"),.f.)
INSERT INTO yeni VALUES ("Ali",CTOT("2014-08-19T18:30:02"),.f.)
INSERT INTO yeni VALUES ("Ahmet",CTOT("2014-08-19T18:25:55"),.f.)
INSERT INTO yeni VALUES ("Mehmet",CTOT("2014-08-19T18:20:21"),.f.)
INDEX ON tarih TAG tarih
 
m.zamanaraliği=10 * 60
m.çapatarih=DATETIME( YEAR(DATE( ))-100 ,1,1 )
m.çapaadsoyad="ğğğ"
SCAN
  IF yeni.tarih-m.çapatarih > m.zamanaraliği ;
     AND ! m.çapaadsoyad = ALLTRIM(yeni.adsoyad)
    m.çapatarih = yeni.tarih
    m.çapaadsoyad = ALLTRIM(yeni.adsoyad)
  ELSE
    REPLACE yeni.renk WITH .t. IN yeni
    * m.çapatarih = yeni.tarih && eğer her doğan bir sonraki ile
                               && karşılaştırılacaksa çapa değişecek
                               && gruplanacaksa çapa değişmeyecek
  ENDI
ENDSCAN
 
BROWSE
 
form1.grid1.Recordsource="yeni"
form1.grid1.SetAll("dynamicforecolor", "IIF( yeni.renk, RGB(0,0,255), RGB(0,0,0))")
form1.grid1.Refresh()
VFP9 SP2