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

Вниз

Динамическое получение суммы по полю.   Найти похожие ветки 

 
LordBTR   (2003-10-27 16:33) [0]

Вносим записи в Query (CachedUpdates:=True) в поле sumv.
И как в этой ситуации просуммировать поле, если измененния еще не ApplyUpdates?


 
Danilka ©   (2003-10-27 16:34) [1]

а какой смысл, если они не ApplyUpdates?


 
Sandman25 ©   (2003-10-27 16:38) [2]

Два способа: либо при необходимости вывести сумму быстренько пробежаться по dataset и посчитать ее либо при при открытии dataset посчитать сумму (либо отдельным запросом, либо пробежавшись как в первом способе), а затем при изменении данных отслеживать изменение суммы.


 
LordBTR   (2003-10-27 16:46) [3]

> Danilka
В том и смысл: "эпплаить их или нет?"

> Sandman25
> либо при необходимости вывести сумму быстренько пробежаться по > dataset и посчитать ее
Тут чего то не пойму. Как пробежаться и посчитать? До ApplyUpdates новый запрос измененний не увидит. :(
> при открытии dataset посчитать сумму (либо отдельным запросом
Это делаю.
> а затем при изменении данных отслеживать изменение суммы.
Т.е. AfterInsert sumv=sumv+QuerySUMV.Value;
AfterDelete sumv=sumv-QuerySUMV.Value;


 
Sandman25 ©   (2003-10-27 16:50) [4]

>Тут чего то не пойму. Как пробежаться и посчитать? До ApplyUpdates новый запрос измененний не увидит. :(

Посчитать с помощью First while not Eof do Next в том же Dataset, который проводит изменения.

>Т.е. AfterInsert sumv=sumv+QuerySUMV.Value;
AfterDelete sumv=sumv-QuerySUMV.Value;

Да, примерно так. Только надо еще и на изменение реаигировать, если у Вас есть такая операция с данными.


 
LordBTR   (2003-10-27 16:59) [5]

> Sandman25
Ну вобщем-то я и предполагал, что так придется делать, но надеялся, что есть способ лучше. Я уж и ClientDataSet с аггрегатным полем пытался прикрутить, но он тоже только после ApplyUpdates сумму обновляет. :(


 
LordBTR   (2003-10-27 17:19) [6]

> Sandman25
> Посчитать с помощью First while not Eof do Next в том же
> Dataset, который проводит изменения.
Да. Спасибо. Так получилось. Но все же может можно как-нибудь иначе (покрасивше), а то эта беготня Next по массиву...


 
Sandman25 ©   (2003-10-27 17:23) [7]

[6] LordBTR (27.10.03 17:19)

"Покрасивше" будет вторым способом из [2] Sandman25 © (27.10.03 16:38)
Только мороки больше.


 
LordBTR   (2003-10-27 17:28) [8]

> Sandman25
Ok. Принимаем способ первый. Спасибо.


 
Danilka ©   (2003-10-27 17:29) [9]

[8] LordBTR (27.10.03 17:28)
второй лучше :))


 
LordBTR   (2003-10-28 16:42) [10]

> Danilka [9]
Предложи лучше третий способ самый красивый. :))



Страницы: 1 вся ветка

Текущий архив: 2003.11.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
7-56923
Ihor Osov'yak
2003-09-08 12:20
2003.11.17
COM, ActiveX и записи в реестре..


3-56459
DimChan
2003-10-29 09:12
2003.11.17
AccessViolation


14-56812
Nick-From
2003-10-24 17:52
2003.11.17
FastReport для Delphi 7


7-56934
Nick-Nikolas
2003-09-04 16:59
2003.11.17
Как вырубить клавиши Power, Sleep, Wake


14-56910
McSimm
2003-10-24 20:09
2003.11.17
---|Ветка была без названия|---