Вы можете использовать локальный отчет SSRS (расширение .rdlc). В разделе «Отчетность» должен быть новый шаблон элемента для создания отчета. Отчет отображается в Winforms с помощью элемента управления Report Viewer (элемент управления также можно использовать в приложении WPF с использованием WindowsFormsHost). Единственным недостатком является обязательная зависимость, которая должна быть установлена вместе с вашим приложением. Вот распространяемый пакет для средства просмотра отчетов 2010 года.
Плюсом является то, что отчет может быть легко размещен в экземпляре SSRS, если / когда его необходимо будет просмотреть в браузере. Средство просмотра также может локально отображать отчеты, размещенные в экземпляре SSRS.
В Интернете имеется множество руководств по использованию средства просмотра отчетов в зависимости от источника данных, который будет использоваться для заполнения отчета. В следующем примере в качестве источника данных используется общий список. «Метки» в новой строке ReportDataSource должны совпадать с именем набора данных в определении отчета. Свойства универсального объекта также должны соответствовать именам столбцов набора данных.
public ReportViewer(IEnumerable<UnprocessedLabel> labels)
{
InitializeComponent();
var reportViewer = new Microsoft.Reporting.WinForms.ReportViewer { ProcessingMode = ProcessingMode.Local };
reportViewer.LocalReport.ReportPath = System.IO.Path.GetDirectoryName(Application.ResourceAssembly.Location) + "\\UnprocessedPalletLabel.rdlc";
var ds = new ReportDataSource("labels", labels);
reportViewer.LocalReport.DataSources.Add(ds);
reportViewer.RefreshReport();
}