1

Konu: textbox da veri tamamlama yada autocomplate

aekadaşlar biyerde görmüştüm ama şimdi nerde hatırlamıyorum

bir textboxa veri girerken eğer girilen veri daha önce girilmişse karşimiza geliyor autocomplate ile ama auto complete girilen her veri dosya update edilmese bile kaydediliyor.

benim istediğim bu auto complate ö<zelliğinin sadece dosyadaki o field alanında varsa karşımıza gelmesi

benim hatırladığım örnekde (sanki burdaymış gibi hatırlıyorum) yazarken direk hem popüp açılıyor hemde textboxın displayvaluesinde o veri gözüküyordu.
yada ben yanlış hatırlıyorum bilemiyorum,

şimdiden bu konuda düşünen kafa yoran fikir veren bütün üstadlara teşekkürler

2

Re: textbox da veri tamamlama yada autocomplate

textbox  ın autocomplete   özelliğine bak.

3

Re: textbox da veri tamamlama yada autocomplate

ercancım ;
autocomplate özelliği o textte girilen tüm verileri getiriyor ben ise o gridin bağlı olduğu field alanından bilgi getirmesini istiyorum.

metin hocam bu konuda(autocomplete) yorum yapmıştı ve pek hoş değildi söyledikleri

4

Re: textbox da veri tamamlama yada autocomplate

daha önceki forumda tarkanın bir kodu vardı.  bilmiyorum sonra buraya kopyalar mı? 
ayrıca  UT de birçok kod bulabilirsin.

5

Re: textbox da veri tamamlama yada autocomplate

aşağıdaki kodu textbox'ın keypress event'ına yazıp dener misin?

*-- keypress event'a yazılacak
Lparameters nKeyCode, nShiftAltCtrl
Local d, chars, al, dsql
al = Alias()
chars = "1234567890*-!'+%&/()=?_#$\qwertyuıopğüasdfghjklşi,zxcvbnmöç.<QWERTYUIOPĞÜASDFGHJKLŞİ;ZXCVBNMÖÇ:>|"

If nKeyCode >= 32 And Atc(Chr(nKeyCode),chars) > 0 And nShiftAltCtrl <= 0
    d = Substr(This.Value,1,This.SelStart) + Chr(nKeyCode)
    d = Iif(Isnull(d)=.T.,"",d)
    al = Alias()
    dsql = Alltrim(d)+"%"
    =SQLExec(Thisform.lnHandle,"select oteladi from otel with (NOLOCK) where oteladi like ?dsql order by oteladi ","crHp")
    If !Empty(al)
        Select Evaluate("al")
    Endif
    If Recc('crHp') > 0
        nCurPos = Len(d) &&+ 1
        This.Value = Alltrim(crHp.oteladi)
        This.SelStart  = nCurPos
        This.SelLength = Len(This.Value) - nCurPos
        Nodefault
    Else
        This.Value = d
        This.SelStart = Len(d)
        Nodefault
    Endif
    If Used('crhp')
        Use In 'crHp'
    Endif
    If !Empty(al)
        Select &al
    Endif
Endif
If Used('crVarmi')
    Use In 'crVarmi'
Endif
If Used('crHp')
    Use In 'crHp'
Endif
If !Empty(al)
    Select Evaluate("al")
Endif

6

Re: textbox da veri tamamlama yada autocomplate

üstad bu satırdaki Thisform.lnHandle ?

=SQLExec(Thisform.lnHandle,"select tahlil from kan with (NOLOCK) where tahlil like ?dsql order by tahlil ","crHp")

lnhandle hangi obje ?

7

Re: textbox da veri tamamlama yada autocomplate

oradaki thisform.lnHandle sql bağlantısı için o formda kullandığım connection handle.
bu gibi bazı yerleri düzeltmen gerekecek.
sql kullanıyorsan buraya kendi connection handle ın yazılacak
eğer sql değil de VFP database kullanıyorsan bu satırı sqlexec... yerine vfp nin select komutu ile değiştir.

8 Son düzenleyen, avrasya34 (21.07.2008 00:13:31)

Re: textbox da veri tamamlama yada autocomplate

Mehmet Ali hocam

kodu şu hale getirdim

dosya=hasta.dbf keypres hasta.adi fieldiyle ilgileniyor


Visual Fox Pro
Lparameters nKeyCode, nShiftAltCtrl

Local giren, chars
chars = "1234567890*-!'+%&/()=?_#$\qwertyuıopğüasdfghjklşi,zxcvbnmöç.<QWERTYUIOPĞÜASDFGHJKLŞİ;ZXCVBNMÖÇ:>|"
If nKeyCode >= 32 And Atc(Chr(nKeyCode),chars) > 0 And nShiftAltCtrl <= 0
    m.giren= Substr(This.Value,1,This.SelStart) + Chr(nKeyCode)
    m.giren = Iif(Isnull(m.giren)=.T.,"",m.giren)
  LOCATE FOR adi=upper(chrtran(alltrim(m.giren),"ğüşıöçi", "ĞÜŞIÖÇİ"))
  IF FOUND()
    If Recc('hasta') > 0
        nCurPos = Len(m.giren) &&+ 1
        This.Value = Alltrim(hasta.adi)
        This.SelStart  = nCurPos
        NODEFAULT
        This.SelLength = Len(This.Value) - nCurPos
    Else
        This.Value = m.giren
        This.SelStart = Len(m.giren)
        Nodefault
    Endif
  ELSE
      This.Value = m.giren
        This.SelStart  = Len(m.giren)
     Nodefault
  ENDIF
Endif
thisform.Refresh

9

Re: textbox da veri tamamlama yada autocomplate

belki bir arkadaşımızın işine yarar. kod textbaxın keypresine yazılacak.
kod ali=ALİ prensibine çevrildi

teşekkürler arkadaşlar