(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Работа с Crystal Report .NET

Источник: Gotdonet

Популярный пакет генератора отчетов 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 -> Add\Remove 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("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. Примерный вид отчета приведенниже.

Подключение к базе данных 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("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.

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

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 -> Add\Remove 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("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

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

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

Для этого создадим файл отчета 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("reports\connect_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("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 отчета, после чего отчетзагружается для выполнения.

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

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

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

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

Отчет на основе 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("reports\connect_chart.rpt"))

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

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

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

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

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

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

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

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 28.04.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
SAP CRYSTAL Server 2013 WIN INTL 5 CAL License
SAP Crystal Reports 2008 INTL WIN NUL License
SAP® Crystal Dashboard Design Departmental 2016 WIN INTL NUL
SAP® Crystal Presentation Design 2016 WIN INTL NUL
SAP® Crystal Reports 2016 WIN INTL NUL
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
CASE-технологии
Реестр Windows. Секреты работы на компьютере
Новые материалы
Мир OLAP и Business Intelligence: новости, статьи, обзоры
Delphi - проблемы и решения
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100