1

Konu: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

FORM da SET FILTER TO aa="abc" çalışmıyormu ?

yapıyorum. komuta ragmen tüm kayıtları gösteriyor ?



Teşekkürler.

2

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

sele tableadi
set filter to tableadi.alanadi="abc"
( tableadi.alanadi   c 3    ise )

veya

sele tableadi
set filter to alltrim(tableadi.alanadi)="abc"
( tableadi.alanadi  c 3 den büyük ise  böyle dene )

yukarılarda = dersen "abc"   ile başlayanları görürsün
= yerine birde == dene   




bende alışkanlık olmuş farkında olmadan hep alttakini denerim
sele tableadi
set filter to alltrim(tableadi.alanadi)=="abc"

dikkat buradaki  table.alanadi  string olmalı


formun neresine yazıyorsun? bu kodu o önemli
init te dene sorun oluyor mu ?

3

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

yanlis alanda yapiyorsundur.

'Set filter' kullanma, hele hele grid varsa hic kullanma. Onu yerine alanin indexli ise 'set key to' kullan. Ya da sql ile sec kayitlari oyle goster.

4

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

bu arada çok fazla kayıt olursa
set filter .....     çok yavaş olur

onun yerine bir alana göre indexlemekte fayda var

tasarımda tableadi.alanadi na göre indexlediğin varsayımı ile

sele tableadi
set order to alanadi
set key to "abc"   
daha doğru olur

data çok az ise pratikte pek bir şey farketmez

her durumda mecburen bir zaman ihtiyacın olacak
set order to
set key to   komutlarını öğren
( burda index gerekir )

5

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

Program ilk çalışmaya başladığında da mı INT bölümüne gider ?
SET FILTER i ilk başladığında koyamıyorum.
.txtNo.Value
adlı bir değişkenin değerini kullanıcıdan aldıktan sonra
SET FILTER TO ALLTRIM(kon9.gkod)==ALLTRIM(.txtNo.Value)
u kullanıyorum. Bu komutu Sorgula tuşunun Procedure sinde veriyorum.
SET FILTER TO ALLTRIM(kon9.gkod)==ALLTRIM(.txtNo.Value)
komutunu verdikten sonra BROWSE ile kontrolunu yaptığımda FILTRE çalışıyor.  ama GRID e gittiğinde FILTRE BOZULUYOR.
Class  GRID de bir ekleme daha mı yapmam gerekir ?

Teşekkürler

6

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

Çetin SQL dediğin SQL veri tabanı kullanırken mi kullanabildiğimiz bir komut ?
Ben şu anda .DBF kullanıyorum ?

Size kodu göndermek isterdim ama vaktim olmadığı için eski kodlarda değişiklikler yaparak yeni kodlar oluşturuyorum. Çok karışık şu anda. Yazılı olan kodun ancak % 30 u çalışıyor. gerisi eski kod artıkları.

7

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

çetinin dediği gibi önce  table de  o alana göre indexle

tableadi.alanadi   na göre indexle

sonra alltaki gibi kullan
mutlaka bir şey bozuyordur.
istersen kodu ziple gönder bakalım

sele tableadi
set order to alanadi
set key to "abc"   

daha doğru olur

genelde bu yapıyı öğren bu yapıyı bilmeden foxda program yazmak ölüm
filitreyi bunun altında yine kullanabilirsin

sele tableadi
set order to alanadi
set key to "abc"   
set filter to kosul=1   gibi    yine filitrelersin

8

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

Mükemmelsiniz.
SET KEY TO yu kullandım. sorun çözüldü. Çetin in dediği gibi SET FILTER TO daki hantallık yoksa mükemmel bir komut (SET FILTER TO çok büyük dosyalarda her zaman zaman kaybı yaratıyor)

Teşekkürler

9

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

set filter to  yu tek başına kullanma
data buyuk olursa işin içinden çıkmazsın

sele tableadi
set order to alanadi
set key to "abc"     ( veya bunun yerine "set Key To Range  degisken1, degisken2 " çok bir farkı yok  benzer şeyler)

sürekli kullanman gerekecek şimdiden alış

şimdi baktımda http://msdn.microsoft.com/en-us/library … S.80).aspx   adresinde biraz var

10

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

Bendeki foxpro for windows kitabında da varmış. ama SET FILTER TO ya alışmışık. Sonra bu komutu unutmuşuk.-))

11 Son düzenleyen, ugurlu2001 (26.08.2010 08:56:53)

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

Çetin SQL dediğin SQL veri tabanı kullanırken mi kullanabildiğimiz bir komut ?
Ben şu anda .DBF kullanıyorum ?

SQL "Yapısal Sorgulama Dili"; Hemen tüm programlama dillerinde ve veritabanlarında destekleniyor.

Ben kendi Foxpro bilgimi SQL öncesi ve SQL sonrası diye ikiye ayırıyorum. Forumda değişik defalar bu konuda yorumlar yaptım diye hatırlıyorum.
( söylemsem olmaz iki dönem daha var:
- Çetin Üstat öncesi / sonrası
- Fox4um öncesi / sonrası  smile - Burada bilgi ve tecrübeleri paylaşan herkese sonsuz teşekkürler. -

En özet hali ile foxpro DBF yada SQL Server ( yada her neyse) ne kullanırsan kullan. Mutlaka SQL komutlarını kullan. SQL sorgulamalarından en iyi verimi alabilmen için doğru Field larda doğru INDEX leri kullanman gerekiyor. VFP de buna Rushmore Optimization deniliyor. Bu konuyu araştırmanı ve üzerinde çalışmanı öneririm. İyi bir Rushmore index yapısı ve buna uygun bir sorgu ile yüzlerce megabaytlık verilerde saniyenin 1/100 - 1/10 oranlarında sonuçlar alman mümkün. İyi analiz edilmiş bir veri tabanı yapısı ve relation larıda unutmamak gerek.

Uğur
-------------------------------------------------------------------------------------------------------------
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ü

12

Re: FORM GRID DE SET FILTER TO ÇALIŞMIYORMU ?

set filter to foxpro dos ile rushmor opt. desteklemiyordu, vfp ile destekliyor. ancak ben set filter to olsun olmasın gridlerle ilgili çok problemler yaşadım. mesela bir cursor un tüm kayıtlarını sil, sonra tekrar ekle hiçbirini göstermesin gibi problemler.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com