Подключение к базе данных с постраничным выводом запроса
Для создания нового файла отчета необходимо выбрать в 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. Примерный вид отчета приведен ниже.