1

Konu: Tarihler Arası Filtre

Tabledeki cari hareket tarihleri için filitre uygulamak istiyorum. (Şu tarihten şu tarihe kadar)
Bunu büyüktür - küçüktür şeklinde yapmayı başaramadım. Sonrada tarihi fieldini char. olarak açıp tarihide 20060501 (01.05.2006) olarak kaydedip index dosyası oluşturdum. Formdan kullanıcının girdiği tarihe göre set filter kullanıyorum. Ancak mutlaka ki daha mükemmel bir yolu vardır. Bu konuda yardımcı olabiliseniz sevinirim.

2

Re: Tarihler Arası Filtre

İnşaallah sorununu doğru anlamışımdır.
dTarih isminde tarih sahan olduğunu varsayarak;

Visual Fox Pro
Set Filter To dTarih >= CTOD('05/06/2006') And dTarih <= CTOD('11/09/2006')
/o---------------------o\
     www.haser.com
\o---------------------o/

3

Re: Tarihler Arası Filtre

Gökçe Özçınar yazdı:

Tabledeki cari hareket tarihleri için filitre uygulamak istiyorum. (Şu tarihten şu tarihe kadar)
Bunu büyüktür - küçüktür şeklinde yapmayı başaramadım. Sonrada tarihi fieldini char. olarak açıp tarihide 20060501 (01.05.2006) olarak kaydedip index dosyası oluşturdum. Formdan kullanıcının girdiği tarihe göre set filter kullanıyorum. Ancak mutlaka ki daha mükemmel bir yolu vardır. Bu konuda yardımcı olabiliseniz sevinirim.


bir suru yolu var tabiki ama
iki tarih arasinda sorgulama yapmak istiyorsan SQL kullan

cari hareket tablon CARIH olsun , alanlarida tarih,ckodu,borc,alacak olsun

Visual Fox Pro
local ldDate1,ldDate2

ldDate1 = {^2006-03-01}
ldDate2 = {^2006-03-31}
select * from carih where tarih between m.ldDate1 and m.ldDate2 into cursor CrsCarih
browse

tabloda filtre yapmak istiyorsan Tarkan ın dedigi

4

Re: Tarihler Arası Filtre

Tarkanın dediği gibi babadan kalma usül "set filter" ile işi çözdüm. bunun içinde tarih fieldini tabloda "date" olarak açmam gerektiğini hatırladım.
Küçük bir sorunum kaldı. Cari hareketlerde "cariadi+tarih"  şeklinde bir index daha doğrusu bir tag oluşturmam gerekiyor.
"INDEX on adi+DTOC(tarih) tag tar" işimi görmüyor. isme göre sıralamasına karşın tarihe göre sıralama yapmıyor. Bu index için nasıl bir komut kullanabilirim yani index tagını "cariadi+tarih" e göre nasıl oluşturabilirim?

Şimdiden Teşekkürler

5 Son düzenleyen, cetinyasar (18.10.2006 11:46:22)

Re: Tarihler Arası Filtre

Visual Fox Pro
INDEX on adi+DTOS(tarih) tag tar


olarak dene o zaman tarih formatını 20061018 olarak çevirecek ve doğru sıralamayı yapar.

6

Re: Tarihler Arası Filtre

Gökçe Özçınar yazdı:

Tarkanın dediği gibi babadan kalma usül "set filter" ile işi çözdüm. bunun içinde tarih fieldini tabloda "date" olarak açmam gerektiğini hatırladım.
Küçük bir sorunum kaldı. Cari hareketlerde "cariadi+tarih"  şeklinde bir index daha doğrusu bir tag oluşturmam gerekiyor.
"INDEX on adi+DTOC(tarih) tag tar" işimi görmüyor. isme göre sıralamasına karşın tarihe göre sıralama yapmıyor. Bu index için nasıl bir komut kullanabilirim yani index tagını "cariadi+tarih" e göre nasıl oluşturabilirim?

Şimdiden Teşekkürler


Merhaba

Sorununu bir şekilde çözmene sevindim. Fakat Set Filter komutu sisteme oldukça yüklenen bir komuttur. Hiç kullanmamak daha iyidir. VFP içerisinde bu komutu kullanmadan işini daha hızlı ve sağlıklı görebileceğin yapılar var. Set Filter kullandığın anda (eğer kayıt sayısı fazlaysa) CPU ve disk durumunun tavan yaptığını görürsün. Bunun yerine yazmış olduğun index komutunu düzenlersen daha iyi olur. Ve sisteme yüklenmeden hızlı bir şekilde işini halledersin. index komutunu INDEX on PadL(adi,30) + DTOC(tarih,1) Tag ADITAR gibi yaparsan ve konumlanmayı bu şekilde yaparsan daha hızlı olur. Bu konuda Softseek ve SET NEAR komutlarını kullanmalısın.