Konu: bir karakter geriden gelen arama
Merhaba arkadaşlar
Aşağıdaki kod textbaxın keypresine yazılı ve textbaxa girilen her karakterden sonra arama yaptırıyorum.
sorun şurdaki aramayı hep birkarakter geriden yapıyor. yani ben "zeki" yazdığımda o "zek" aramış oluyor.
nedenini bulamadım ...
************************textbox:keypres
#DEFINE DELKEY 127
LPARAMETERS nKeyCode, nShiftAltCtrl
LOCAL cDisplayValue
cDisplayValue = ALLTRIM(THIS.Value)
IF nKeyCode = DELKEY
cDisplayValue = ALLTRIM(THIS.Value)
IF LEN(m.cDisplayValue)=1
cDisplayValue = ""
ELSE
* cDisplayValue = LEFT(cDisplayValue,LEN(cDisplayValue)-1)
ENDIF
ELSE
cDisplayValue = ALLTRIM(THIS.Value)+CHR(nKeyCode)
ENDIF
cDisplayValue = ALLTRIM(THIS.Value)THISFORM.LockScreen = .T.
if EMPTY(m.cDisplayValue)
SELECT no,adi,soyadi,evtel1,evtel2,iştel1,iştel2,gsm1,gsm2,fax,padi,pirki,pcinsi,pcinsiyeti,ilçe,il FROM hasta INTO CURSOR kayit ORDER BY no
Thisform.Grid1.RecordSource="kayit"
endif
if !empty(m.cDisplayValue)
SELECT no,adi,soyadi,evtel1,evtel2,iştel1,iştel2,gsm1,gsm2,fax,padi,pirki,pcinsi,pcinsiyeti,ilçe,il FROM hasta WHERE ;
ATC(m.cdisplayvalue,CHRTRAN(adres,'ıI','iİ'))>0 INTO CURSOR kayit ORDER BY no
Thisform.Grid1.RecordSource="kayit"
endif
if !empty(m.cDisplayValue)
SELECT no,adi,soyadi,evtel1,evtel2,iştel1,iştel2,gsm1,gsm2,fax,padi,pirki,pcinsi,pcinsiyeti,ilçe,il FROM hasta WHERE ;
adi=m.cdisplayvalue OR soyadi=m.cdisplayvalue;
OR pcinsi=m.cdisplayvalue;
OR pcinsiyeti=m.cdisplayvalue;
OR ilçe=m.cdisplayvalue;
OR il=m.cdisplayvalue;
OR m.cdisplayvalue $chrtran[TRANSFORM(no), chrtran(TRANSFORM(no), '0123456789', ''), ''];
OR m.cdisplayvalue $chrtran[TRANSFORM(evtel1), chrtran(TRANSFORM(evtel1), '0123456789', ''), ''];
OR m.cdisplayvalue $chrtran[TRANSFORM(evtel2), chrtran(TRANSFORM(evtel2), '0123456789', ''), ''];
OR m.cdisplayvalue $chrtran[TRANSFORM(iştel1), chrtran(TRANSFORM(iştel1), '0123456789', ''), ''];
OR m.cdisplayvalue $chrtran[TRANSFORM(iştel2), chrtran(TRANSFORM(iştel2), '0123456789', ''), ''];
OR m.cdisplayvalue $chrtran[TRANSFORM(gsm1), chrtran(TRANSFORM(gsm1), '0123456789', ''), ''];
OR m.cdisplayvalue $chrtran[TRANSFORM(gsm2), chrtran(TRANSFORM(gsm2), '0123456789', ''), ''];
OR m.cdisplayvalue $chrtran[TRANSFORM(fax), chrtran(TRANSFORM(fax), '0123456789', ''), ''];
OR ATC(m.cdisplayvalue,CHRTRAN(adres,'ıI','iİ'))>0;
OR ATC(m.cdisplayvalue,CHRTRAN(pal,'ıI','iİ'))>0;
OR ATC(m.cdisplayvalue,CHRTRAN(pnot,'ıI','iİ'))>0;
OR ATC(m.cdisplayvalue,CHRTRAN(pmama,'ıI','iİ'))>0;
OR padi=ALLTRIM(UPPER(m.cdisplayvalue)) OR pirki=ALLTRIM(UPPER(m.cdisplayvalue)) AND hasta.no=no INTO CURSOR kayit ORDER BY no
Thisform.Grid1.RecordSource="kayit"
endif
thisform.Refresh
*************
Şİmdiden teşekkürler