11.02.2004, 09:33 | #1 |
Участник
|
Агрегация в форме
Не могу создать простейшую форму с 2-мя полями: "Группа номенклатуры", "Заказано за период".
Т.е. в форме нужно показать список групп номенклатуры и для каждой группы - агрегированную сумму по полю SalesLine.SalesQty (причем с фильтрацией строк заказов за указанный период "ДатаС" и "ДатаПо" - эти поля задаются в верхней части формы). Какой подход для создания подобный формы лучше применить? С уважением. |
|
11.02.2004, 10:42 | #2 |
Участник
|
Я бы использовал временную таблицу или view в качестве DataSource формы + класс в котором производится выборка записей во временную таблицу или View согласно необходимым критериям и параметрам группировки.
|
|
11.02.2004, 10:53 | #3 |
Участник
|
2DMA:
Вариант с временной таблицей для датасорса формы понятен. Пока рассматриваю его как последний из вариантов решения, поскольку хочется решить задачу без создания временных таблиц. Неужели подобная проблема не решается без создания врем.таблиц, например, дисплэй-методами или еще как-то? Вью тоже пробовал. Но там проблема в том, что вью ничего не знает о параметрах на форме (ДатаС и ДатаПо). Та эе проблема с дисплей-методами на уровне таблицы, т.к. таблица также ничего не знает об интервале дат, указанных на форме (по крайней мере, не знаю как заставить дисплэй-метод увидеть эти параметры). |
|
11.02.2004, 12:48 | #4 |
Moderator
|
Можно попробовать использовать в качестве datasource таблицу InventItemGroup и написать на ней display-метод, в котором заджойнить SalesTable (с фильтром по интервалу дат), SalesLine и InventTable (с фильтром по группе) и просуммировать SalesQty. Но тормозить будет, наверное...
__________________
Андрей. |
|
11.02.2004, 12:51 | #5 |
NavAx
|
Помоему этот вопрос задается раз в пол года. Ответ всегда один:
qbDS.addSelectionField(fieldId , SelectionField::Sum ) |
|
11.02.2004, 12:58 | #6 |
----------------
|
Предлагаю такой вариант:
1. Создать Query (в AOT или из кода), который получал бы нужные вам данные за какой-то предопределенный период. 2. Использовать этот query в своем DS на форме. 3. При изменение дат в форме обновлять значение range и данные в гриде. |
|
14.09.2005, 10:25 | #7 |
Участник
|
Правильно ли я делаю?
PHP код:
5 полей из журнала отображаются нормально, а сумма всегда нулевая. Трасернул запрос, он правильный и возвращает правильные суммы. |
|
14.09.2005, 10:38 | #8 |
Moderator
|
Нет, так нельзя. Нужно писать display-метод на VendPackingSlipJour, возвращающий сумму по строкам отборочных накладных, и его уже класть на форму.
__________________
Андрей. |
|
14.09.2005, 15:17 | #9 |
Участник
|
спасибо! так и сделал.
|
|
|
|