Динамическая генерация таблиц в XAML

25.10.2013

Иногда при проектировании WPF приложений возникает необходимость отображения таблиц разной конфигурации для формирования отчётов и отображения данных. Cтандартными средствами Visual Studio добиться нужного результата не всегда представляется возможным.

XAML Report

Можно добавить объекты на форму программным способом, непосредственно в коде программы в процессе исполнения.

Плюс данного метода – это использование минимального набора ПО. Но при построении большой таблицы он займёт слишком много времени. Так же потребуется реализация доступа к таблицам с данными и формирование циклов выборки. А при дальнейшем изменении структуры придётся перестраивать всё заново.

Другой способ получить красивую нестандартную таблицу – использование FastReport.NET.

Открываем дизайнер отчета, создаём источник данных и добавляем объекты: заголовок отчёта, заголовок страницы, данные, подвал страницы и другие при желании. Формируем отчёт и сохраняем его в формате XAML. Для этого жмём кнопку «Предварительный просмотр»(Ctrl+P), далее «сохранить» и выбираем пункт «Файл XAML». Созданный шаблон отчета можно сохранить для последующего использования.

Можно встроить FastReport.NET в создаваемую программу. В ходе работы настраиваем таблицу в редакторе или программно, экспортируем в файл и загружаем сразу в WPF. Код экспорта представлен ниже:

// prepare a report
report1.Prepare();
// create an instance of XAML export filter
FastReport.Export.XAML.XAMLExport export = new FastReport.Export.XAML.XAMLExport();
// export in xaml
report1.Export(export, "result.xaml"); 

После экспорта сразу можно произвести загрузку. Для этого используем код:

// Создание потока для чтения выбранного XAML файла
using (FileStream fs = new FileStream(filename, FileMode.Open))
{ // Создание нового окна для графического вывода содержимого XAML файла
 ((Window)XamlReader.Load(fs)).Show();
}

Где filename – название созданного файла с таблицей.

Вместо FileStream можно использовать MemoryStream, тогда XAML можно передать без использования файлов.

Так можно построить таблицу динамически прямо в коде программы. Это позволяет генерировать таблицу на сервере, а на клиенте получать XAML файл и отображать его на форме. Так же FastReport избавляет от написания кода доступа к базе - вся работа  делается им, и не требует вмешательства.

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

.NET Visual Studio FastReport WPF .NET Visual Studio FastReport WPF
13 октября 2025

Как использовать Excel формулы в отчете при экспорте в MS Excel

Начиная с версии FastReport .NET 2026.1 появилась возможность экспортировать формулы в Microsoft Excel. Важно правильно настроить экспорт формул и соблюдать синтаксис.
13 октября 2025

Новые возможности экспорта изображений в Microsoft Word в FastReport .NET

В последней версии FastReport .NET мы добавили новые функции экспорта изображений. Теперь можно самостоятельно настроить баланс между качеством и размером итогового документа.
30 сентября 2025

Как установить дизайнер отчетов FastReport .NET с предустановленными плагинами

Читайте в статье как с версии 2025.2.5 для FastReport .NET WinForms и FastReport .NET WEB можно установить дизайнер отчётов со всеми плагинами без сборки dll-файлов.

Не является публичной офертой
© 1998-2025 ООО «Быстрые отчеты»