Работа с Crystal Report NET

         

Диаграммы в Crystal Report .NET


В данном примере рассмотрим возможность применения диаграмм в Crystal Report.

Мы построим диаграмму, отображающую сумму продаж первых пяти компаний, обеспечивших максимум продаж.

Для начала добавим в проект файл отчета connect.chart.rpt и укажем в качестве источника данных в Database Expert таблицы Customers и Orders базы NorhtWind вашего сервера.

Теперь запустим Report Expert и в качестве полей отчета укажем поля Customers.CompanyName, Customers.Address, Orders.OrdersDate, Orders.Freight.

На закладке Group в качестве полей для группировки укажем Customers.CompanyName.

В поле Total укажем поле Orders.Freight в качестве суммирующего поля для каждой группы Customers.CompanyName.

На закладке Style любой стиль отображения данных отчета.

Теперь установим количество компаний, о которых будем выводить суммы продаж. Для этого выберем команду Report -> Top N \ Sort Group Expert и в диалоге Top N Expert установим следующие параметры

Теперь в отчете будут показываться первые пять компаний, обеспечивших максимум продаж.

Теперь добавим в отчет диаграмму. Для этого щелкнем правой клавишей мыши в поле Report Header отчета. Выберем команду Insert ->Chart и установим тип диаграммы – круговой.

В диалоге Chart Expert на закладке Data в блоке On change of выберем Customers.CompanyName, в блоке Show выберем Sum of Orders.Freight.

Таким образом мы создали диаграмму, отображающую сумму продаж выбранной компании.

Далее добавим страницу для отображения отчета connect_diagram.asxp. Добавим объект crDialgram типа CrystalReportViewer, установим его свойство SeparatePages в false.

Код для загрузки отчета ничем не отличается от предыдущих примеров, разве что в качестве файла отчета необходимо указать connect_chart.rpt в методе Page_Init.

rDoc.Load(Server.MapPath("reports\connect_chart.rpt"))

Ваша диаграмма будет следующего вида

Так можно добавить графические объекты в свой отчет.



Исходные примеры


Текст исходных примеров можно скачать здесь



Средний рейтинг:
Оценок: 4

Добавить комментарий |

Добавить пример

Исходные примеры
Отправлено nEo, 03.11.2004 16:34

Литература о Crystal Report .NET


По генератору отчетов могу порекомендовать следующую книгу

Девид Мак-Амис Профессиональная работа с Crystal Report .NET издательства Виллиамс.



Настройка сайта


Настройки сайта, общие для всех страниц, будем хранить в файле web.config

<appSettings>

<add key="server" value="vevv"/>     <add key="database" value="Northwind"/>     <add key="user" value="srs-user"/>     <add key="password" value="12345"/> </appSettings>

Значения этих параметров говорят сами за себя - имя SQL сервера, название базы данных на сервере, имя пользователя базы данных пароль пользователя.



Отчет на основе DataSet


До этого примера мы создавали отчеты, которые “вытягивали” данные из таблиц базы данных. В этом же примере мы будем использовать объект DataSet, который работает по принципу “втягивания” в себя данных. Мы создадим строго типизированный DataSet, который послужит источником для отчета.

Для начала добавим в проект страницу cdDS.aspx. добавим в нее объекты SqlDataConnection, SqlDataAdapter для подключения к базе данных NorthWind. Наиболее простой путь для этого – открыть Server Explorer, выбрать таблицу Customers базы NorthWind вашего сервера и перетащить ее на рабочую область вашей страницы. Среда создаст два объекта SqlDataConnection1 и SqlDataAdapter1, которые обеспечивают возможность подключения и выборки из базы данных. Переименуем их в connNorthWind и daNorthWind.

Так же с панели Data на поле формы разместим объект типа ReportDocument и дадим ему имя cbsMain. Впоследствии его будем использовать в качестве источника документа отчета.

Для создания набора данных обратимся к конструктору набора данных ADO.NET. Для этого выберем в Solution Explorer и щелкнем правой клавишей на узле проекта и выберем Add – Add New Item. В поле Categories выберем Data и создадим новый набор DataSet с именем dsNorthWind.xsd. Результат этих действий представлен ниже

Теперь в странице connect_ds.aspx сгенерируем строго типизированный DataSet. Для этого щелкнем на объекте daCustomers и нажмем Generate Datase на панели Properties. В диалоге создания DataSet выберите уже созданный нами crexamples.dsNorthWind.

Переименуйте полученный DataSet в dsMain.

Убедитесь, что адаптер dsCustomers загружает все поля таблицы Customers при помощи функции Preview Data.

Теперь создадим отчет на основе созданного объекта DataSet. Для этого добавим файл отчета cdDS.rpt в наш проект и откроем его в окне редактора. Далее в качестве источника данных укажем созданный нами DataSet. Для этого через функцию Database -> Add/Remove DataBase вызовем DataBase Explorer и укажем в нем в разделе ADO.NET DataSets созданный ранее dsNorthWind. Перенесем таблицу Customers в блок Selected Tables. Теперь в отчете через объект dsNorhtWind будут доступны все поля таблицы Customers.

Далее, как и в предыдущих примерах, при помощи Report Expert задайте поля, отображаемые в отчете. Теперь наш отчет готов к выполнению.

На странице connect_ds.aspx в качестве отклика на событие Load в метод Page_Load введем следующие изменения

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'Put user code to initialize the page here

daCustomers.Fill(dsMain) cbsMain.SetDataSource(dsMain) crDS.ReportSource = cbsMain crDS.DataBind()

End Sub

В этом коде в объект dsMain загружается данные, после чего в объекте cbsMain типа ReportDocument в качестве источника данных указывается DataSet dsMain. Далее объект cbsMain подключается к объекту типа CrystalReportViewer и отображается на форме.



Отчет на основе SQL запроса


Источником данных для создания отчета может послужить и обыкновенный SQL запрос.

Для начала нужно создать в проекте новый файл отчета connectSQLQuerry.rpt и подключить SQL сервер к отчету через команду Database -> Add\Remove Database.

В качестве источника данных OLE DB (ADO) необходимо указать наш SQL сервер, подключить базу NorthWind. Сам же запрос необходимо вводить через команду Add command в блоке Available Data Sources

Щелкните мышью на узле Add Command и введите следующий SQL запрос

select CompanyName,ContactName,Address from dbo.Customers order by CompanyName

Далее убедитесь, что все поля, перечисленные в операторе select, доступны в разделе DataBase Fields панели инструментов Field Explorer.

Далее воспользуйтесь мастером-генератором отчетов и создайте простой табличный отчет из введенного запроса.

Далее добавьте файл connect_to_sql_querry.aspx, в котором метод Page_Init модифицируйте следующим образом:

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init

'CODEGEN: This method call is required by the Web Form Designer 'Do not modify it using the code editor.

InitializeComponent()

Dim log As New TableLogOnInfo Dim ci As New

ConnectionInfo

ci.ServerName = ConfigurationSettings.AppSettings("server") ci.DatabaseName = ConfigurationSettings.AppSettings("database") ci.UserID = ConfigurationSettings.AppSettings("user") ci.Password = ConfigurationSettings.AppSettings("password") log.ConnectionInfo = ci

Dim tbs As

Tables Dim tb As Engine.Table Dim rDoc As New ReportDocument

rDoc.Load(Server.MapPath("reports\connectSQLQuerry.rpt")) tbs = rDoc.Database.Tables tb = tbs(0) log = tb.LogOnInfo log.ConnectionInfo = ci tb.ApplyLogOnInfo(log)

crQuerry.ReportSource = rDoc crQuerry.DataBind()

End Sub



Отчет с использованием фильтра


Условие на выборку записей из базы данных можно задавать не только применением полей параметров.

Для этого можно использовать возможность указания условия выбора в файле отчета rpt или при помощи объекта CrystalReportViewer.

В данном примере реализуем обе возможности.

Создадим новый файл отчета crystal_inreport.rpt. В качестве источника данных укажем таблицу Customers базы NorthWind вашего сервера. Через Report Expert в качестве полей, используемых в отчете, укажем следующие поля: CompanyName, ContactName, Address, City, Region. Country.

Для указания условия выбора будем использовать диалог условия выбора записей отчета. Для этого щелкнем правой клавишей мыши на поле отчета и выберем Report -> Edit Selection Formula -> Records. Откроется окно Record Selection Formula Editor. В поле для ввода условия введите {Customers.Country}='Usa' . Для ввода условия можно воспользоваться деревом элементов Report Fields. Данное условие выбирает всех продавцов, проживающих в Америке и эквивалентно условию where в операторе select.

Для указания условия выбора записей при помощи объекта CrystalReportViewer создадим новый файл connect_outreport.rpt, подключим к нему базу NorthWind и укажем в качестве источника данных те же таблицы и поля.

Далее создадим новую страницу connect_filter.aspx, в которую добавим два объекта типа Button и один объект типа CrystalReportViewer.

Одному объекту типа Button дадим название btnInFilter и в качестве отклика на нажатие мыши введем следующий код

Private Sub btnInReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

btnInReport.Click

Dim log As New TableLogOnInfo Dim ci As New

ConnectionInfo crFilter.Visible = True

ci.ServerName = ConfigurationSettings.AppSettings("server") ci.DatabaseName = ConfigurationSettings.AppSettings("database") ci.UserID = ConfigurationSettings.AppSettings("user") ci.Password = ConfigurationSettings.AppSettings("password") log.ConnectionInfo = ci

Dim tbs As


Tables Dim tb As Engine. Table Dim rDoc As New ReportDocument

crFilter.SelectionFormula = "" rDoc.Load(Server.MapPath("reports\connect_inreport.rpt")) crFilter.ReportSource = rDoc tbs = rDoc.Database.Tables

tb = tbs(0) log = tb.LogOnInfo log.ConnectionInfo = ci tb.ApplyLogOnInfo(log)

crFilter.DataBind()

End Sub

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

Второму объекту Button дадим имя btnOutReport и в качестве отклика на нажатие мыши введем следующий код

Private Sub

btnOutReport_Click(ByVal sender As

System.Object, ByVal e As

System.EventArgs) Handles btnOutReport.Click

crFilter.Visible = True Dim log As New

TableLogOnInfo Dim ci As New

ConnectionInfo

ci.ServerName = ConfigurationSettings.AppSettings("server") ci.DatabaseName = ConfigurationSettings.AppSettings("database") ci.UserID = ConfigurationSettings.AppSettings("user") ci.Password = ConfigurationSettings.AppSettings("password")

log.ConnectionInfo = ci

Dim tbs As

Tables Dim tb As Engine.Table Dim rDoc As New ReportDocument rDoc.Load(Server.MapPath("reports\connect_outreport.rpt")) crFilter.ReportSource = rDoc crFilter.SelectionFormula = "{Customers.Country}='UK'"

tbs = rDoc.Database.Tables tb = tbs(0) log = tb.LogOnInfo log.ConnectionInfo = ci tb.ApplyLogOnInfo(log)

crFilter.DataBind()

End Sub

Данный код загружает всех заказчиков, проживающих в Великобритании. Условие на выбор задается оператором crFilter.SelectionFormula = "{Customers.Country}='UK'", которое эквивалентно указанию условия выбора в файле отчета.

Теперь при нажатии на кнопку btnInReport страница отображает заказчиков

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


Параметризированный отчет с полями-параметрами


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

Для того, чтобы можно было динамически управлять условиями выборки записей в запросе отчета, в Crystal Report существуют несколько способов.

В данном примере мы будем использовать поля параметры отчета из панели Fields Explorer.

Мы будем использовать хранимую процедуру “Employee Sales by Country” базы NorthWind. Данная процедура выбирает список продаж сотрудника в заданном временном интервале.

Добавьте в проект файл отчета connect_parameters.rpt, добавьте в качестве источника данных хранимую процедуру базы “Employee Sales by Country” базы NorthWind. Ей необходимо передать в качестве параметров начало и конец интервала продаж. Для этого в панели Fields Explorer в разделе Parameter Fields добавьте два поля – BeginingDate и EndingDate типа DateTime.

Для того, чтобы хранимая процедура могла ими пользоваться, необходимо проинициализировать эти параметры соответствующими значениями.

Для этого добавим в проект страницу connect_parameter.aspx. Разместим на ней два объекта Calendar, один – Button, один CrystalReportViewer.

При их помощи мы будем устанавливать дату в параметрах отчета и генерировать отчет, соответствующий заданному интервалу.

В качестве отклика на нажатие кнопки введите следующий код

Private Sub

btnParameter_Click(ByVal sender As

System.Object, ByVal e As

System.EventArgs) Handles btnParameter.Click

Dim log As New TableLogOnInfo Dim ci As New

ConnectionInfo

ci.ServerName = ConfigurationSettings.AppSettings("server") ci.DatabaseName = ConfigurationSettings.AppSettings("database") ci.UserID = ConfigurationSettings.AppSettings("user") ci.Password = ConfigurationSettings.AppSettings("password") log.ConnectionInfo = ci

Dim tbs As

Tables Dim tb As Engine.Table Dim rDoc As New ReportDocument

rDoc.Load(Server.MapPath("reports\connect_parameters.rpt")) crParameter.ReportSource = rDoc

Dim pr As

ParameterField Dim dv As New

ParameterDiscreteValue

pr = crParameter.ParameterFieldInfo.Item("@Ending_Date") dv = New ParameterDiscreteValue dv.Value = cldEnd.SelectedDate.ToShortDateString.ToString(New

System.Globalization.CultureInfo("ru-ru")) pr.CurrentValues.Add(dv)

dv = New ParameterDiscreteValue dv.Value = cldBegin.SelectedDate.ToShortDateString.ToString(New

System.Globalization.CultureInfo("ru-ru")) pr = crParameter.ParameterFieldInfo.Item("@Beginning_Date") pr.CurrentValues.Add(dv)

tbs = rDoc.Database.Tables tb = tbs(0) log = tb.LogOnInfo log.ConnectionInfo = ci tb.ApplyLogOnInfo(log)

crParameter.DataBind()

End Sub

В данном примере инициализируются параметры @Ending_Date и @Beginning_Date отчета, после чего отчет загружается для выполнения.



Подключение к базе данных MS SQL без постраничного вывода записей отчета


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

Если же вам необходимо отображать все выбранные записи, то для этого необходимо дополнительно настроить объект CrystalReportEngine.

В этом примере мы рассмотрим две возможности подключения к файлам отчета – через модель пространства CrystalDecisions.Web и через функции API Crystal Report Engine пространства CrystalDecisions.CrystlReports.Engine.

Для этого примера будем использовать тот же отчет connectDatabase.rpt.

Добавим в проект новый файл connect_to_db.aspx, разместим на нем объекты со следующими названиями

кнопка btnFile - загружает отчет по имени файла отчета

кнопка btnEngine – загружает отчет на основе объектной модели CrystalEngine

объект crDataBase – объект для отображения отчета.



Подключение к базе данных с постраничным выводом запроса


Для создания нового файла отчета необходимо выбрать в Solution Explorer щелкнуть правой клавишей мыши на узле проекта и выбрать следующий пункт меню – Add -> Add New Item и ввести в качестве имени файла connectDatabase.rpt.

После добавления файла отчета откройте его в среде.

На следующем шаге необходимо добавить подключение к базе данных, откуда отчет будет брать данные.

В качестве источника данных будем использовать Microsoft OLE DB Provider for SQL Server.

Щелкните правой клавишей мыши на поле отчета и выберите Database -> Add\Remove Database -> OLDE DB (ADO). При раскрытии этого узла появиться мастер для подключения базы данных SQL сервера. Заполните все необходимые поля, и убедитесь, что в блоке Available Data Sources стало доступно подключение к учебной базе NorthWind вашего сервера .

В качестве источников данных перенесите в блок Selected Tables таблицу Customers.

Теперь к нашему отчету подключена таблица Customers учебной базы NorthWind.

Теперь добавим поля таблицы Customers к нашему отчету.

Для этого щелкнем правой клавишей мыши на поле отчета и выберем Report -> Report Expert. Далее следуем указаниям мастера:

Закладка Data – в блоке Tables in report оставим Customers

Закладка Fields - в поле Fields to Display добавим поля Customers.CompanyName, Customers.ContactName, Customers.ContactTitle, Customers.Adress, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country, Customers.Phone, Customers.Fax.

Закладка Group – в блок Group By добавим Customers.CompanyName

Закладка Style – укажем стиль Drop Table.

Теперь наш отчет готов к выполнению.

Далее создадим страницу для отображения отчета. Для этого

добавим в проект новую aspx страницу connect_to_db_padding.aspx

на форму из панели инструментов Web forms добавим компоненту CrystalReportViewer.

Для этого элемента выполним следующие настройки:

свойство ID=crPaging

свойство DysplayGroupTree = False

свойство EnableDrillDown= False.

Для вызова созданного нами отчета необходимо в метод Page_Init нашей страницы добавить инициализацию компоненты crPaging. Так как наш отчет ображается к базе MS SQL Server, требующий авторизации подключений, то так же необходимо обеспечить авторизацию на SQL Server’е.

Для этого после вызова метода InitializeComponent() введем следующий код:


Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init

    'CODEGEN: This method call is required by the Web Form Designer     'Do not modify it using the code editor.

   InitializeComponent()    Dim log As New TableLogOnInfo    Dim ci As New ConnectionInfo     ci.ServerName = ConfigurationSettings.AppSettings("server")     ci.DatabaseName = ConfigurationSettings.AppSettings("database")     ci.UserID = ConfigurationSettings.AppSettings("user")     ci.Password = ConfigurationSettings.AppSettings("password")     log.ConnectionInfo = ci   

   Dim tbs As Tables     Dim tb As

Engine.Table    Dim rDoc As New ReportDocument     rDoc.Load(Server.MapPath("reports\connectDatabase.rpt"))     crPaging.ReportSource = rDoc         tbs = rDoc.Database.Tables     tb = tbs(0)     log = tb.LogOnInfo     log.ConnectionInfo = ci     tb.ApplyLogOnInfo(log)     crPaging.DataBind()

End Sub

В этом коде мы создаем объекты типа TableLogOnInfo и ConnectionInfo, инициализируем их параметрами подключения к базе данных, которые мы описали в файле web.config.

После этого загружаем в объект типа ReportDocument наш отчет, и присваиваем его в качестве источника данных для объекта CrystalReportViewer.

Так как у нас в документе отчета только одна таблица, то для нее мы присваиваем параметры подключения, сохраненные нами в объектах типа TableLogOnInfo и ConnectionInfo. Примерный вид отчета приведен ниже.




Подключение отчета через объектную модель пространства CrystalDecisions.Web


В качестве отклика на нажатие мыши кнопки btnFile введем следующую функцию:

Private Sub btnFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

btnFile.Click

Dim log As New TableLogOnInfo    Dim ci As New ConnectionInfo

    ci.ServerName = ConfigurationSettings.AppSettings("server")     ci.DatabaseName = ConfigurationSettings.AppSettings("database")     ci.UserID = ConfigurationSettings.AppSettings("user")     ci.Password = ConfigurationSettings.AppSettings("password")     log.ConnectionInfo = ci

    Dim tbs As Tables     Dim tb As

Engine.Table    Dim rDoc As New ReportDocument     rDoc.Load(Server.MapPath("reports\connectDatabase.rpt"))     crDataBase.ReportSource = rDoc

    tbs = rDoc.Database.Tables     tb = tbs(0)     log = tb.LogOnInfo     log.ConnectionInfo = ci

    tb.ApplyLogOnInfo(log)     crDataBase.DataBind()     crDataBase.Visible = True

End Sub

Данная функция по имени файла загружает отчет в объект crDataBase. Отличие от предыдущего пример состоит в том, что у объекта crDataBase отключена возможность отображения результатов выборки по страницам.

Для этого в панели инструментов Propertires объекта crDataBase установим поля DisplayGroupTree, DisplayToolBar,EnableDrillDown,SeparatePages   в false.

Исходные примеры не скачиваются.

[Ответить]

начальный уровень
Отправлено nzeemin, 05.11.2004 09:41

Статья начального уровня - никаких особенностей не показано.
В названии статьи стоило добавить "ASP.NET".
Ссылки на книжку нету.


[Ответить]

ссылку на примеры исправил
Отправлено monstrU, 13.11.2004 00:19

действительно, моя оплошность.


[Ответить]

процедура в access
Отправлено Diw, 13.11.2004 17:50

база - Access
Хп не отображаются и после изменения настроек(Desiner -> Default Settings -> Database).

как делать ?


[Ответить]

в access 2000
Отправлено monstrU, 13.11.2004 19:28

я взял эту версию. как я понял, ХП идут в access как запросы. если включить все как я описал в статье, то через Microsoft Jet Provider все появляется. в режиме добавления базы появляются Tables & Views, вот в узеле Views у меня все запросы и появились


[Ответить]

на крайний случай
Отправлено monstrU, 13.11.2004 19:29

можно использовать Add Command при подключении


[Ответить]

тема
Отправлено Diw, 16.11.2004 12:12

если процедура без параметров, то она отображается вместе с view. если процедура с параметрами, то у меня она не отображается :)


[Ответить]

таже тема
Отправлено Diw, 16.11.2004 12:18

Add Command? как там использовать параметры? если я не указываю конкретные значения параметров для EXEC, то на следующей вкладке список полей не отображается. или как нужно указывать параметры ?


[Ответить]

не мучайтесь
Отправлено monstrU, 16.11.2004 14:24

создайте тогда строго типизированый DataSet и загрузите в него все данные из вашей процедуры, а уж на основе этого dataset и постройте отчет


[Ответить]


Правила использования | Политика защиты | Кодекс поведения
© 2004 Корпорация Microsoft. Все права защищены.
Разработка и поддержка: Metric, Parking.Ru




hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=71692&im=105&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N");

hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N")

hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth)

hotlog_js="1.3"

hotlog_r+="&js="+hotlog_js; document.write("

  Значения полей следующие

DisplayGroupTree

Включает\выключает отображение дерева детализации выборки

DisplayToolBar

Включает\выключает отображение панели инструментов отчета

EnableDrillDown

Включает\выключает возможность детализации отчета

SeparatePages

Включает\выключает разбиение на страницы отчета

В качестве отклика на нажатие мыши кнопки btnEngine введем следующую функцию:

Private Sub

btnEngine_Click(ByVal sender As

System.Object, ByVal e As

System.EventArgs) Handles btnEngine.Click

Dim log As New TableLogOnInfo Dim ci As New

ConnectionInfo

ci.ServerName = ConfigurationSettings.AppSettings("server") ci.DatabaseName = ConfigurationSettings.AppSettings("database") ci.UserID = ConfigurationSettings.AppSettings("user") ci.Password = ConfigurationSettings.AppSettings("password") log.ConnectionInfo = ci

Dim tbs As

Tables Dim tb As Engine.Table Dim rDoc As New connectDatabase

tbs = rDoc.Database.Tables tb = tbs(0) log = tb.LogOnInfo log.ConnectionInfo = ci tb.ApplyLogOnInfo(log)

crDataBase.ReportSource = rDoc crDataBase.DataBind() crDataBase.Visible = True

End Sub

Единственное отличие в данном примере вышеуказанного метода подключения состоит в методе инициализации объекта отчета

Dim rDoc As New connectDatabase

tbs = rDoc.Database.Tables

В данном случае документ отчета инициализируется объектом класса connectionDatabase, имя которого совпадает с именем файла отчета.



Создание отчета на основе хранимой процедуры


Источником данных для отчета может послужить и хранимая процедура. Для этого необходимо настроить подключение отчета к базе данных таким образом, чтобы отчет мог работать с хранимыми процедурами.

Для этого создадим файл отчета connect_to_hpr.rpt, и включим возможность отображения хранимых процедур при подключении, щелкнув правой клавишей мыши на поле отчета и выбрав Desiner -> Default Settings -> Database. На этом окне выберем селектор Stored Procedure

Теперь ваш отчет может работать с хранимыми процедурами вашего SQL сервера.

Добавьте к отчету базу NorthWind вашего SQL сервера.в качестве источника данных укажите хранимую процедуру “Ten Most Expensive Products”. Убедитесь, что все поля, возвращаемые оператором select хранимой процедуры, присутствуют в Fields Explorer вашего отчета. Создайте простой текстовый отчет, воспользовавшись мастером отчетов Report Expert.

Теперь добавим к проекту файл connect_to_hp.aspx, в котором будем отображать результаты выборки из хранимой процедуры. Добавьте код инициализации отчетав метод Page_Init, аналогичный предыдущему. Единственное отличие будет заключаться в имени файла загружаемого отчета

rDoc.Load(Server.MapPath("reports\connect_to_hpr.rpt"))



Популярный пакет генератора отчетов Crystal


Популярный пакет генератора отчетов Crystal Report предназначен для создания отчетов презентабельного вида различного типа: табличные запросы к базам данных, сводные диаграммы, OLAP данные. Версия Crystal Report .NET несколько ограничена в возможностях по сравнению с Crystal Report, поставляемым как отдельное приложение, но тем не менее она позволяет реализовать широкий спектр отчетов для Windows и Web приложений.