Edit

AutoFillField (windowRef, itemID, tablename)

Definition:  Call this from an ItemHit handler for a code field to invoke an autocomplete dropdown. TableName may be one of "account", "ledger", "product", "job", "department", "name", "list".

Example:  Autocompleting against values from a database table.

on ItemHit:F_TRANS:E_USER1(w, f)
    AutoFillField(w, f, "department")
end

Programmed autocomplete for a validation list: 

As of v8.1.8 the third parameter may be a mnemonic indicating a validation list. I.e. a string of the form "List:listname" where listname is the name of a validation list. This allows list validations to be applied programmatically for all users rather than manually setting up autocompletion for fields for each user.

on ItemHit:F_TRANS:E_USER1(w, f)
    AutoFillField(w, f, "List:branches") // where branches is a defined validation list
end

Note: the list name in "List:branches" above is case-sensitive. Be sure to match the case of your list name.

Supplying full calculated autocomplete data: 

Also as of v8.1.8 the third parameter may be an associative array of codes and descriptions, or a specially formatted tab-delimited table with entries in the form: space code tab space description newline. In these cases the supplied validation data is used to match the input for autocompletion.

property mytext

// autocomplete only AUD control accounts

on Load
    let mytext = Find("account.` `+code+`\t `+description", "currency = `AUD`", 9999, "\n")
end

on ItemHit:F_TRANS:E_USER1(w, f)
    AutoFillField(w, f, mytext)
end

If building autocomplete data this way, you should do it once per session and cache it in a property. Do not build it every time you call AutoFillField as that will not scale.

Availability:  available within MWScript handlers.

See Also:

AutoFillAcctDeptField: Apply auto-complete to a departmental account code edit field

CheckCodeField: Validate a code edit field

ValidateFieldWithValidationString: Programmatically apply a custom validation expression to a field