Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

Простой метод просчета сумм значений выделенных строк   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
1-49635
Ilg
2004-01-01 16:29
2004.01.16
Заголовок компонента


1-49530
Zeon
2004-01-02 21:55
2004.01.16
Двойная буферизация


6-49654
Alex_x
2003-11-17 13:30
2004.01.16
Нужно узнать доступенли комп в сети с заданым именем


14-49712
IronHawk
2003-12-11 12:39
2004.01.16
У кого есть код, генератора чисел?


4-49806
Johnson
2003-11-10 18:45
2004.01.16
Как наити нужную программу???