![]() |
#3 |
Участник
|
Посмотрите, как реализован метод SysQuery::countPrim() и его вызов в SysQuery::countTotal().
Фактически, вам надо будет организовать только передачу идентификатора поля, по которому будет считаться сумма и задавать для него SelectionField с типом SUM. Обратите внимание, что в этом методе учитывается кол-во датасорсов в Query и если их больше единицы, то подсчет кол-ва идет путем пробега в цикле по всем записям датасорса. Что бы избежать этого, можно проверить наличие датасорсов, присоединенных по inner или outer join и для них так же сделать сброс настроек, а так же добавить в SelectionFields подсчет кол-ва по recId (или, вместо этого, добавить tableID) Еще, остается возможное наличие группировок, которые так же необходимо будет отключать Ну и сам подсчет будет заключаться в передаче в такой метод QueryRun().Query() вашего датасорса с формы, а его вызов вставить в QueryExecute() после super()
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 24.09.2008 в 22:54. |
|
|
![]() |
||||
Тема | Ответов | |||
select sum(amount) | 33 | |||
select sum(amount) from временная таблица | 6 | |||
query grid | 16 | |||
query->DataSource->grid | 2 | |||
Query to Grid ? | 4 |
|