1 Son düzenleyen, avrasya34 (16.01.2007 18:09:03)

Konu: filtreleme hatası (missing operant)

randevu dosyası içinde filtreleme yapmaya çalışıyorum bu filtrelemede 2 seçenek var ve seçenekler optiongroup la yapıldı

ilk seçenekte
buttoncount:7
controlsorch:m.ara1

optionssgrop1.valid :
SELECT randevu
public sart11
*sart11=""
    IF this.Value=1
        sart11 ='tarara=date()'
    ENDIF
    IF this.Value=2
        sart11 ='tarih=date()'
    ENDIF
    IF this.Value=3
        sart11 ='tarih >= date()-7 AND TARIH=<DATE()'
    ENDIF
    IF this.Value=4
        sart11 ='tarih >= date()-15 AND TARIH =< DATE()'
    ENDIF
    IF this.Value=5
        sart11 ='tarih >= date()-30 AND TARIH =< DATE()'
    ENDIF
    IF this.Value=6
        sart11 =""
    ENDIF
IF EMPTY(sart12)
    SET FILTER TO &sart11
    else
    set filter TO &sart11 and &sart12
ENDIF
a=0
count to a
if a<1
wait window "şarta uygun hiç bir kayıt yok" nowa
set filt to
endif
wait window "bulunan kayıt sayısı : =" +str(a) nowa
go top
thisform.refresh


***********************

2.seçenekte
buttoncount:7
controlsorch:m.ara2

optionssgrop2.valid :
SELECT randevu
public sart12
*sart12=""
    if ara2 =1
        sart12="aciklama='Ulaşıldı'"
    endif
    if ara2=2
        sart12="aciklama='Ulaşılamadı'"
    endif
    if ara2=3
        sart12="aciklama='Not bırakıldı'"
    endif
    if ara2=4
        sart12="aciklama='Mesaj bırakıldı'"
    endif
    if ara2=5
        sart12="aciklama='Telefon yanlış'"
    endif
    if ara2=6
        sart12="empty(aciklama)"
    endif
    if ara2=7
        sart12=""
    endif
IF EMPTY(sart12)
    SET FILTER TO &sart12
    else
    set filter TO &sart12 AND &sart11
ENDIF
a=0
count to a
if a<1
    wait window "şarta uygun hiç bir kayıt yok" nowa
    set filt to
else   
    wait window "bulunan kayıt sayısı : =" +str(a) nowa
endif
go top
thisform.refresh


***********************
yapmak istediğim şey şu
kullanıcı eğer tek bir guruptan bir şey seçese onu filtreleyecek her ikisinden seçerse her iki şarta göre filtreleyecek

aslında normal çalışıyor gibi gözüküyor.
tek bir yerde hata veriyor.
birinci guruptan 6 seçilirse yani sart11="" olursa ve 2 guruptan seçim yapınca "(missing operant)" diyor.

hatayı çözemedim. yardım lütfen

form.buffer optimistik
databuffer :5

2 Son düzenleyen, metin (16.01.2007 21:26:47)

Re: filtreleme hatası (missing operant)

Visual Fox Pro
IF this.Value=6

        sart11 =""
ENDIF


yerine

Visual Fox Pro
IF this.Value=6

        sart11 =".t."
ENDIF


yaz

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

3

Re: filtreleme hatası (missing operant)

sağol hocam teşekkürler

4

Re: filtreleme hatası (missing operant)

araya girmis olmayayım ama Metin in
   
      IF this.Value=6
                sart11 =".t."
       ENDIF

onerisi ile akali olarak bende bir hatirlatmada bulunayim

Select SQL dede eger select * from kullanacaksaniz ve  where kosulu gerektiren alan yoksa sorgu suresi uzar o yuzden where .t. diyerek sql kullanmak sorgu süresini onemli derecede dusurmektedir.

5

Re: filtreleme hatası (missing operant)

soykanozcelik yazdı:

araya girmis olmayayım ama Metin in
   
      IF this.Value=6
                sart11 =".t."
       ENDIF

onerisi ile akali olarak bende bir hatirlatmada bulunayim

Select SQL dede eger select * from kullanacaksaniz ve  where kosulu gerektiren alan yoksa sorgu suresi uzar o yuzden where .t. diyerek sql kullanmak sorgu süresini onemli derecede dusurmektedir.


Çok sağolun arkadaşlar. foxa yeni başlayan birisi olarak nasıl teşekkür edeceğimi bilemiyorum.