Не удалось найти способ изменить значение самого поиска, поэтому я поместил рядом с ним статическое поле, которое обновляется при каждом изменении поиска. Вот как я это сделал:
Метод отображения в таблице A:
display [datatype] lookupName(tableA _tableA)
{
;
return tableB::find(_tableA.[tableA id column]).[tableB string column];
}
Метод поиска в таблице B:
static tableB find([datatype] [lookup variable], boolean _forUpdate = false,
ConcurrencyModel _concurrencyModel = ConcurrencyModel::Auto)
{
[TableB] [tableB];
if ([lookup variable])
{
if (_forUpdate)
{
tableB.selectForUpdate(_forUpdate);
if (_concurrencyModel != ConcurrencyModel::Auto)
{
tableB.concurrencyModel(_concurrencyModel);
}
}
select firstonly tableB
where tableB.[lookup column] == [lookup variable];
}
return tableB;
}
Добавлены таблицы A и B в качестве источников данных для формы.
Добавлено строковое поле в форму.
Установить таблицу A в качестве источника данных для поля и lookupName в качестве метода данных.
В поле поиска добавлен модифицированный метод, позволяющий обновить статическое поле:
element.redraw();
Надеюсь, это кому-нибудь поможет.