dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Konstantin Yushtin

Бесплатный отчетогенератор для Microsoft Visual C# 2005 Express Edition


Итак, стоит задача, можно ли создавать отчеты типа Crystal Reports с использованием только бесплатных продуктов. Как известно Crystal Report не входит в поставку Microsoft Visual C# 2005 Express Edition. Какие есть бесплатные средства для создания отчетов ?!

Итак, знакомимся ReportViewer от Microsoft. Сначала устанавливаем Microsoft Visual C# 2005 Express Edition, а потом Visual Web Developer 2005 Express Edition.

Затем скачиваем Reporting Add-In for  Visual Web Developer  для визуального редактирования источников данных с сайта Microsoft  http://download.microsoft.com/download/4/4/D/44DBDE61-B385-4FC2-A67D-48053B8F9FAD/SQLServer2005_ReportAddin.msi.

Затем можно вытянуться на вебстраницу компоненту ReportViewer, которая назодится в разделе Data. Нажам на треугольник в верхнем правом углу можно выбрать опцию «Design a new report». Откроется редактор отчетов.

В тулбоксе у него две вкладки, на самом деле данный редактор много функциональный, более того, ему посвящен целый сайт http://www.gotreportviewer.com/ . Ничего сложного нет, можно задать компоненту, источник данных.  Далее создайем источник данных. Это стандартная процедура. В данном примере, я использовал простейший запрос “select * from products” и отображал его в виде таблицы.

Итак, после того как был сгенерирован файл отчета, необходимо сохранить его под другим вторым именем и желательно в каталоге, где находится проект разрабатываемый в Visual C# Express 2005. Далее, необходимо добавить в ToolBox Microsoft Visual C# 2005 Express Edition с помощью пункта контекстного меню «Choose Items …» компоненту ReportViewer (в данном случае как раз нужно будет выбрать из пространства имен Microsoft.Reporting.WinForns  и  пперетащить ее потом на форму. Как говорят, французы , вуаля ...

Но, тут есть одна сложность – Microsoft Visual C# 2005 Express Edition не содержит визарда для установления соединения с базой данных, поэтому придется немного попрограммировать, но предварительно узнав имена источников из базы данных:

            SqlConnection sq = new SqlConnection(
                "Initial Catalog=Northwind; Data Source=.\\SQLEXPRESS; Integrated Security=true"
                );

            DataSet ds = new DataSet();

            SqlDataAdapter adapter = new SqlDataAdapter(
                "select * from products", sq);

            adapter.Fill(ds);
            ReportDataSource source = new ReportDataSource();

            // Имя источника должно совпадать с тем, который сгенерировал Visual Web Developer
            source.Name = "DataSet1_Products";
            source.Value = ds.Tables[0];

            this.reportViewer1.LocalReport.DataSources.Add(source);

            // пространство имен проекта TestWindows
            //  файл отчета Report1.rdlc
            this.reportViewer1.LocalReport.ReportEmbeddedResource = "TestWindows.Report1.rdlc";

            this.reportViewer1.RefreshReport();


Особо обращаю внимание на то, что имя источника данных для отчета должны совпадать с тем, которое было создано в Visual Web Developer 2005 Express Edition иначе будет сгенерирована ошибка внутри вида «A data source instance has not been supplied for the data source DataSet1_Products»

Резюмируя, можно сказать, что существует разумная альтернатива Crystal Reports, поскольку

Компонента бесплатная и поддерживает экспорт в PDF и Excel.
Формат файла представляет собой XML на который присутствует описание, то есть данный файл можно динамически генерировать средствами Visual Studio, чему есть приведены примеры.
Ну и источниками данных могут быть не только DataTable, но и List-ы объектов.
 Еще раз укажу название сайта, на котором есть документация, скришоты приложений и примеры, доступные для скачивания http://www.gotreportviewer.com/.

К сожалению, я не нашел бесплатных компонент для Microsoft Visual C# 2005 Express Edition чтобы генерировать файлы отчетов Crystal Reports, хотя получить просмотрщик можно, установив Crystal Reports for .NET Framework 2.0 Redistributable Package, но компоненты дизайнера отчетов по-моему там нет.

Опубліковані Saturday, February 09, 2008 6:48 PM від Konstantin Yushtin

Коментарі

 

ServiceDeveloper сказав:

Зайди на http://www.fyireporting.com

Там дизайнер и вьюер под RDL, если тебе по душе ReportViewer, то можешь использовать только дизайнер (с некоторыми переделками), а потом отчеты показывать в ReportViewer. Все бесплатно и с исходными кодами.

Удачи.

PS, а я вот, в последнее время всё больше смотрю в сторону FlowDocument...

February 10, 2008 10:26 AM
 

Konstantin Yushtin сказав:

Да мне в четверг на курсах задали вопрос, можно ли найти бесплатный отчетогенератор, который можно синтегрировать с Microsoft Visual C# 2005 Express Edition. Я покопался и написал пост в блог. К сожалению, бесплатного дизайнера для Crystal Report я не нашел ...

Но ReportViewer мне по душе, особенно в свете линамической генерации :)

February 11, 2008 4:58 AM
 

Olexandr сказав:

Чи підтримує ReportViewer пейджинг на рівні БД?

April 9, 2008 6:57 AM
Анонімні коментарі деактивовані. Увійдіть або Зареєструйтесь щоб мати доступ до ресурсів Спільноти.