Как сгруппировать несколько наборов результатов в отчете?

Я использую 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

Как мне объединить две таблицы и как мне разработать макет для получения отчета в данном примере?

Обновлять:

Как вы могли заметить, я не пытаюсь сделать это с помощью одного выбора. У меня есть две таблицы данных в качестве источника, и я могу объединить их вручную, чтобы получить один источник данных. Я пытаюсь использовать группировку, но мне нужны две группы для каждого сотрудника. Один для работы, другой для обучения. Как я могу использовать функции групп или вложенных отчетов для привязки данных такого типа (и как мне обрабатывать данные, если это необходимо)?


person Serhat Ozgel    schedule 10.11.2008    source источник


Ответы (3)


Использовать вложенные отчеты... Создайте основной отчет, который будет иметь два вложенных отчета. Один вложенный отчет для истории работы и один вложенный отчет для истории обучения. Для основного отчета потребуется запрос, который вернет список людей. Затем для каждого лица в сведениях основного отчета задайте параметр в каждом из дочерних подотчетов, который уточнит запрос в этих двух, чтобы отобразить историю работы или историю обучения только для текущего человека, отображаемого в родительском отчете.

Подробное пошаговое руководство, в котором объясняется, как это сделать, находится на веб-сайте Data Dynamics здесь< /а>. Некоторая обзорная информация также находится здесь

person Scott Willeke    schedule 06.01.2009

Как правило, вы не можете сделать это в одном операторе SELECT. Большинство инструментов отчетности предлагают своего рода «вложенные отчеты» или «внутренние разделы», которые выполняются на другом вопросе SQL и имеют некоторые параметры, передаваемые из основного отчета. Вы можете использовать два подотчета и один основной отчет.

person agsamek    schedule 10.11.2008

Вы должны выбрать эти две таблицы с помощью «левого соединения», создать раздел «GroupHeader/Footer» в отчете и установить «DataField» в разделе «GroupHeader» в поле, которое должно использоваться как группировка.

Посмотрите образцы из ActiveReports, там наверняка есть образец для группировки.

person TcKs    schedule 10.11.2008
comment
Есть, но только для одного типа группировки. Если бы я показывал только историю работы, все было бы в порядке. Но мне нужны две группы для каждого сотрудника, одна для работы и одна для обучения. Как я могу это сделать? - person Serhat Ozgel; 10.11.2008
comment
Вы создаете следующий раздел GroupHeader/Footer и устанавливаете свойство DataField в другой столбец. Вы можете иметь в отчете много разделов GroupHeader/Footer, как хотите. Внимание: источник данных для отчета должен быть отсортирован, иначе вы получили бродячие группы. - person TcKs; 10.11.2008
comment
Я не думаю, что это возможно, потому что ваш способ требует объединения вакансий и тренингов в единый источник данных для их привязки к групповым разделам. Если бы я присоединился к ним, у Джека было бы 2 работы и 2 тренинга в результате декартова произведения. - person Serhat Ozgel; 14.11.2008