Как сделать подотчет / мастер-деталь в отчетах VS Crystal, не нажимая на нее?
-
06-07-2019 - |
Вопрос
Часто я создаю отчеты в Crystal Reports в Visual Studio и хочу иметь данные типа master-detail или типа 1-много. Примерно так:
Invoice Number 13245
Total: $1,000,000
Date Raised: 1-Jan-1989
Date Due: 1-Jan-2019
Line items:
# Desc Cost
1 Hat 23.00
2 Gloves 7.00
3 Walking Stick 999,970.00
Я мог бы использовать один набор данных для чего-то такого простого, а затем сгруппировать по «родительским» значениям, но обычно у меня есть несколько типов строк подробностей или мне нужен график для записей подробностей, или по любой причине я хочу иметь два наборы данных: один для родительских записей и один для дочерних записей.
Я всегда подходил к этому так, чтобы основывать отчет на одном наборе данных, добавлять подотчет к отчету и использовать другой набор данных для дочерних записей. Это работает нормально и выглядит правильно - то есть, когда я запускаю отчет, я вижу все данные в одном представлении, с разделом сведений, расширенным, чтобы соответствовать всем записям. Тем не менее, подотчет всегда кликабелен, и это моя проблема. Если пользователь нажимает на вложенный отчет, то есть на дочерние записи или график или что-то еще, что у меня есть, они попадают в вложенный отчет. Это странно для них, потому что они видят новую «страницу», на которой есть только детали из этого раздела. Р>
Что мне действительно нужно, так это чтобы мой отчет основывался на нескольких наборах данных, точно так же, как я делаю это сейчас с подотчетами, но для того, чтобы пользователь не мог щелкнуть эти подотчеты и углубиться в них. Я никогда не знал, как это сделать. Это потому, что я просто неправильно все подхожу, или просто ограничение Crystal Reports, или есть решение?
Я использую Crystal Reports, поставляемый с Visual Studio 2005.
Решение
Двойной щелчок по вложенному отчету всегда открывает вкладку детализации - это особенность продукта.
Вариант 1: Воспользуйтесь функцией детализации и используйте ее для повышения удобства пользователей.
Вариант 2: Используйте один набор данных, который включает в себя счет и детали позиции. Сгруппируйте отчет по счету № и поместите итоги в раздел «Заголовок группы». Используйте раздел Сведения для отображения позиций. Помните, что у вас может быть несколько разделов, которые могут быть полезны для отображения вашего графика (во втором разделе заголовка группы).
Возможно, вы захотите встроить запрос в отчет, а не делать это в коде. Это значительно упростит отчет и ваш код и облегчит обслуживание отчета и кода. Р>