ReportViewer: объединение нескольких отчетов в один отчет - PullRequest
0 голосов
/ 10 апреля 2009

У меня есть отчет, который мне нужно запустить несколько раз, каждый раз вводя разные данные. Каждый отчет имеет заголовок страницы, который однозначно его идентифицирует, фактический объем данных, а затем нижний колонтитул, содержащий количество страниц в формате [x of y pages]. Очевидно, что я мог бы запускать каждый отчет отдельно, но мне нужны номера страниц для всех отчетов. Так что, если я запускаю его два раза, и в первый раз он имеет 3 страницы, а во второй раз - две страницы, нижний колонтитул показывает [x of 5 pages] внизу каждого отчета.

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

Есть предложения? Что-то, что я явно скучаю?

1 Ответ

0 голосов
/ 11 апреля 2009

На случай, если кто-нибудь столкнется с подобной ситуацией, вот мое решение:

Сначала объясню мои наборы данных:

public Foo
{
  string a;
  List<Bar> subInfo;
}

public Bar
{
  string b;
  string c;
}

List<Foo> allFoos;

По сути, вместо того, чтобы иметь объект allFoos, который я передал в основной отчет, а затем пытался передать соответствующий объект Bar в subReport, я создал новый объект:

Public FooBar
{
  string a;
  string b;
  string c;
}

List<FooBar> allFooBars;

Так что в основном я сгладил данные. Оттуда я создал один отчет. Я добавил одну таблицу с «FooBar» в качестве DataSet и передал в коллекцию «allFooBars». Я также создал нижний колонтитул в отчете, чтобы у меня была согласованная страница на всех страницах. Затем я использовал группировку, чтобы объединить объекты "Foo". В группах я установил для параметров «Разрыв страницы при запуске» и «Включить заголовок группы» и «Повторить заголовок группы» значение true. Затем я просто настроил заголовки групп так, чтобы они подделывались как заголовки страниц вместе с заголовками групп (в основном это всего 5 строк заголовков групп, одна из которых была пуста, чтобы обеспечить некоторое пространство).

И это было в основном это.

...