Autofill Utility
Bob Sneidar
bobsneidar at iotecdigital.com
Thu Jan 23 16:32:32 EST 2020
Couple updates. I added a closeField handler to optionally add new entries to the uniqueValues property. Also rawKeyUp needs a delay so things like backspacing can work.
on closeField
put me into tValue
put the uniqueValues of me into tUniqueValues
if tValue is not among the lines of tUniqueValues then
answer question "Add " & tValue & " to the Autofill list?" with "Cancel" or "Add"
if it is "Add" then
put cr & tValue after tUniqueValues
sort lines of tUniqueValues
set the uniqueValues of me to tUniqueValues
end if
end if
end closeField
ON rawKeyUp
IF the text of me is not empty THEN
wait 30 ticks with messages -- adjust to your liking
autoFill the long id of me
exit to top
END IF
pass rawKeyUp
END rawKeyUp
Bob S
> On Jan 23, 2020, at 11:50 , Bob Sneidar <bobsneidar at iotecdigital.com> wrote:
>
> Hi all.
>
> These scripts may help you if you want to autofill text in a field from a list of prior values. The rawKeyUp handler goes in the field, and the autofill can go anywhere in the message path. You can see how simple this is.
>
> The prerequisite is to have a uniquevalues propery in the field. I have another handler if anyone is interested, which upon openCard queries a database for unique values for a list of fields, and then populates each field's uniquevalues property with the results, but I hesitate to put that handler here because it uses calls to sqlYoga, and some don't use that.
>
> Enjoy!
>
> Bob S
>
> ON rawKeyUp
> IF the text of me is not empty THEN
> autoFill the long id of me
> exit to top
> -- focus on me
> END IF
>
> pass rawKeyUp
> END rawKeyUp
>
> on autoFill pTargetID
> put the text of pTargetID into tText
> put the number of chars of tText into tCharCount
> put the uniqueValues of pTargetID into tValueList
> put lineOffset(tText, tValueList) into tOffset
> if tOffset = 0 then exit autoFill
> put line tOffset of tValueList into tNewValue
> if tText is tNewValue then exit autoFill -- in case we tabbed
> set the text of pTargetID to line tOffset of tValueList
> select char tCharCount +1 to -1 of pTargetID
> end autoFill
More information about the use-livecode
mailing list