Может я что-то не понял из предыдущего поста?и еще мне не очень понятен смысл переменной aValue = lstValues.Get(i - 1)... По идее она должна возвращать нужное значение из таблицы?
Где тут что про таблицу? Это обычное получение элемента списка по его индексу. Список заранее заполнен.
Либо заполнен, как я это сделал (я заполнил константами, у вас это будут переменные):
lstValues = {x1, x2,..., xN}
Либо вот так заполнен:
lstFieldNames = {"Field1", "Field2", ...}
lstValues = {}
for each aFieldName in lstFieldNames
aField = fTab.FindField(aFieldName)
aValue = fTab.ReturnValue(aField, rec)
lstValues.Add(aValue)
end
Когда он заполнен (любым способом), можно перебирать его элементы в цикле и, если элементы удовлетворяют условию, присваивать значения соответствующим контролам диалогового окна.
Я бы вообще наверное 3 скрипта сделал:
1. Заполнение списка индексов полей по их названиям, чтобы не делать каждый раз FindField;
2. Получение списка значений записи, в которую ткнул пользователь;
3. Проверка всяческих условий и заполнение контролов диалогового окна.
Либо вообще вписал бы в теги контролам соответствующие названия полей. Перебирал бы все контролы, вызывал бы для каждого GetTag, чтобы получить название соответствующего поля таблицы, и выписывал бы значение. Без списков и массивов.