Allo scopo creiamo una tabella (e relativa form) principale che chiameremo "LILMainTable" con i campi codice e descrizione. Creiamo poi una tabella (e relariva form) per la lookup che chiameremo "LILLookUpTable" aventi sempre due campi codice e descrizione.
Facciamo l'override del metodo lookup sul campo del datasource "LILMainTable" così:
public void lookup(FormControl _formControl, str _filterStr)
{
Args args = new Args();
FormRun lookUpForm;
;
args.name(formstr(LILLookUpTable));
args.caller(element);
lookUpForm = new FormRun(args);
lookUpForm.init();
this.performFormLookup(lookUpForm, _formControl);
}
public void closeSelect(str _selectString)
{
LILMainTable mainTable;
FormRun formRun;
super(_selectString);
formRun = element.args().caller();
//recupero il buffer in cui sono posizionato al momento della chiamata al form di lookup
mainTable = formRun.dataSource().cursor();
mainTable.Code = LILLookUpTable.Code; //LILLookUpTable è il nome del datasource della form di lookup contenente i valori correnti selezionati
mainTable.Description = LILLookUpTable.Description;
//refresh del datasource di origine per vedere i valori aggiornati
formRun.dataSource().refresh();
}