`
Par2: Autocomplete 2007-12-31 -- Sean Cameron You can use one of the third party accessories available, or implement it yourself (which isn't too hard). 1) Use a Combo control 2) In Event:DroppingDown set a flag to indicate that the list has dropped, and populate the queue: droppedDown = 1 Select(?Mail:ToList, 1) 3) In Event:NewSelection if the droppedDown flag is set or the keycode is 37 or 39 (the left and right arrow keys) cycle out. This is to preserve the normal behaviour when the control is being edited like a normal entry control. Otherwise populate the list with matching entries by looping through the file based on the key that contains the lookup field. You can use Instring() or the FuzzyMatch class to determine when to break out of the loop. 4) In Event:ScrollDown select the entry in the list: if (?Mail:ToList{prop:listfeq}){prop:selected} < Records(SuggestionQ) Select(?Mail:ToList{prop:listfeq}, (?Mail:ToList{prop:listfeq}){prop:selected} + 1) end 5) Similarly in Event:Scrolldown: if (?Mail:ToList{prop:listfeq}){prop:selected} > 1 Select(?Mail:ToList{prop:listfeq}, (?Mail:ToList{prop:listfeq}){prop:selected} - 1) end 6) In Event:Accepted get the selected entry to populate into the field and set the flag back to zero: Get(SuggestionQ, 0+(?Mail:ToList{prop:listfeq}){prop:selected}) ! Do any processing needed here, and assign the field from the queue Mail.ToList = Clip(SuggestionQ.description) droppedDown = 0 In the case above SuggestionQ contains all the "suggestions", the combo field is ?Mail:ToList and the field being filled is Mail:ToList. In my case it's a bit more complex as the field can contains multiple entries, seperated by commas or semi colons, and entries can contains names and email address or even combinations thereof. The bulk of the code in my case is processing the list, matching it up with a second queue that the individual addresses are parsed into, and building a new string to assign etc. It's a bit more complex when a any number of different strings can mean the same thing Printed November 24, 2024, 1:09 am This article has been viewed/printed 35218 times. |