Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
ВнизПростой метод просчета сумм значений выделенных строк Найти похожие ветки
← →
Rafe (2003-12-21 21:39) [0]Добрый день! Существует ли какой-нибудь способ просчета суммы значений какого-либо поля выделенных строк в гриде, и чтобы все это просиходило в реальном времени. Т. е. хочется сделать так, чтобы по мере выделения пользователем строк считалась сумма значений какого-либо поля выделенных в данный момент строк.
Есть способ:
For i:=0 to Form1.DBGrid1.SelectedRows.Count-1 do
begin
Form1.DBGrid1.DataSource.DataSet.GotoBookmark(pointer(Form1.DBGrid1.SelectedRows.Items[i]));
/* и так в цыкле перебирать значение и суммировать
end;
Но при таком способе сбивается курсор при возвращении курсора на первоначальное значение методом Locate, возникает смещение курсора на центр грида, что не очень хорошо.
Кстати я в место обычного DBGrid использую DBGridEh. Может с его помощью можно как-то решить получше.
Подскажите пожалуйста, наверника кто-то решал такую задачу.
← →
Ega23 (2003-12-22 10:34) [1]
> For i:=0 to Form1.DBGrid1.SelectedRows.Count-1 do
> begin
Form1.DBGrid1.DataSource.DataSet.DisableControls;
> Form1.DBGrid1.DataSource.DataSet.GotoBookmark(pointer(Form1.DBGrid1.SelectedRows.Items[i]));
.....
//После Locate
Form1.DBGrid1.DataSource.DataSet.EnableControls;
← →
Плохиш_ (2003-12-22 10:40) [2]>Ega23 © (22.12.03 10:34) [1]
1. DisableControls до цикла, а EnableControls после возврата на первоначальную запись
2. возникает смещение курсора на центр грида Это не решает.
← →
Johnmen (2003-12-22 10:46) [3]>Rafe
Обработать события клавиатуры и мыши (DBGrid1), могущие привести к изменению количества выделенных записей.
Если такое событие приводит к изм-ю кол-ва записей, то соответственно корректировать предварительно заведенную переменную для суммы значений...
← →
Sandman25 (2003-12-22 10:49) [4][3] Johnmen © (22.12.03 10:46)
Развитием этой идеи будет наследование от DBGridEh с добавлением нового события SelectedRowsChanged.
← →
Ega23 (2003-12-22 10:49) [5]
> Плохиш_ (22.12.03 10:40) [2]
Да, промазал со вставкой. Всё верно говоришь.
← →
Johnmen (2003-12-22 10:56) [6]>Sandman25 © (22.12.03 10:49)
Совершенно верно. Но, видимо, автору ещё рано про это :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c