andreybear
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору mdid Попробовал. Не подходит для случаев, когда формула включает в себя данные колонок из других таблиц. В таком случае необходимо обращаться к БД, а так как значения отправляются в БД только по кнопке сохранить (таблица не "привязана" к набору данных), то после onChange пересчет будет произведен, но в БД на тот момент будут все еще старые значения, хотя в таблице новые. Таким образом, к сожалению, пересчет для новых значений так и не произойдет. Хотя, можно попробовать подставить в формулу соответствующие значения, которые есть в текущей таблице, затем уже подставить недостающие данные из других таблиц. И при таком подходе при первоначальной загрузке данных в таблицу также необходимо осуществлять пересчет колонок с формулами, т.к. исходные данные могут измениться к этому времени, значения будут пересчитываться по onChange для конкретной записи, а событие произойдет только тогда, когда пользователь изменит какое-нибудь значение в ячейке. Добавлено: Czechoslovak На сколько я знаю, чтобы добраться до EditValue, которое относится к редактору ячейки (назначается на колонку в целом), необходимо "вызвать" этот редактор методом Show, например, View.Controller.EditingController.Edit.Show, если я не ошибаюсь, затем можно обратиться к свойству EditValue, затем вызвать метод Hide, чтобы скрыть редактор. А к значению ячейки обычно так доступ получаю: View.DataController.Values[RecordIndex,ItemIndex]. Поправьте, если неправильно понял. Цитата: берешь присваиваешь значение и все дела.... | Проблема в том, что не знаю, на какое событие повесить это присвоение. Кстати, если закрыть глаза на различия в хранимом и отображаемом тексте и осуществлять присвоение в onGetDataText, то после того, как пользователь нажимает сохранить и кодом делается пост редактируемой записи, при переходе на другую запись возникает ошибка. Присвоение вычисленного значения выполняется так: View.DataController.Values[RecordIndex,ItemIndex] := AValue; |