Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.023 c
3-56528
Шурик Ш
2003-10-29 17:04
2003.11.17
Добавление алеаса


6-56792
Urvin
2003-09-20 20:51
2003.11.17
Две посылки, один прием


3-56441
CyBeR
2003-10-25 18:16
2003.11.17
Открытие .xls-файла через TTable


1-56635
Jee
2003-11-05 14:21
2003.11.17
Редактор свойств


3-56455
Vick
2003-10-29 12:42
2003.11.17
Как отследить передвижение по записям в DBGrid




   Наверх