Как сделать подотчет / мастер-деталь в отчетах VS Crystal, не нажимая на нее?

StackOverflow https://stackoverflow.com/questions/1621153

Вопрос

Часто я создаю отчеты в 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: Используйте один набор данных, который включает в себя счет и детали позиции. Сгруппируйте отчет по счету № и поместите итоги в раздел «Заголовок группы». Используйте раздел Сведения для отображения позиций. Помните, что у вас может быть несколько разделов, которые могут быть полезны для отображения вашего графика (во втором разделе заголовка группы).

Возможно, вы захотите встроить запрос в отчет, а не делать это в коде. Это значительно упростит отчет и ваш код и облегчит обслуживание отчета и кода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top