![]() |
|
|
Регистрация | << Правила форума >> | 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 прописать? |