29.05.2006, 07:03 | #1 |
Участник
|
Вывод данных в отчет
Имеются две таблицы A_Table и A_Line. Необходимо вывести в отчет некоторые данные из A_Table и количество строк таблицы A_Line, для соответсвующей записи A_Table.
Вариант, когда для каждой записи A_Table в методе отчета подсчитывется количество строк (select count(field1) from...) не желателен. Пробовал связать таблицы в дереве объектов (в узле Query у отчета) и полем у таблицы A_Line поставить count(field1) - возникает ошибка ORA-00937, т.е. просит сгрупировать по полю field1. Добавление групировки с использованием QueryRun в классе вызывающем отчет ничего не меняет, т.е. запрос остается темже. Подскажите, пожалуйста, как можно решить исходную задачу. |
|
29.05.2006, 09:52 | #2 |
Участник
|
1. сгруппировать по всем полям A_Table
2. cсмотрите что уходит к ораклу через Мониторинг Запросов SQL |
|
29.05.2006, 10:11 | #3 |
Участник
|
Попробовал следующее: в отчете у источника данных Query поставил OrderMode: Group by и добавил поля в узел Sorting. Запрос от этого не изменился. Получается без QueryRun не обойтись?
|
|
29.05.2006, 10:19 | #4 |
Участник
|
В классе, вызывающем отчет добавил:
queryrun.query().dataSourceNo(1).orderMode(ordermode::GroupBy); queryrun.query().dataSourceNo(1).addSelectionField(FieldNum (A_Table, field1)); В результате в запросе исчезли все поля для выборки кроме field1. Слова group by в отчете не появилось. |
|
29.05.2006, 10:34 | #5 |
Участник
|
А какой базовый тип у поля field1?
Count() надо вызывать для целочисленного или вещественного поля, например, recId. Чтобы поля попали в запрос надо их добавить в Sorting в дизайне или вызвать addSelectionField() для каждого из них
__________________
Axapta v.3.0 sp5 kr2 |
|
29.05.2006, 11:13 | #6 |
Moderator
|
Цитата:
Сообщение от AndyD
Count() надо вызывать для целочисленного или вещественного поля, например, recId.
__________________
Андрей. |
|
29.05.2006, 12:43 | #7 |
Участник
|
А может просто у вас первый датасорс не A_Table?
Тогда это поведение еще можно назвать объяснимым - иначе - вы что-то не так делаете |
|
30.05.2006, 06:35 | #8 |
Участник
|
У меня есть класс, который сначала вызывает диалог для ввода ограничений, затем формируется отчет. В отчете таблицы расположены так: сначала A_Table и у нее dataSource A_Line. Связь между ними по идентификатору записи первой таблицы.
По идее, задача простая и должна быть легко разрешимой! |
|