Страница 1 из 1

Отчет с иерархией

Добавлено: 15 дек 2008, 05:24
Сергей
Здравствуйте.

Не получается создать мастер-детейл отчет по одной таблице, ссылающуюся на саму себя. Точней: не получается выбрать иерархическую связь на детейловом бэнде данных (при выборе связь сбрасывается).

Отчет с иерархией

Добавлено: 15 дек 2008, 10:20
Edward
Здравствуйте.

Для иерархических отчетов Вам необходимо использовать Hierarchical band. Пожалуйста, смотрите группу "Hierarchical Reports" ва программе Demo из стандартной поставки.

Спасибо.

Отчет с иерархией

Добавлено: 16 дек 2008, 10:19
Сергей
Спасибо!

Еще вопрос по дизайнеру. Как создать мастер-детейл отчет, выдающий количество детейлов для конкретного мастера без вывода самих детейлов? Например, количество домов на каждой улице.

Отчет с иерархией

Добавлено: 16 дек 2008, 10:27
Vital
Здравствуйте,
unic писал(а):Спасибо!

Еще вопрос по дизайнеру. Как создать мастер-детейл отчет, выдающий количество детейлов для конкретного мастера без вывода самих детейлов? Например, количество домов на каждой улице.
Сделайте у Detail бэнда нулевую высоту.

Спасибо.

Отчет с иерархией

Добавлено: 17 дек 2008, 03:21
Сергей
Здравствуйте.
Vital писал(а): Сделайте у Detail бэнда нулевую высоту.
В этом случае итог отображается на строку ниже. Есть ли способ вывести его в строке детейла?

+--------------+-------------+
| Улица_____| Домов____|
+--------------+-------------+
| Сибирская_| 120______|
+--------------+-------------+
| Кирова____| 250______|
+--------------+-------------+

Отчет с иерархией

Добавлено: 17 дек 2008, 04:36
Edward
Здравствуйте.

Да, это возможно.

DetailDataBand остается с нулевой высотой, а на MasterDataBand расположите текстовый компонент с функцией:

Код: Выделить всё

{Count(DetailDataBand)}
Спасибо.

Отчет с иерархией

Добавлено: 17 дек 2008, 06:34
Сергей
Спасибо!

Как теперь добавить сортировку по количеству? Если в качестве выражения сортировки использовать

Код: Выделить всё

{Count(DetailDataBand)}
, то отчет не компилируется.

Отчет с иерархией

Добавлено: 17 дек 2008, 07:30
Сергей
И как заставить отображать мастеровые строки вне зависимости от того, есть ли детейлы или нет?
В данном примере, отображаются лишь те улицы, на которых есть дома (не суть, что улиц без домов не бывает).

Также выражение

Код: Выделить всё

{Count(DetailDataBand)}
иногда возвращает нули вместо верных значений. То есть детейлы видно, даже можно посчитать при желании, а Count(DetailDataBand) вернул 0.

Отчет с иерархией

Добавлено: 17 дек 2008, 14:51
Edward
unic писал(а): Как теперь добавить сортировку по количеству? Если в качестве выражения сортировки использовать
{Count(DetailDataBand)}
, то отчет не компилируется.
В этом случае лучше использовать источник данных 'Data from Other DataSource'. Этот источник позволит Вам посчитать суммарные количества по всем деталям без необходимости использовать дополнительный DetailDataBand с нулевой высотой.
unic писал(а): И как заставить отображать мастеровые строки вне зависимости от того, есть ли детейлы или нет?
В данном примере, отображаются лишь те улицы, на которых есть дома (не суть, что улиц без домов не бывает).
Для этого Вам необходимо установить у мастера PrintIfDetailEmpty свойство в true.
unic писал(а):Также выражение
{Count(DetailDataBand)}
иногда возвращает нули вместо верных значений. То есть детейлы видно, даже можно посчитать при желании, а Count(DetailDataBand) вернул 0.
Использование 'Data from Other DataSource' решит и эту проблему.

Если Вам необходимо отсортировать databand по выражению, то в последних пререлиз билдах эта возможность уже реализована. В предыдущих версиях возможен был трюк с заданием условия сортировки в группировке и установкой высоты GroupHeader в 0.

Дайте знать, если необходима дополнительная помощь.

Спасибо.