![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Всем привет...
Не могу понять что не так: хочу подсчитать сумму значений выделенных ячеек DBGridEh Код:
var
i:integer;
sum:real;
begin
sum:=0;
for i := 0 to DBG.SelectedRows.Count-1 do begin
sum:=sum + dbg.SelectedRows.DataSet.FieldByName('SUMMA').AsFloat;
DBG.SelectedRows.DataSet.Next;
end ;
ShowMessage(FloatToStr(sum));
end;где DBG - DBGridEh1 глянте свежим взглядом может кто увидит косяк.... Программа считает ,но почемуто такую охинею выдаёт в резульат аж жуть.... |
|
#2
|
||||
|
||||
|
Что-то я не увидел перед for первоначальной установки указателя на начало выделенного блока.
|
|
#3
|
||||
|
||||
|
тьфу не дописал вот так:
Код:
var
i:integer;
sum:real;
begin
sum:=0; dbg.SelectedRows.DataSet.First;
//for I:=1 to dbg.SelectedRows.Count-1 do begin
for i := 0 to DBG.SelectedRows.Count-1 do begin
sum:=sum + dbg.SelectedRows.DataSet.FieldByName('SUMMA').AsFloat;
DBG.SelectedRows.DataSet.Next;
end ;
ShowMessage(FloatToStr(sum));
end;Вот так видно в копи пасте не попало.... Даже с этим результт сумирования неправильный 700+200=900 прога вадает 784.. |
|
#4
|
||||
|
||||
|
Код:
dbg.SelectedRows.DataSet.First; SelectedRows.DataSet указывает на родительский Датасет. В справке к EhLib написано, что с SelectedRows надо работать, как с набором вкладок. Попробуй так, хотя я не тестировал, и почитай внимательно справку к EhLib Код:
//DBG.SelectedRows.DataSet можно заменить на идентификатор родительского Датасета
var
i:integer;
sum:real;
begin
sum:=0;
//for I:=1 to dbg.SelectedRows.Count-1 do begin
for i := 0 to DBG.SelectedRows.Count-1 do begin
GotoBookmark(pointer(DBG.SelectedRows.DataSet.SelectedRows.Items[i]));
sum:=sum + dbg.SelectedRows.DataSet.FieldByName('SUMMA').AsFloat;
// DBG.SelectedRows.DataSet.Next; не нужен
end ;
ShowMessage(FloatToStr(sum));
end;Последний раз редактировалось Viajero, 27.07.2011 в 14:21. |
|
#5
|
||||
|
||||
|
Странно ругается на эту строчку:
Код:
GotoBookmark(pointer(DBG.SelectedRows.DataSet.SelectedRows.Items[i])); Может чего в Uses прописать? |