|
#1
|
|||
|
|||
Обработка данных
Здравствуйте. Есть база данных access, подключаюсь через ado, отображается через dbgrid. Нужно после ввода данных в определенные ячейки сделать некоторые математические операции и данные записать в другие ячейки. Написал
Код:
procedure TForm3.Button1Click(Sender: TObject); var v,sh:integer; //высота и ширина рамки l:extended;//длина рамки begin button1.Visible:=false; dbnavigator1.Visible:=false; adotable1.Open; dbgrid1.Columns[3].Visible:=true; dbgrid1.Columns[4].Visible:=true; dbgrid1.Columns[5].Visible:=true; adotable1.First; adotable1.Edit; adotable1.RecNo:=1; adotable1.Fields[1]; v:=adotable1.Fields[1].AsInteger-97; adotable1.Fields[4].AsInteger:=v; sh:=adotable1.Fields[2].AsInteger-97; adotable1.Fields[5].AsInteger:=sh; l:=(Adotable1.Fields[1].AsInteger+8+Adotable1.Fields[2].AsInteger+8)*2*Adotable1.Fields[3].AsInteger/1000; adotable1.Fields[6].AsExtended:=l; end; Но данный код обрабатывает только 1-ую строку, а нужно чтобы обрабатывал все заполненные строки. Помогите пожалуйста. Последний раз редактировалось Admin, 04.03.2011 в 11:32. |
#2
|
||||
|
||||
Надо делать не так. Вам нужно добавить в AdoTable вычисляемое поле, и в специальном событии OnCalcFields проводить нужные вычисления.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
||||
|
||||
Код:
while not ADOTable1.Eof do begin ........ ADOTable1.Next end; Последний раз редактировалось Admin, Сегодня в 10:32. |
#4
|
|||
|
|||
Цитата:
|
#5
|
|||
|
|||
Цитата:
Что-то не получается. |