Показать сообщение отдельно
  #5  
Старый 27.09.2013, 13:57
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Ребят, вот wiki:fkInternalCalc.
Я так понимаю, это мой ключ от замка к первой части задачи.

Только вот справиться с ним не могу.
1) Двойной клик на "открытом" TADOTable (т.е. DataSet заполнен)
2) Добавляю все колонки
3) Выставляю нужным колонкам в свойствах fkInternalCalc
4) Обрабатываю в OnCalcFields подсчёт этой колонки:
Код:
procedure TfMain.ItemsCalcFields(DataSet: TDataSet);
begin
  DataSet.FieldByName('MetallWeight').AsFloat := DataSet.FieldByName('Weight')
    .AsFloat - DataSet.FieldByName('InsertWeight').AsFloat;
  DataSet.FieldByName('Price').AsFloat := DataSet.FieldByName('MetallWeight')
    .AsFloat * DataSet.FieldByName('Pricep1g').AsFloat;
end;
Обычно, при вводе в связанные с DataSet'ом TDBEdit'ы, изменения сразу отображаются в DBGrid. А вот с fkInternalCalc ничего не происходит.

С TADOQuery не работал. Пока попробую вникнуть.
Ответить с цитированием