Мы используем элемент управления ReportViewer для размещения и генерации отчетов в приложении Windows.
Отчет представляет собой файл .rdlc (несколько на самом деле с подотчетами) и выполняется локально.
Мне необходимо получить дополнительный контроль над содержимым нижнего колонтитула, который теперь требуется для отображения минимальногоданные диаграммы, которые чувствительны к разделу отчета.
Я понимаю, что не могу поместить диаграмму в нижний колонтитул, но это не проблема, поскольку я могу генерировать изображения, необходимые для нижнего колонтитула,однако мне все еще нужен способ связать правильные изображения в нижнем колонтитуле.
Есть несколько глобальных страниц, которые все содержат одно и то же изображение нижнего колонтитула вместе с глобальным PageNumber.Они составляют первые несколько страниц и последние пару страниц.Так что в основном это нормально.
В середине отчета есть также несколько динамических разделов отчета, это серия вложенных отчетов в Табликс, и каждый из этих разделов, который может занимать несколько страниц, будетиметь определенный нижний колонтитул отчета, установленный ключом строки наборов данных для текущего раздела.Tablix передает этот идентификатор через SubReports в качестве параметра, поэтому у меня возникла идея, что я мог бы использовать функцию вместо прямой установки параметра.
Идея состояла в том, чтобы обновить глобальную переменную в коде, которая могла быбыть доступным в нижнем колонтитуле, чтобы обеспечить динамический элемент для любого пути к изображению.
public shared dim HeaderIndex as Int32 = 0
Public Function HeaderPassThrough(ByVal index As Int32) As Int32
HeaderIndex = index
Return index
End Function
Как вы, возможно, уже знаете, он не работает, когда нижний колонтитул запрашивает значение Code.HeaderIndex, это значениесамый последний раздел для обработки.Таким образом, нижний колонтитул генерируется после основного текста отчета.
Невозможно заранее узнать номера страниц, 1 раздел может перетекать на одну страницу, еще 20, поэтому любой пользовательскийконтент, который я генерирую для перехода в нижний колонтитул, будет сгенерирован на основе этого HeaderIndex, а не номера страницы.
Затем я подумал, есть ли способ получить номер страницы на странице, как в этом случае массивномера страницы / HeaderIndex могут быть сохранены, а затем ссылка на нижний колонтитул.Но, конечно, глобальный PageNumber недоступен в теле отчета.
Мне бы хотелось услышать любые идеи о том, как можно динамически управлять содержимым нижнего колонтитула на основе данных отчета.