Hello Gregory,
If I well understand your aim, you could be interested in adapting the
search device I programmed thanks to very good advices from Éric
Chatonnet (as always :-)).
By the way, his tutorial "How to Master Users Data in Entry Boxes"
might interest you; you can find it on his site :
http://www.sosmartsoftware.com/
I have three fields :
- one is the list to be searched in (say "bigList") -- this field
could have its visible property set to false
- a second is a one line field where the user write what he/she is
searching for (say "entry")
- the third is a field where the results of the search appears (say,
"results")
the script of the field "entry" is as follow :
local mySubList,
---------------------
ON rawkeyUp
find empty
REPEAT
find fld "entry" in fld "bigList" of this cd
IF the result is "not found" THEN exit repeat
ELSE
put value(the foundline) & cr after mySubList
END IF
END repeat
put empty into fld "results"
put mySubList into fld "results"
select char 2 to -1 of line 1 of fld "results"
select after fld "entry"
put empty into mySubList
END rawkeyUp
ON returnInField
-- here do what you want with the found word
(I use the found word to find a corresponding card in another stack)
END returnInField
HTH
Best regards from Grenoble
André
Le 26 avr. 08 à 18:25, Gregory Lypny a écrit :
Hello everyone,
I tried to write a handler for one of those nifty search fields that
you find in Mac programs like Mail, where it pulls up found records
as you type a search phrase. I came up with the following.
(Incidentally, I do not use the filter command because it is much
slower than "repeat for each" on big data sets.)
on keyDown
put me into searchString
get fld "Data"
repeat for each line thisLine in it
if thisLine contains searchString then put thisLine & return
after hits
end repeat
if the last character of hits is return then delete the last
character of hits
put hits into fld "Browse List"
put "Found" && recordCount(hits,"f") into fld "Number of Records"
-- a hit count function
pass keyDown
end keyDown
It does the trick, but has a number of glitches that I'd like to
fix. The main one is that it pulls up records that do not contain
the search string. For example, if I type "mit" (without quotes),
it will correctly pull up records that contain Mitchell; however, if
I then type another letter, say "p", it will still pull up the same
records that contain Mitchell even though none of these has the
string "mitp", although some do contain "mit" in one spot and
somewhere else a "p" and others do not contain "p" at all. I must
not be understanding the contains operator.
The other thing that tells me I haven't gotten it right is that the
hit list should get smaller the more characters I type and bigger as
I delete them. Well, most of the time the first character I type
(e.g., just an "m") turns up nothing; I have to type a second
character to get it going. And keyDown does not seem to respond to
the Delete key.
Any suggestions would be most appreciated.
Gregory
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your
subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution