Робота з Crystal Report. NET, Різне, Інтернет-технології, статті

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

Введення


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

Налаштування сайту


Налаштування сайту, загальні для всіх сторінок, будемхраніть у файлі 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 сервера, назва бази даних на сервері, ім’я користувача бази даних парольпользователя.

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


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


Після додавання файлу звіту відкрийте його всреде.

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

Як джерело даних будемо іспользоватьMicrosoft OLE DB Provider for SQL Server.

Клацніть правою клавішею мишки на поле звіту івиберіте Database -> AddRemove Database -> OLDE DB (ADO). Пріраскритіі цього вузла з’явитися майстер дляподключенія бази даних SQL сервера. Заповніть всенеобходімие поля, і переконайтеся, що в блоці AvailableData 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(“reportsconnectDatabase.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. Зразковий вид звіту пріведенніже.


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


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

Якщо ж вам необхідно відображати всевибранние записи, то для цього необходімодополнітельно налаштувати об’єкт CrystalReportEngine.

У цьому прикладі ми розглянемо дві возможностіподключенія до файлів звіту – через модельпространства CrystalDecisions.Web і через функції API CrystalReport Engine простору CrystalDecisions.CrystlReports.Engine.

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

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

кнопка btnFile – завантажує звіт по імені файлаотчета

кнопка btnEngine – завантажує звіт на основеоб’ектной моделі CrystalEngine

об’єкт crDataBase – об’єкт для відображення звіту.

Підключення звіту через об’ектнуюмодель простору 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(“reportsconnectDatabase.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.



















  Значення полів наступні 

DisplayGroupTree Включаетвиключает відображення дерева деталізації вибірки
DisplayToolBar Включаетвиключает відображення панелі інструментів звіту
EnableDrillDown Включаетвиключает можливість деталізації звіту
SeparatePages Включаетвиключает розбиття на сторінки звіту

Підключення звіту через об’ектнуюмодель простору CrystalDecisions.CrystlReport.Engine

В якості відгуку на натискання миші кнопки 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, імякоторого збігається з ім’ям файлу звіту.

Звіт на основі SQL запиту


Джерелом даних для створення звіту можетпослужіть і звичайний SQL запит.

Для початку потрібно створити в проекті новий файлотчета connectSQLQuerry.rpt і підключити SQL сервер до отчетучерез команду Database -> AddRemove Database.


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

Клацніть мишею на вузлі Add Command і введітеследующій SQL запит

    select CompanyName,ContactName,Address fromdbo.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(“reportsconnectSQLQuerry.rpt”))
tbs = rDoc.Database.Tables
tb = tbs(0)
log = tb.LogOnInfo
log.ConnectionInfo = ci
tb.ApplyLogOnInfo(log)
crQuerry.ReportSource = rDoc
crQuerry.DataBind()
End Sub

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


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

Для цього створимо файл звіту connect_to_hpr.rpt, івключім можливість відображення хранімихпроцедур при підключенні, клацнувши правойклавішей миші на поле звіту і вибравши Desiner -> DefaultSettings -> Database. На цьому вікні виберемо селектор StoredProcedure


Тепер ваш звіт може працювати з хранімиміпроцедурамі вашого SQL сервера.

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

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

rDoc.Load(Server.MapPath(“reportsconnect_to_hpr.rpt”))

Параметризованих звіт спол-параметрами


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

Для того, щоб можна було дінаміческіуправлять умовами вибірки записів в запросеотчета, в 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(“reportsconnect_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 звіту, після чого отчетзагружается для виконання.

Звіт з використанням фільтра


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

Для цього можна використовувати возможностьуказанія умови вибору у файлі звіту 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(“reportsconnect_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(“reportsconnect_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 страніцаотображает замовників

Ці методу корисно використовувати тоді, когдавам потрібно задати умову на вибір записів з базиданних.

Звіт на основі 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.NETDataSets створений раніше 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 і відображається на формі.

Діаграми в 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(“reportsconnect_chart.rpt”))

Ваша діаграма буде наступного вигляду


Так можна додати графічні об’єкти в свій
звіт.

Література про Crystal Report. NET


За генератору звітів можу порекомендувати
наступну книгу

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

Вихідні приклади


Текст вихідних прикладів можна скачати тут

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*