Как сгруппировать несколько наборов результатов в отчете?
-
07-07-2019 - |
Вопрос
Я использую ActiveReports с ASP.NET, но думаю, что подойдет любой аналогичный компонент отчетности.
У меня есть два набора результатов для объединения и отображения в одном отчете, например:
Table 1:
Name Job Start End
Jack Some service 1992 1997
Jack Some Sales Exp 1998 2007
Jane Some programming 2000 2003
Table 2:
Name Training
Jack Shiny French Certificate
Jane Crappy database certificate
Jane Some courses in management
И отчет должен выглядеть так:
Jack
Job History:
Some Corp, 1992-1997
Some Sales Exp, 1998-2007
Training History:
Shiny French Certificate
Jane
Job History:
Some programming, 2000-2003
Training History:
Crappy database certificate
Some courses in management
Как мне объединить две таблицы и как мне разработать макет для получения отчета в данном примере?
Обновлять:
Как вы можете заметить, я не пытаюсь сделать это с помощью одного выбора.У меня есть две таблицы данных в качестве источника, и я могу объединить их вручную, чтобы получить один источник данных.Я пытаюсь использовать группировку, но мне нужно два типа групп для каждого сотрудника.Один для работы, другой для обучения.Как я могу использовать функцию групп или подотчетов для привязки данных такого типа (и как мне следует обрабатывать данные, если это необходимо)?
Решение
Используйте вложенные отчеты...Создайте основной отчет, который будет иметь два подотчета.Один подотчет для истории заданий и один подотчет для истории обучения.Для основного отчета потребуется запрос, который вернет список людей.Затем для каждого человека в деталях основного отчета установите параметр в каждом из дочерних подотчетов, который будет уточнять запрос в этих двух, чтобы отображать историю заданий или историю обучения только для текущего человека, отображаемого в родительском отчете.
Подробное пошаговое руководство, объясняющее, как это сделать шаг за шагом, находится на веб-сайте Data Dynamics. здесь.Некоторая обзорная информация также здесь
Другие советы
В общем, вы не можете сделать это с помощью одного оператора SELECT.Большинство инструментов отчетности предлагают своего рода «подотчеты» или «внутренние разделы», которые выполняются по другому вопросу SQL и имеют некоторые параметры, передаваемые из основного отчета.Вы можете использовать два подотчета и один главный отчет.
Вам следует выбрать эти две таблицы с помощью «левого соединения», создать раздел «GroupHeader/Footer» в отчете и установить «DataField» в разделе «GroupHeader» в поле, которое следует использовать в качестве группировки.
Посмотрите примеры из ActiveReports, там наверняка есть образец для группировки.