Login
`
Templates, Tools and Utilities
|
||
Add a comment to an Icetips ArticlePlease add your comments to this article.
Please note that you must provide both a name and a valid email address in order
for us to publish your comment. Comments are moderated and are not visible until they have been approved. Spam is never approved!
Back to article list Search Articles Add Comment Printer friendly Direct link Par2: Auto-complete a field 1999-03-23 -- Jim Gambon Try this out:
1) You will need a local variable called "FieldPosition" to store
where you are in the entry field.
2) Make sure the "Immediate" attribute is switched on for the entry
field. This is so your program receives a "NewSelection" message for
every keystroke.
3) Here's the tricky part (and cries out for a template I have not had
the chance/time to write):
Note: In this example I have used an Entry field named
"Glo:LoginName",
a Database file named "Users", a UserName Key named "USE:KeyUserName",
and a UserName field in the database named "USE:UserName". You should
be able to change this code for your own use.
In the NewSelection Event handler for the Field Control
! Test for Valid Data Entry Keys Only.
IF (KEYCODE() >= AKey AND KEYCODE() <= SlashKey) |
OR (KEYCODE() >= Shift0 AND KEYCODE() <= ShiftZ)
! Get the data from the Screen
UPDATE(?Glo:LoginName)
! Find out where we are in the Field
FieldPosition = ?glo:LoginName{PROP:SelStart}
! If The Field is not blank
IF LEN(glo:LoginName) > 0
! Clear the Key and Lookup the User
! If a User is Found in the database,
! and it matches the data Entry,
! Fill the field with the new data.
ACCESS:Users.ClearKey(USE:KeyUserName)
USE:UserName = UPPER(glo:LoginName)
SET(USE:KeyUserName,USE:KeyUserName)
IF ACCESS:Users.Next() = Level:Benign
IF CLIP(UPPER(glo:LoginName)) = UPPER(USE:UserName[1 :
LEN(CLIP(glo:LoginName))])
glo:LoginName = USE:UserName
DISPLAY(?Glo:LoginName)
! Next: select the entry field, but
! position the highlights to the part of the
! Field that we "guessed" at.
SELECT(?glo:LoginName,FieldPosition, |
FieldPosition+LEN(CLIPUse:UserName)))
END !IF
END !IF
END !IF
END !IF
I hope this helps out. I hope I haven't forgotten anything in the
code.
Today is November 21, 2024, 6:26 am This article has been viewed 35197 times.
|
|