WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     | 1 |   ...   | 3 | 4 || 6 | 7 |   ...   | 17 |

«Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Содержание 1 Руководство SAP Crystal Reports.NET SDK Developer Guide............................ 4 1.1 Начало ...»

-- [ Страница 5 ] --

Связанные сведения Особенности использования обычных и кэшированных отчетов [стр. 225] Объектная модель ReportDocument [стр. 38] Использование объекта Session для сохранения объектной модели ReportDocument [стр. 59] Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.4.5.3.2.3.1 Связывание с классом утилит управления кэш-памятью Предпосылки Данная процедура работает только с проектами, созданными из Настройка проекта [стр. 16]. Настройка проекта включает специальные ссылки на пространство имен и конфигурацию кода, необходимую для выполнения данной процедуры. Выполнение процедуры без этой конфигурации невозможно.

Процедура 1. Внутри метода ConfigureCrystalReports() (созданного в разделе Настройка проекта [стр. 16]) удалите существующие строки кода для замены класса-обертки отчета классом утилит управления кэш-памятью.

2. Присвойте значения классу утилит управления кэш-памятью, связанному с файлом Hierarchical Grouping.rpt.

Dim cachedHierarchicalGroupingReport As CachedHierarchical_Grouping = New CachedHierarchical_Grouping() CachedHierarchical_Grouping cachedHierarchicalGroupingReport = new CachedHierarchical_Grouping();

3. Передайте экземпляр утилиты управления кэш-памятью элементу управления CrystalReportViewer.

myCrystalReportViewer.ReportSource = cachedHierarchicalGroupingReport crystalReportViewer.ReportSource = cachedHierarchicalGroupingReport;

4. Для просмотра отчета постройте и запустите свой проект.

1.4.5.3.2.4 Установка связи с невстроенным отчетом, загруженным в класс утилит управления кэш-памятью Объектная модель В этом сценарии связывания отчетов используется объектная модель ReportDocument.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Расположение отчетов Отчеты расположены в каталоге.

Описание Этот сценарий связывания отчетов похож на следующий сценарий связывания отчетов Связывание с классом кэшированных встроенных отчетов [стр. 208]. Отличие этого сценария заключается в том, что отчеты не являются встроенными. Дополнительные сведения о невстроенных отчетах см. в разделе Сравнение встроенных и невстроенных отчетов [стр. 167].

Версия SAP Crystal Reports для разработчиков Microsoft Visual Studio поставляется с двумя функциями, содействующими кэшированию отчетов с объектом ASP.NET Cache:

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

Интерфейс, ICachedReport, определяющий классы утилит управления кэш-памятью отчетов для структуры управления кэш-памятью отчетов.

В Связывание с классом кэшированных встроенных отчетов [стр. 208] наводятся сведения о классе Cached[имя_отчета], автоматически создающемся при встраивании отчета в проект. Однако можно вручную создать класс утилит управления кэш-памятью, управляющий невстроенными отчетами. Образец кода см. ниже в разделе "Реализация".

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

Преимущества Создано для возможности совместного использования: оптимальное средство хранения отчетов с высокой возможностью совместного использования и несколькими перестановками в параметрах или сведениях для входа.

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Недостатки Большая нагрузка на сервер: отчеты, остающиеся в объекте ASP.NET Cache, могут создавать нагрузку на ресурсы памяти сервера.

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

Потребление ресурсов: отчет с параметрами, которые часто вызываются с разными строками параметров (особенно если один из этих параметров является идентификатором пользователя), приводит каждый раз к созданию нового кэшированного отчета. Это приводит к потреблению ресурсов системы. Если отчет используется совместно нечасто, экземпляр отчета следует вместо этого назначить объекту Session.

Связанные сведения Установка связи с компонентом ReportDocument [стр. 217] Объектная модель ReportDocument [стр. 38] Использование объекта Session для сохранения объектной модели ReportDocument [стр. 59] 1.4.5.3.2.4.1 Кэширование и последующее связывание невстроенного отчета с элементом управления CrystalReportViewer Предпосылки Данная процедура работает только с проектами, созданными из Настройка проекта [стр. 16]. Настройка проекта включает специальные ссылки на пространство имен и конфигурацию кода, необходимую для выполнения данной процедуры. Выполнение процедуры без этой конфигурации невозможно.

Процедура 1. Перейдите к файлу World Sales Report.rpt в подкаталоге General Business.

2. Скопируйте в буфер обмена полный путь к каталогу, включая файл World Sales Report.rpt.



© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Внутри метода ConfigureCrystalReports() (созданного в разделе Настройка проекта [стр. 16]) объявите строковую переменную reportPath и назначьте строку с путем к файлу World Sales Report, скопированную на предыдущем этапе.

Dim reportPath As String = _ "C:\Program Files\Microsoft Visual Studio 9.0\" _ & "Crystal Reports\Samples\En\Reports\General Business\" _ & "World Sales Report.rpt" string reportPath = "C:\\Program Files\\Microsoft Visual Studio 9.0\\" + "Crystal Reports\\Samples\\En\\Reports\\General Business\\" + "World Sales Report.rpt";

4. Объявите и создайте класс NonEmbeddedReportCacher, а затем передайте его строковой переменной reportFile.

Сведения о создании класса NonEmbeddedReportCacher см. в пошаговой процедуре, следующей за этой процедурой.

Dim myNonEmbeddedReportCacher As NonEmbeddedReportCacher = _New NonEmbeddedReportCacher(reportFile) NonEmbeddedReportCacher nonEmbeddedReportCacher = new NonEmbeddedReportCacher(reportFile);

5. Назначьте экземпляр класса утилит управления кэш-памятью отчетов свойству ReportSource элемента управления CrystalReportViewer.

myCrystalReportViewer.ReportSource = myNonEmbeddedReportCacher crystalReportViewer.ReportSource = nonEmbeddedReportCacher;

1.4.5.3.2.4.2 Создание класса утилит управления кэшпамятью NonEmbeddedReportCacher Процедура 1. Создайте в проекте новый класс с именем NonEmbeddedReportCacher.

Public Class NonEmbeddedReportCacher Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide namespace MyWebApplication public class NonEmbeddedReportCacher public NonEmbeddedReportCacher() 2. Присоедините интерфейс ICachedReport к подписи класса.

Public Class NonEmbeddedReportCacher public class NonEmbeddedReportCacher : ICachedReport 3. Добавьте три оператора "Imports" [Visual Basic] или "using" [C#] в верхней части класса.

Imports CrystalDecisions.Shared Imports CrystalDecisions.ReportSource Imports CrystalDecisions.CrystalReports.Engine using CrystalDecisions.Shared;

using CrystalDecisions.ReportSource;

using CrystalDecisions.CrystalReports.Engine;

4. В пределах класса объявите два экземпляра на уровне класса: экземпляр строки с именем reportFileName и экземпляр ReportDocument с именем nonEmbeddedReportDocument.

Private reportFileName As String Private nonEmbeddedReportDocument As ReportDocument private string reportFileName;

private ReportDocument nonEmbeddedReportDocument;

5. Установите принятие конструктором строки reportFileName, а в пределах конструктора назначьте эту строку переменной класса reportFileName.

Public Sub New(ByVal reportFileName As String) Me.reportFileName = reportFileName public NonEmbeddedReportCacher(string reportFileName) this.reportFileName = reportFileName;

При выполнении всех оставшихся этапов реализуются свойства или методы, требуемые интерфейсом:

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide GetCustomizedCacheKey(RequestContext request) 6. Создайте свойство IsCacheable, которое должно возвращать значение True.

Public Overridable Property IsCacheable() As Boolean Implements ICachedReport.IsCacheable public virtual Boolean IsCacheable 7. Создайте свойство ShareDBLogonInfo, которое должно возвращать значение False.

Public Overridable Property ShareDBLogonInfo() As Boolean Implements ICachedReport.ShareDBLogonInfo public virtual Boolean ShareDBLogonInfo 8. Создайте свойство CacheTimeOut, которое должно возвращать константу из класса CachedReportConstants.

Public Overridable Property CacheTimeOut() As TimeSpan Implements ICachedReport.CacheTimeOut Return CachedReportConstants.DEFAULT_TIMEOUT Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide public virtual TimeSpan CacheTimeOut return CachedReportConstants.DEFAULT_TIMEOUT;

9. Создайте метод CreateReport(), возвращающий невстроенный отчет, загруженный в экземпляр ReportDocument на уровне класса.

Public Overridable Function CreateReport() As ReportDocument Implements ICachedReport.CreateReport nonEmbeddedReportDocument = New ReportDocument() nonEmbeddedReportDocument.Load(reportFileName) Return nonEmbeddedReportDocument public virtual ReportDocument CreateReport() nonEmbeddedReportDocument = new ReportDocument();

nonEmbeddedReportDocument.Load(reportFileName);

return nonEmbeddedReportDocument;

10. Создайте метод GetCustomizedCacheKey() и возвратите пустое значение.

Возвращение пустого значения из этого метода позволяет пакету SAP Crystal Reports.NET SDK самостоятельно управлять ключом поиска кэша. В качестве альтернативы здесь можно создать и добавить собственный настроенный метод ключа кэша.

Public Overridable Function GetCustomizedCacheKey(ByVal request As RequestContext) As String Implements ICachedReport.GetCustomizedCacheKey public virtual String GetCustomizedCacheKey(RequestContext request) 11. Для просмотра отчета постройте и запустите свой проект.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.4.5.3.2.5 Установка связи с компонентом ReportDocument Объектная модель В этом сценарии связывания отчетов используется объектная модель ReportDocument.

Расположение отчетов Отчеты расположены в каталоге.

Описание Компонент ReportDocument, расположенный на панели инструментов, обеспечивает метод на основе GUI, генерирующий код создания экземпляра класса для отчета в классе code-behind. Можно задать невстроенный, встроенный или кэшированный встроенный отчет.

В диалоговом окне используются прежние термины "нетипизированный отчет" для обозначения невстроенного отчета и "отчет со строгим контролем типов" для обозначения встроенного отчета.

Использование этого диалогового окна для добавления ReportDocument в качестве компонента приводит к созданию класса ReportDocument (или класса-обертки встроенного отчета) в пределах автоматически сгенерированной области класса code-behind. Одновременно в лотке компонентов IDE появляется значок для визуального отображения созданного класса отчетов.

Для создания отчета в классе code-behind не требуется добавлять в проект компонент ReportDocument.

Для большего контроля над кодом рекомендуется вручную добавить код создания экземпляра класса.

Связанные сведения Объектная модель ReportDocument [стр. 38] Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.4.5.3.2.6 Сценарии связывания ReportDocument, использующие службу Crystal Services (VS.NET 2003) Служба Crystal Services обеспечивает удобный доступ к отчетам в Visual Studio 2003. Эта функция недоступна в Visual Studio 2005 или 2008. После установки SAP Crystal Reports и Crystal Services служба Crystal Services отображается в виде подузла для каждого сервера в узле Servers в Server Explorer. При развертывании узла Crystal Services отображаются списки отчетов, находящихся в перечисленных ниже местоположениях.

Локальный каталог на жестком диске.

Сервер RAS (Report Application Server) Платформа SAP Business Intelligence (BIP) Любой отчет из этих списков можно перетащить в веб-форму или форму Windows.

В зависимости от установленной версии SAP Crystal Reports и от наличия дополнительных лицензий для сервера RAS или платформы SAP BusinessObjects Business Intelligence, узел службы Crystal, как правило, содержит два разворачиваемых подузла. В приведенной ниже таблице перечислены требования, выполнение которых необходимо для доступа к каждому подузлу.

Некоторые версии платформы SAP BusinessObjects Business Intelligence не поддерживают службы Crystal. Дополнительные сведения см. в документации по платформе SAP BusinessObjects Business Intelligence.

Для доступа к центральному серверу управления платформы SAP BusinessObjects Business Intelligence может потребоваться настройка параметров брандмауэра. Порт по умолчанию для CMS – 6400. Для получения сведений об адресе в сети и настройках порта для системы платформы SAP BusinessObjects Business Intelligence обратитесь к системному администратору. Дополнительные сведения о настройке портов см. в руководстве администратора платформы SAP BusinessObjects Business Intelligence.

Интерфейсный класс При перетаскивании отчета из Crystal Services в веб-форму или форму Windows создается экземпляр интерфейсного класса, ссылающийся на отчет в области генерируемого кода веб-форм или форм Windows в классе code-behind.

Тип интерфейсного класса отличается в разных версиях SAP Crystal Reports. См. приведенную ниже таблицу.

Перечисленные в таблице службы Crystal Services используют типы интерфейсного класса ReportDocument.

Эти две службы Crystal Services входят в состав SAP Crystal Reports 10. Они отображают группу отчетов, обслуживаемых неуправляемым или управляемым сервером RAS. В версии SAP Crystal Reports 9 и более поздних версиях этот интерфейсный класс был изменен на ReportDocument.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide мый службами Crystal Services ReportDocument Report Application SAP Crystal Reports Отображает отчеты Установка неупра­ ReportDocument Crystal Enterprise SAP Crystal Reports Отображает отчеты Установка Crystal Более ранние версии Crystal Services предоставляют типы интерфейсного класса, не использующие объектную модель ReportDocument. Они зависят от ограниченной объектной модели в элементе управления CrystalReportViewer. Дополнительные сведения см. в разделе Сценарии связывания CrystalReportViewer, использующие службу Crystal Services [стр. 182].

1.4.5.3.2.6.1 Установка связи с Report Application Server (SAP Crystal Reports 10 и более поздние версии) На этой странице описаны функции, недоступные в версии SAP Crystal Reports для разработчиков Microsoft Visual Studio, но содержащиеся в одной из обновленных версий.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Объектная модель В этом сценарии связывания отчетов используется объектная модель ReportDocument.

Расположение отчетов Отчеты расположены на неуправляемом сервере RAS. Отчет оборачивается в класс ReportDocument.

Обзор служб Crystal Services Этот сценарий связывания отчетов применяется к отчетам, доступ к которым осуществляется с узла сервера Crystal Services в Server Explorer.

В этом разделе рассматривается вложенный узел Report Application Server служб Crystal Services в пределах программы SAP Crystal Reports Developer.

[SERVERNAME] Службы Crystal Report Application Server Описание Вложенный узел Report Application Server получает доступ к отчетам, предоставляемым неуправляемым сервером RAS, а затем отображает их. Узел RAS функционирует, только если на компьютере разработчика установлен неуправляемый сервер RAS.

При перетаскивании отчета с узла служб Crystal на платформе BusinessObjects Business Intelligence в вебформу или форму Windows создается экземпляр ReportDocument. Класс ReportDocument функционирует в качестве класса-обертки. Его цель заключается в оборачивании (представлении) отчета, переданного с неуправляемого сервера RAS.

Преимущества Простой доступ: отчеты с неуправляемого сервера RAS можно легко просматривать в древовидной структуре и перетаскивать на веб-форму.

Широкое программное взаимодействие: обеспечение доступа к мощной объектной модели ReportDocument. Классом-оберткой отчетов в этой версии является ReportDocument. Это первая версия служб Crystal Services, предоставляющая доступ к объектной модели ReportDocument.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Недостатки Менее непосредственное кодирование: уступает в непосредственности кодированию отчетов RAS с помощью объектной модели ReportClientDocument.

Связанные сведения Установка связи с Crystal Enterprise (SAP Crystal Reports 10 и более поздние версии) [стр. 222] Объектная модель ReportDocument [стр. 38] Использование службы Crystal Services [стр. 86] 1.4.5.3.2.6.1.1 Использование Crystal Services>Report Application Server Предпосылки Установлена программа SAP Crystal Reports 10 или более поздняя версия, а также проверена ее работоспособность.

Установлен неуправляемый сервер RAS, а также проверена его работоспособность.

Данная процедура работает только с проектами, созданными из Настройка проекта [стр. 16]. Настройка проекта включает специальные ссылки на пространство имен и конфигурацию кода, необходимую для выполнения данной процедуры. Выполнение процедуры без этой конфигурации невозможно.

Процедура 1. В среде Visual Studio откройте Server Explorer.

2. Разверните службы Crystal Services, а затем разверните Report Application Server.

3. Выберите отчет из дерева Report Application Server и перетащите его на веб-форму или форму В нижней части представления "Конструктор" появится объект reportDocument1.

После размещения отчета Report Application Server на форме экземпляр класса ReportDocument добавляется к области созданного кода конструктора вашей формы.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide После создания и настройки классов, наследуемых от System.ComponentModel.Component (например ReportDocument), в области созданного кода конструктора в нижней части формы в представлении "Конструктор" появится значок созданного класса.

4. Переключитесь на представление кода и откройте область созданного кода конструктора веб-форм или форм Windows.

В этой области инициализируется и настраивается класс ReportDocument.

5. Внутри метода ConfigureCrystalReports() (созданного в Настройка проекта [стр. 16]) назначьте экземпляр ReportDocument свойству ReportSource элемента управления CrystalReportViewer.

myCrystalReportViewer.ReportSource = reportDocument crystalReportViewer.ReportSource = reportDocument1;

6. Для просмотра отчета постройте и запустите свой проект.

1.4.5.3.2.6.2 Установка связи с Crystal Enterprise (SAP Crystal Reports 10 и более поздние версии) На этой странице описаны функции, недоступные в версии SAP Crystal Reports для разработчиков Microsoft Visual Studio, но содержащиеся в одной из обновленных версий.

Объектная модель В этом сценарии связывания отчетов используется объектная модель ReportDocument.

Расположение отчетов Отчеты расположены на управляемом сервере RAS. Отчеты оборачиваются в класс ReportDocument.

Обзор служб Crystal Services Этот сценарий связывания отчетов применяется к отчетам, доступ к которым осуществляется с узла сервера Crystal Services в Server Explorer.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide В этом разделе описывается подузел служб Crystal платформы SAP BusinessObjects Business Intelligence в решении SAP Crystal Reports Developer.

[SERVERNAME] Службы Crystal Описание Подузел платформы SAP BusinessObjects Business Intelligence обращается к отчетам, предоставленным управляемым сервером RAS на платформе SAP BusinessObjects Business Intelligence, и отображает их.

В узле служб Crystal платформы SAP BusinessObjects Business Intelligence предоставляются отчеты из Crystal Enterprise с использованием управляемого сервера RAS. Узел платформы SAP BusinessObjects Business Intelligence полностью функционален. Тем не менее, если на компьютере разработчика не установлена платформа SAP BusinessObjects Business Intelligence, необходимо перейти в раздел "Свойства" узла и задать имя сервера платформы SAP BusinessObjects Business Intelligence в сети.

При перетаскивании отчета с узла служб Crystal на платформе BusinessObjects Business Intelligence в вебформу или форму Windows создается экземпляр ReportDocument. Класс ReportDocument функционирует в качестве класса-обертки. Его назначение заключается в оборачивании (представлении) отчета, переданного с сервера RAS в программе Crystal Enterprise.

Преимущества Простой доступ: простой доступ к отчетам RAS в пределах программы Crystal Enterprise из вебприложения.

Широкое программное взаимодействие: обеспечение доступа к мощной объектной модели ReportDocument. Классом-оберткой отчетов в этой версии является ReportDocument. Это первая версия служб Crystal Services, предоставляющая доступ к объектной модели ReportDocument.

Недостатки Менее непосредственное кодирование: уступает в непосредственности кодированию отчетов RAS с помощью объектной модели ReportClientDocument.

Связанные сведения Использование службы Crystal Services [стр. 86] Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.4.5.3.2.6.2.1 Использование Crystal Services> Crystal Enterprise Предпосылки Программа SAP Crystal Reports 10 или XI установлена, а также проверена ее работоспособность.

Данная процедура работает только с проектами, созданными из Настройка проекта [стр. 16]. Настройка проекта включает специальные ссылки на пространство имен и конфигурацию кода, необходимую для выполнения данной процедуры. Выполнение процедуры без этой конфигурации невозможно.

Процедура 1. В среде Visual Studio откройте Server Explorer.

2. Разверните службы Crystal Services, а затем разверните Crystal Enterprise.

3. Выберите отчет из дерева Crystal Enterprise и перетащите его на форму.

В нижней части представления "Конструктор" появится объект reportDocument1.

После размещения отчета Crystal Enterprise на форме экземпляр класса ReportDocument добавляется к области созданного кода конструктора.

После создания и настройки классов, наследуемых от System.ComponentModel.Component (например ReportDocument), в области созданного кода конструктора в нижней части формы в представлении "Конструктор" появится значок созданного класса.

4. Переключитесь на представление кода и откройте область созданного кода конструктора веб-форм или форм Windows.

В этой области инициализируется и настраивается класс ReportDocument.

5. Внутри метода ConfigureCrystalReports() (созданного в разделе Настройка проекта [стр. 16]) назначьте экземпляр ReportDocument свойству ReportSource элемента управления CrystalReportViewer.

myCrystalReportViewer.ReportSource = reportDocument crystalReportViewer.ReportSource = reportDocument1;

6. Для просмотра отчета соберите и запустите веб-проект.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.4.5.4 Особенности использования обычных и кэшированных отчетов Одним из важнейших решений при планировании процесса разработки приложения в SAP Crystal Reports SDK является решение об использовании обычных или кэшированных отчетов. Основные сведения о системе кэширования отчетов в SDK помогут пользователю выбрать оптимальную структуру проекта версии SAP Crystal Reports для разработчиков Microsoft Visual Studio.

Что такое кэшированный отчет?

Кэшированный отчет – это объект отчета, сохраненный в объекте Cache ASP.NET в целях повышения производительности и масштабируемости. SAP Crystal Reports предоставляет специальную структуру для помещения экземпляров ReportDocument в объект Cache. Эта структура автоматически кэширует любой отчет, использующий интерфейс ICachedReport.

Что представляет собой объект Cache в ASP.NET?

Как в ASP, так и в ASP.NET объекты отчета помещаются в объекты Session или Application на веб-сервере по двум причинам:

1. В целях сохранения состояния объекта отчета при перезагрузке страницы.

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

В ASP.NET была введена расширенная версия объекта Application – объект Cache. Так же, как и объект Application, объект Cache сохраняет отдельные экземпляры объекта отчета. Однако объект Cache также включает механизм, выполняющий поиск зависимостей по файлу, ключу или времени. Эти зависимости могут использоваться для автоматического удаления или даже обновления объектов отчета в объекте Cache.

Каждый из отчетов, сохраненных в объекте Cache, относится к конкретному пользователю и сеансу.

Термины "объект Cache" и "кэш" являются взаимозаменяемыми (как и термины "объект Session" и "сеанс" или "объект Application" и "приложение") и означают одно и то же. Термин "объект" акцентирует внимание на том, что это объекты сохранения, запускаемые в пространстве памяти.NET Framework на веб-сервере.

Каким образом объекты отчета помещаются в объект Cache ASP.NET?

Объекты отчета можно поместить в объект Cache ASP.NET двумя способами.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Можно связать объект отчета с объектом Cache, используя тот же синтаксис, что и при связывании отчета с объектом Session или Application (явное назначение).

Можно создать экземпляр версии отчета, использующего интерфейс ICachedReport. Подсистема отчетов выполняет поиск всех объектов отчета, использующих этот интерфейс, и автоматически помещает эти объекты отчета в объект Cache (неявное назначение).

Что такое интерфейс ICachedReport?

Интерфейс ICachedReport помечает все классы отчетов, разрешающие ICachedReport работать со структурой кэширования SAP Crystal Reports. Эта настраиваемая структура обеспечивает слой над объектом Cache в ASP.NET, удовлетворяющий специальные требования процесса кэширования отчетов.

Интерфейс ICachedReport содержит подписи методов, которые, при реализации в классе отчета, определяют порядок кэширования конкретного класса.

Каковы возможности кэширования при встраивании отчета в проект Visual Studio?

При создании или импорте отчета в проект Visual Studio этот отчет встраивается в проект, в результате чего автоматически генерируются два класса:

Интерфейсный класс отчета (использующий то же имя, что и отчет).

Этот класс отчета представляет отчет в проекте и наследует от ReportDocument. Дополнительные сведения см. в разделе Сравнение встроенных и невстроенных отчетов [стр. 167].

Служебный класс управления кэшированием (с именем Cached[имя_отчета]).

Этот служебный класс управления кэшированием управляет кэшированием данного встроенного отчета, используя объект Cache ASP.NET и встроенную структуру кэширования SAP Crystal Reports В следующей таблице показаны элементы, создаваемые при добавлении отчета иерархической группировки:

Класс CachedHierarchical_Grouping Служебный класс, используемый для управления Класс упаковщика отчета и служебный класс управления кэшированием выполняют различные функции.

Класс упаковщика отчета наследует от ReportDocument и, следовательно, имеет доступ к полной объектной модели ReportDocument. Это корневой класс, программируемый для взаимодействия с Служебный класс управления кэшированием управляет экземплярами интерфейсного класса отчета и сохраняет их в объекте Cache ASP.NET. Он распознает отдельные экземпляры интерфейсного класса отчета и предотвращает взаимную перезапись этих экземпляров в объекте Cache. Например, он © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide распознает отличия, создаваемые при изменении параметров и учетных данных. Для этого он присваивает уникальный ключ для каждого уникального экземпляра интерфейсного класса отчета.

В целях идентификации в системе кэширования SAP Crystal Reports.NET Framework служебный класс управления кэшированием реализует интерфейс ICachedReport.

Как интерфейсный класс отчета, так и служебный класс управления кэшированием генерируются в одном и том же файле класса. Чтобы отобразить оба класса, щелкните правой кнопкой мыши файл класса отчета в Solution Explorer и выберите команду "Просмотреть код". Код класса упаковщика отчета находится в верхней части файла, а служебный класс управления кэшированием – в середине файла.

Сведения о связывании элемента управления CrystalReportViewer с этим служебным классом управления кэшированием см. в разделе Связывание с классом кэшированных встроенных отчетов [стр.

208]. Сведения о создании собственного служебного класса управления кэшированием для связывания невстроенных отчетов см. в разделе Установка связи с невстроенным отчетом, загруженным в класс утилит управления кэш-памятью [стр. 210].

В каких случаях применяется кэширование отчетов?

В объекте Cache ASP.NET следует хранить только небольшой процент объектов отчета. Большая часть объектов отчета имеет невысокую вероятность коллективного использования (то есть, они не используются как общие ресурсы с другими объектами). Следовательно, они будут неэкономично использовать объект Cache. Поэтому при необходимости сохранения объекты отчета следует помещать в объект Session.

Объект отчета следует поместить в кэш ASP.NET только в том случае, если отчет будет просматриваться несколько раз одним и тем же пользователем в данном сеансе. Это особенно важно, если объект отчета такой большой или содержит такой сложный запрос, что для извлечения его данных требуется несколько минут.

Связанные сведения Связывание с классом кэшированных встроенных отчетов [стр. 208] 1.4.5.5 Просмотр отчета во время разработки SAP Crystal Reports позволяет выполнять предварительный просмотр отчета во время разработки в Visual Studio. Отчет отображается в форме Windows или страницы ASPX при определении для отчета свойства ReportSource в окне Свойства во время проектирования.

Статические данные, такие, как даты, изображения или другие текстовые поля, будут отображаться так же, как и во время выполнения. Динамические данные, такие, как данные из базы данных, могут использовать искусственные значения вместо данных из источника данных. Если ваш отчет содержит Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide сохраненные данные, то эти данные будут отображаться при предварительном просмотре во время разработки.

Встроенный конструктор SAP Crystal Reports предоставляет дополнительные функции просмотра посредством вкладки "Предварительный просмотр". При просмотре отчета на вкладке "Предварительный просмотр" SAP Crystal Reports выполнит попытку получения данных из указанного источника.

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

Вместо этого будут отображены данные, сохраненные в отчете в настоящий момент.

Вкладка предварительного просмотра отсутствует во встроенном конструкторе SAP Crystal Reports для Visual Studio.NET 2003.

Связанные сведения Вкладка предварительного просмотра [стр. 666] 1.4.6 Настройка элемента управления CrystalReportViewer Элемент управления CrystalReportViewer используется в.NET Framework для связывания с отчетами и их отображения. Элемент управления CrystalReportViewer по умолчанию включает элементы пользовательского интерфейса, облегчающие просмотр, сохранение и навигацию по отчету.

В зависимости от приложения, может потребоваться изменить некоторые элементы управления по умолчанию. SAP Crystal Reports позволяет настраивать внешний вид и функции средства просмотра в вашем приложении; это можно сделать несколькими способами, включая:

Панель инструментов CrystalReportViewer может быть удалена из средства просмотра.

Кнопки на панели инструментов CrystalReportViewer можно добавлять или удалять программными средствами.

Элемент управления CrystalReportViewer поддерживает настройку через CSS или с помощью тем.

В этом разделе подробно объясняется изменение элемента управления средства просмотра для вашего приложения.

Классы, используемые для просмотра отчетов CrystalDecisions.Windows.Forms.CrystalReportViewer Предоставляет свойства, методы и события для изменения и извлечения информации о внешнем виде и функциях элемента управления CrystalReportViewer.

CrystalDecisions.Web.CrystalReportViewer © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Предоставляет свойства, методы и события для изменения и извлечения информации о внешнем виде и функциях элемента управления CrystalReportViewer.

Связанные сведения Использование элементов управления средства просмотра отчетов [стр. 44] Индикатор обработки отчетов предоставляет визуальное отображение времени обработки на веб-сайте SAP Crystal Reports. Когда время обработки отчета достигнет указанного порога, появится диалоговое окно с индикатором хода выполнения текущего действия.

Текст диалогового окна, также как и время задержки перед появлением окна, можно задать в файле Web.Config веб-сайта.

Текст по умолчанию: "Дождитесь завершения обработки документа".

Время по умолчанию до появления индикатора обработки отчетов – 200 мс.

Связанные сведения Настройка файла Web.Config [стр. 20] 1.4.6.1.1 Настройка текста индикатора обработки отчета Контекст Текст сообщения индикатора обработки отчета настраивается в файле Web.Config вашего веб-сайта.

Процедура 1. Добавьте в приложение элемент управления CrystalReportViewer.

2. Откройте файл Web.Config.

приложение. Visual Studio предложит создать новый файл Web.Config. Нажмите кнопку ОК, чтобы создать новый файл.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. В файле Web.Config добавьте параметр NameValueSectionHandler в качестве первого дочернего объекта элемента настройки.

Элемент configSections должен являться уникальным первым дочерним объектом элемента configuration. Если элемент configSections для Crystal Reports уже существует, добавьте элемент section для CrystalReportsViewer к существующему узлу configSections.

4. Добавьте параметр processingIndicatorText сразу после элемента configSections.

5. Замените текст атрибута value сообщением, которое требуется отображать в индикаторе обработки Элемент processingIndicatorText управляет текстом, отображаемым в индикаторе обработки отчетов. Текст по умолчанию: "Дождитесь завершения обработки документа".

Результаты Теперь элемент управления CrystalReportViewer должен использовать в индикаторе обработки отчетов пользовательское сообщение.

В этом примере задержка индикатора обработки отчетов уменьшается до 20 мс, а отображаемое сообщение изменяется на “Благодарим за ожидание”.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.4.6.1.2 Изменение задержки перед появлением индикатора обработки отчетов Контекст Задержка перед появлением индикатора обработки отчетов настраивается в файле Web.Config для вебсайта. Элемент processingIndicatorDelay управляет временем задержки перед появлением индикатора обработки отчетов.

Процедура 1. Добавьте в приложение элемент управления CrystalReportViewer.

2. Откройте файл Web.Config.

приложение. Visual Studio предложит создать новый файл Web.Config. Нажмите кнопку ОК, чтобы создать новый файл.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. В файле Web.Config добавьте параметр NameValueSectionHandler в качестве первого дочернего объекта элемента настройки.

Элемент configSections должен являться уникальным первым дочерним объектом элемента configuration. Если элемент configSections для SAP Crystal Reports уже существует, добавьте элемент section для CrystalReportsViewer к существующему узлу configSections.

4. Добавьте параметр processingIndicatorDelay сразу после элемента configSections.

5. Замените текст атрибута value на значение времени, которое должно пройти перед появлением индикатора обработки отчетов.

Значение указывается в миллисекундах. Если задать значение 0, индикатор обработки отчетов будет отключен. Значение по умолчанию – 200 мс.

В этом примере задержка индикатора обработки отчетов уменьшается до 20 мс, а отображаемое сообщение изменяется на “Благодарим за ожидание”.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.4.6.2 Поддержка нескольких языков в элементе управления CrystalReportViewer Версия SAP Crystal Reports для разработчиков Microsoft Visual Studio поддерживает работу с многоязычными веб-клиентами и клиентами Windows с использованием функций динамической локализации.

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

Связанные сведения Учебное пособие: настройка многоязыковой поддержки клиентов [стр. 596] В этом учебном пособии приводятся пояснения по настройке многоязыковой поддержки клиентов на веб-сайте или в проекте Windows.

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Файлы языковых ресурсов Существует два возможных источника языковых ресурсов для элемента управления CrystalReportViewer на веб-сервере или клиенте Windows.

Библиотеки стандартных языковых ресурсов, включающие следующие языки:

Китайский (упрощенное письмо) (zh-chs) Китайский (традиционное письмо) (zh-cht) Файлы пользовательских языковых ресурсов, создаваемые в виде текстовых строк и компилируемые как библиотеки пользовательских языковых ресурсов.

Нейтральные и ненейтральные ресурсы Языковые ресурсы могут включать как нейтральные, так и ненейтральные ресурсы.

К нейтральным ресурсам относятся общие языковые настройки, например en (для английского языка), fr (для французского языка) или jp (для японского языка).

Ненейтральные ресурсы представляют собой языковые версии, классифицируемые по дополнительным критериям, например по региону: de-AT для немецкого языка (Австрия).

Глобальные и локальные ресурсы Стандартные языковые ресурсы устанавливаются в GAC и таким образом являются глобально доступными ресурсами, в то время как пользовательские языковые ресурсы могут быть доступными глобально или локально.

Папка пользовательских языковых ресурсов может храниться в централизованном хранилище с общим доступом либо в локальном каталоге веб-приложения или приложения Windows.

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

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Особенности использования глобальных и локальных ресурсов Использование глобальных ресурсов является предпочтительным, если ресурсы совместно используются несколькими приложениями. Например, для веб-сервера с несколькими веб-сайтами, требующими использования единого набора языковых ресурсов, глобальные ресурсы являются оптимальным решением.

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

В большинстве случаев для веб-приложений используются глобальные ресурсы, а для приложений Windows – локальные.

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

Наличие ненейтральных и нейтральных ресурсов также влияет на очередность загрузки ресурсов. Если для определенного языка используются и нейтральные, и ненейтральные ресурсы (например, "Немецкий (Австрия)" и "Немецкий"), приоритет имеют ненейтральные ресурсы.

В обоих случаях специализированные версии имеют приоритет перед стандартными.

Язык клиентского приложения Язык отображения клиентского приложения во время выполнения определяют перечисленные ниже факторы.

Для приложения Windows:

параметр "Языковой стандарт" на компьютере каждого пользователя.

Для веб-сайта:

параметр "Языковой стандарт" для веб-сервера;

параметр "Язык" в браузере клиента;

свойство Culture, определяемое на отдельной странице ASPX.

1.4.6.2.2 Поддержка кодировок Unicode и GB Версия SAP Crystal Reports для разработчиков Microsoft Visual Studio поддерживает символы международных языков из следующих стандартных наборов:

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Чтобы получить представление о механизме поддержки кодировок Unicode и GB18030 в SAP Crystal Reports, необходимо ознакомиться с тремя различными представлениями символов (репертуар символов, символы как кодовые позиции, символы как кодированные данные). Также необходимо иметь представление об отношении между кодовыми позициями (более точный термин для кодированных символов) и кодовыми единицами.

Чтобы получить представление о стандартах наборов символов, необходимо понимать различие между тремя представлениями символов.

Репертуар символов (абстрактный список символов).

Символы как кодовые позиции со скалярными значениями.

Символы как кодированные данные.

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

Репертуар символов существует в обоих стандартах Unicode и GB18030. При добавлении новых символов к одному стандарту они также добавляются и к другому стандарту.

Символы как кодовые позиции со скалярными значениями Это представление символов относится только к Unicode, но не относится к GB18030.

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

Кодовые позиции существуют в кодовом пространстве. Кодовое пространство состоит из диапазона скалярных значений, разделенных на две плоскости:

Базовая многоязычная плоскость (размером 64 Кб).

В Unicode эта плоскость включает шестнадцатеричные значения в диапазоне от U+0000 до U+FFFF.

Дополнительная многоязычная плоскость (16 дополнительных диапазонов по 64 Кб каждый).

В Unicode эта плоскость включает шестнадцатеричные значения в диапазоне от U+10000 до U+10FFFF.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Полное кодовое пространство, содержащее все возможные скалярные значения, имеет размер 17 * 64 Кб (1 088 000 возможных значений).

Символы как кодированные данные Любой формат кодирования преобразует символы из репертуара символов в кодированные данные.

В GB18030 кодированные данные формируются непосредственно из репертуара символов: концепция скалярных значений как связующего звена между репертуаром символов и кодированными данными используется только в Unicode.

В Unicode кодированные данные формируются путем применения определенного алгоритма к скалярному значению.

В Unicode существует три формата кодирования символов:

1.4.6.2.2.2 Отношение между кодовыми позициями и кодовыми единицами Чтобы получить представление о механизме поддержки кодировок Unicode и GB18030 в версии SAP Crystal Reports для разработчиков Microsoft Visual Studio, необходимо понимать отношение между кодовыми позициями и кодовыми единицами.

Кодовые позиции и кодовые единицы В любой кодировке кодовые позиции сопоставляются с одной или несколькими кодовыми единицами.

Кодовая единица является минимальной комбинацией битов, представляющей единицу кодированного текста в любом формате кодировки. Размер кодовой единицы соответствует формату кодировки.

Кодовая единица в UTF-8 состоит из 8 бит.

Кодовая единица в UTF-16 состоит из 16 бит.

Кодовая единица в UTF-32 состоит из 32 бит.

В GB18030 кодовая единица состоит из 8 бит.

Число кодовых единиц в каждой кодовой позиции Число кодовых единиц, сопоставляемых с кодовой позицией, отличается для разных форматов кодировок:

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Из-за небольшого размера кодовых единиц в UTF-8 каждой кодовой позиции часто соответствует несколько кодовых единиц. Кодовые позиции сопоставляются с одной, двумя, тремя или четырьмя кодовыми единицами.

Кодовые единицы в UTF-16 в два раза больше 8-битовых кодовых единиц. Следовательно, любые кодовые позиции со скалярным значением менее U+10000 кодируются с помощью одной кодовой Для кодовых позиций со скалярным значением U+10000 и более требуются две кодовые единицы на каждую кодовую позицию. Этим парам кодовых единиц в UTF-16 соответствует уникальный термин "суррогатные пары Unicode".

Поддержка суррогатных пар Unicode рассмотрена ниже.

32-битовый формат, используемый в UTF-32, достаточно велик для кодирования любой кодовой позиции с помощью одной кодовой единицы.

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

Поддержка суррогатных пар Unicode Некоторые системы письма, поддерживаемые кодировкой Unicode, содержат символы, кодовые позиции которых имеют скалярные значения U+10000 и выше. В UTF-16 такие кодовые позиции кодируются с помощью суррогатных пар.

Правильность обработки суррогатных пар Unicode очень важна. Например, во время работы с текстом в приложении, использующем формат кодировки UTF-16, при перемещении курсора при добавлении, удалении или выделении символов для вырезания, копирования или вставки каждая кодовая позиция должна считаться отдельным символом текста.

1.4.6.2.2.3 Поддержка GB18030 через Unicode в SAP Crystal Reports Версия SAP Crystal Reports для разработчиков Microsoft Visual Studio не обеспечивает прямую поддержку кодировки GB18030. Вместо этого доступ к GB18030 осуществляется с помощью значений, уже преобразованных в один из форматов кодировки Unicode.

Источниками таких преобразований могут быть.NET Framework, драйверы некоторых баз данных и операционная система Windows. Как правило, текст сохраняется на жестком диске в формате UTF-8 и загружается в память в формате UTF-16. SAP Crystal Reports поддерживает суррогатные пары Unicode в формате UTF-16.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Примеры поддержки GB18030 через Unicode Далее перечислены наиболее важные области, в которых поддержка GB18030 осуществляется с помощью преобразования в Unicode.

Базы данных, содержащие данные, кодированные в GB18030.

Данные баз данных, кодированные в GB18030, поддерживаются только в том случае, если драйвер базы данных преобразует данные в формат UTF-16 во время поиска.

Microsoft SQL Server 2005 преобразует данные GB18030 в формат UTF-16 во время поиска. Сведения относительно других серверов можно получить у поставщика базы данных.

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

Независимо от типа источника наборы данных форматируются как файлы XML, использующие UTF-8.

Веб-службы, использующие данные из источника GB18030.

Любой текст, отправленный или полученный через веб-службу, уже преобразован в Unicode.

Неподдерживаемые сценарии GB Основной ситуацией, когда SAP Crystal Reports не поддерживает GB18030, является доступ к текстовым файлам, использующим кодировку GB18030, или импорт таких файлов.

Текстовый файл GB18030 сначала необходимо преобразовать в Unicode с помощью ПО стороннего производителя, после чего SAP Crystal Reports сможет взаимодействовать с текстовым файлом Unicode.

В предыдущих версиях SAP Crystal Reports для разработчиков Microsoft Visual Studio при использовании элемента управления CrystalReportViewer требовалось перехватывать все возможные исключения.

Любое неперехваченное исключение приводило к прерыванию обработки страницы и отображению сообщения об ошибке.

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.4.6.3.1 Подавление ошибок на странице с помощью метода обработки события Error Контекст Для подавления исключений осуществляется вызов метода обработки события Error и устанавливается значение True для ErrorEventArgs.Handled в обработчике событий.

Процедура 1. Добавьте в класс, содержащий ваш код, метод обработки события Error.

2. В обработчике событий установите для свойства ErrorEventArgs.Handled значение True.

Sub myCrystalReportViewer_Error(ByVal source As Object, ByVal e As CrystalDecisions.Web.ErrorEventArgs) void crystalReportViewer_Error(object source, CrystalDecisions.Web.ErrorEventArgs e) 1.4.6.4 Настройка элемента управления CrystalReportViewer с помощью CSS Визуальное отображение элемента управления CrystalReportViewer создается с использованием графики и каскадных таблиц стилей (CSS).

Таблица стилей с именем default.css находится в подкаталоге css виртуального каталога средства просмотра.

В Visual Studio 2005 и более поздних версиях этой системы (а также в ASP.NET версии 2.0) внешний вид визуальных элементов управления можно настраивать с помощью нового средства "Темы". Темы можно применять к элементу управления CrystalReportViewer для обеспечения единообразного внешнего вида элементов управления на странице для всего веб-сайта.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Связанные сведения Настройка элемента управления CrystalReportViewer с помощью тем [стр. 241] Диалоговое окно "Задание класса CSS" [стр. 966] Форматирование отчетов с помощью каскадных таблиц стилей [стр. 751] 1.4.6.4.1 Настройка CSS для элемента управления CrystalReportViewer Контекст Доступ к таблице стилей можно получить из свойства CssFileName элемента управления CrystalReportViewer, которое можно просмотреть в окне "Свойства", когда элемент управления CrystalReportViewer открыт в режиме проекта.

Процедура 1. Создайте веб-сайт с элементом управления CrystalReportViewer и отчетом Crystal.

2. Скомпилируйте и запустите проект хотя бы один раз, чтобы отобразить элемент управления CrystalReportViewer со стандартными настройками стилей, а затем выйдите из режима отладки.

3. Откройте страницу Default.aspx в режиме проекта.

4. Щелкните элемент управления CrystalReportViewer, чтобы его выделить.

5. В окне "Свойства" найдите каталог, в котором находится файл "default.css", в свойстве CssFileName.

6. В проводнике Windows найдите этот файл и скопируйте его в каталог веб-сайта.

7. Измените имя файла на "custom.css.".

8. В свойстве CssFileName укажите путь к каталогу веб-сайта и файлу "custom.css".

9. Перекомпилируйте проект и убедитесь, что элемент управления CrystalReportViewer отображает файл "custom.css" в локальном каталоге веб-сайта.

10. Выйдите из режима отладки.

11. Откройте файл "custom.css" и отредактируйте таблицу стилей.

12. Перекомпилируйте проект и убедитесь, что внесенные изменения были применены к элементу управления CrystalReportViewer.

1.4.6.5 Настройка элемента управления CrystalReportViewer с помощью тем Новое средство "Темы" предназначено для настройки единообразного внешнего вида всех визуальных элементов управления на странице (или по всему веб-сайту).

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Чтобы настроить внешний вид визуальных элементов управления на уровне страницы, выберите необходимое имя темы в свойстве Theme визуального элемента управления. Выбранная тема будет применена ко всем визуальным элементам управления на странице.

Элемент управления CrystalReportViewer поддерживает темы ASP.NET 2.0. Любые изменения в свойстве Theme распространяются на элемент управления CrystalReportViewer и все остальные визуальные элементы управления на странице.

Дополнительные сведения о настройке тем в ASP.NET 2.0 см. в документации к.NET Framework версии 2.0.

Связанные сведения Настройка элемента управления CrystalReportViewer с помощью CSS [стр. 240] 1.4.6.6 Настройка панели инструментов CrystalReportViewer Панель инструментов CrystalReportViewer содержит кнопки, управляющие обычными функциями элемента управления CrystalReportViewer, такими как печать, экспорт или изменение текущей страницы, доступной для просмотра.

Настройка кнопок панели инструментов Панель инструментов CrystalReportViewer содержит кнопки, управляющие обычными функциями элемента управления CrystalReportViewer, такими как печать, экспорт или изменение текущей страницы, доступной для просмотра.

Управление видимостью каждой из кнопок элемента управления CrystalReportViewer осуществляется с помощью соответствующего свойства класса CrystalReportViewer. Имена свойств в версии элемента управления CrystalReportViewer для Windows и веб-версии различаются.

На веб-сайте внешний вид панели управления может контролироваться с помощью CSS или с помощью тем ASP.NET. Можно изменять внешний вид значков кнопок по умолчанию путем изменения изображений в виртуальном каталоге средства просмотра.

Удаление панели инструментов.

Можно удалить панель инструментов из элемента управления CrystalReportViewer программными средствами или через панель быстрых задач. Можно создавать пользовательские элементы управления для копирования поведения многих кнопок панели инструментов CrystalReportViewer.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Связанные сведения Настройка элемента управления CrystalReportViewer с помощью CSS [стр. 240] Настройка элемента управления CrystalReportViewer с помощью тем [стр. 241] Каталог средств просмотра [стр. 14] 1.4.6.6.1 Управление отображением кнопок на панели инструментов CrystalReportViewer Каждая кнопка панели инструментов CrystalReportViewer может быть отключена или включена индивидуально.

Управление видимостью каждой из кнопок элемента управления CrystalReportViewer осуществляется с помощью соответствующего свойства класса CrystalReportViewer. В SAP Crystal Reports.NET SDK есть два элемента управления CrystalReportViewer. Для веб-сайта следует использовать класс CrystalDecisions.Web.CrystalReportViewer. Для приложения Windows следует использовать класс CrystalDecisions.Windows.Forms.CrystalReportViewer.

Имя свойства, управляющего видимостью кнопки панели инструментов, зависит от используемой версии CrystalReportViewer. Для класса CrystalDecisions.Web.CrystalReportViewer имя каждого свойства начинается с “Has”, например HasExportButton, HasPrintButton или HasSearchButton. Для класса CrystalDecisions.Windows.Forms.CrystalReportViewer имя каждого свойства начинается с “Show”, например ShowExportButton, ShowPrintButton или ShowSearchButton.

Для получения дополнительных сведений о классе CrystalDecisions.Web.CrystalReportViewer или CrystalDecisions.Windows.Forms.CrystalReportViewer см. руководство SAP Crystal Reports.NET API Reference.

Удаление кнопки с панели инструментов не отключит соответствующее поведение.

В этом примере показано, как удалить несколько кнопок с панели инструментов CrystalReportViewer на веб-сайте.

Private Sub ConfigureCrystalReports() CrystalReportViewer1.HasPrintButton = False CrystalReportViewer1.HasExportButton = False CrystalReportViewer1.HasSearchButton = False private void ConfigureCrystalReports() InitializeComponent();

crystalReportViewer1.HasPrintButton = false;

crystalReportViewer1.HasExportButton = false;

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide crystalReportViewer1.HasSearchButton = false;

Связанные сведения Удаление кнопки печати из элемента управления CrystalReportViewer [стр. 116] Удаление кнопки экспорта из элемента управления CrystalReportViewer [стр. 130] 1.4.6.6.2 Удаление панели инструментов CrystalReportViewer Контекст Панель инструментов можно удалить из приложения программными средствами или, сняв флажок Отобразить панель инструментов на панели быстрых задач Задания CrystalReportViewer.

Процедура 1. Добавьте в приложение элемент управления CrystalReportViewer.

2. Задайте для свойства CrystalReportViewer.DisplayToolbar значение false.

Результаты При запуске приложения панель инструментов не должна появиться на элементе управления CrystalReportViewer.

Private Sub ConfigureCrystalReports() CrystalReportViewer1.DisplayToolbar = False private void ConfigureCrystalReports() InitializeComponent();

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide crystalReportViewer1.DisplayToolbar = false;

1.4.6.6.3 Изменение кнопок панели инструментов по умолчанию в программе веб-просмотра Контекст Панель инструментов CrystalReportViewer состоит из различных графических элементов, которые отображают большинство доступных свойств. Эти графические элементы хранятся в виртуальном каталоге средства просмотра для конкретной версии SAP Crystal Reports для разработчиков Microsoft Visual Studio.

На панели инструментов веб-сайта графика используется для представления следующих свойств:

Групповое дерево Экспорт Свернуть элемент Постраничная навигация: первая, последняя, предыдущая и следующая страница.

Перейти к странице Логотип SAP BusinessObjects Можно сменить эти кнопки на ваш собственный набор пользовательских значков.

Процедура 1. Переход к виртуальному каталогу средства просмотра.

2. Дважды щелкните папку images.

3. Дважды щелкните папку toolbar.

В папке toolbar находятся все значки, которые используются для панели инструментов CrystalReportViewer.

4. Замените значки по своему усмотрению или откройте значки в графическом редакторе, чтобы изменить их. Однако имя значка должно остаться прежним.

Результаты Изображения в панели инструментов CrystalReportViewer будут изменены для всех приложений, использующих этот виртуальный каталог средств просмотра.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Связанные сведения Каталог средств просмотра [стр. 14] 1.4.7 Работа с отчетами SAP Crystal Reports только для чтения (RPTR) Отчеты SAP Crystal Reports только для чтения – это отчеты Crystal, которые можно просматривать с помощью приложений средства просмотра отчета, но нельзя изменять с помощью SDK или открывать в приложениях дизайнера отчетов. Это позволяет защитить интеллектуальную собственность за счет предотвращения изменения отчета пользователями или получения ими патентованной бизнес-логики, хранящейся в определении отчета.

Отчеты SAP Crystal Reports только для чтения сохраняются в файлах с расширением RPTR вместо расширения RPT, которое используется для отчетов Crystal. Для создания отчета в формате RPTR необходимо выполнить экспорт отчета RPT в формат RPTR. Обратите внимание, что отсутствуют поддерживаемые способы преобразования отчета RPTR в формат RPT.

Поскольку определение отчета RPTR нельзя изменять, нельзя использовать этот SDK для задания расположения источника данных отчета RPTR через контроллер базы данных. При необходимости можно обновить данные отчета RPTR во время выполнения.

С помощью этого пакета SDK можно выполнять следующие задачи:

Создание отчета RPTR посредством экспорта отчета Crystal (RPT) в формат RPTR.

В формат RPTR можно экспортировать только отчеты, созданные в приложении SAP Crystal Reports Просмотр отчета RPTR посредством получения соответствующего источника отчета и его передачи в средство просмотра.

Обновление данных отчета RPTR во время выполнения.

Открытие отчета RPTR и его экспорт в форматы, отличные от RPT.

С помощью этого пакета SDK нельзя выполнять следующие задачи:

Изменение определения отчета RPTR.

Установка расположения источника данных для отчета.

Извлечение сведений об определении отчета RPTR, в том числе формул, полей, разделов и объектов, из которых состоит отчет.

Экспорт отчета RPTR в формат RPT.

Добавление отчета RPTR в качестве подотчета в отчет RPT.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1 Учебные пособия по объектной модели CrystalReportViewer В учебных пособиях этого раздела используются методы и свойства из класса CrystalReportViewer и классов пространства имен CrystalDecisions.Shared.

В учебных пособиях этого раздела используются методы и свойства из класса CrystalReportViewer и классов пространства имен CrystalDecisions.Shared.

1.5.1.1 Учебное пособие: вход в защищенную базу данных SQL Server В этом учебном пособии описывается способ добавления кода входа в систему для отображения отчета, содержащего информацию из защищенной базы данных SQL Server.

Вступление При использовании объектной модели CrystalReportViewer для входа в защищенную базу данных SQL Server необходимо использовать классы из пространства имен CrystalDecisions.Shared.

Свойства класса ConnectionInfo используются для соединения с сервером базы данных или с источниками данных ODBC. В этом учебном пособии задаются такие свойства, как ServerName, DatabaseName, UserID и Password. Если указать только DatabaseName, UserID и Password, осуществляется вход на сервер, установленный по умолчанию для базы данных, указанной в отчете. Однако если назначить другое свойство ServerName, можно перенаправить отчет на другой сервер во время выполнения.

Следует извлечь экземпляр TableLogOnInfos из свойства LogOnInfo элемента управления CrystalReportViewer. Затем необходимо назначить экземпляр ConnectionInfo каждому объекту TableLogOnInfo в экземпляре TableLogOnInfos.

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

раздел Учебное пособие: вход в защищенную базу данных SQL Server с подотчетом [стр. 385]).

Чтобы собрать это учебное пособие, используя объектную модель ReportDocument, см. раздел Учебное пособие: вход в защищенную базу данных SQL Server [стр. 247]. Объектная модель ReportDocument предпочтительнее объектной модели CrystalReportViewer.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Примеры кода Каждое учебное пособие поставляется с примерами кода Visual Basic и C#, отображающими завершенную версию проекта. Следуя инструкциям пособия, создайте новый проект или откройте проект примера кода, чтобы начать работу с завершенной версией.

Примеры кода хранятся в папках, упорядоченных по языку и типу проекта. Ниже приведены имена папок для каждой версии примера кода.

Веб-сайт C#: CS_Web_CRVObjMod_DBLogon Windows-проект C#: CS_Win_CRVObjMod_DBLogon Веб-сайт Visual Basic: VB_Web_CRVObjMod_DBLogon Windows-проект Visual Basic: VB_Win_CRVObjMod_DBLogon Связанные сведения Выбор правильной объектной модели для проекта [стр. 32] Каталог образцов отчетов [стр. 15] 1.5.1.1.1 Создание отчета, соединенного с защищенной базой данных SQL Server Предпосылки Конфигурация SQL Server:

Если установлена система SQL Server (или OEM-версия MSDE), в ней необходимо настроить запрос аутентификации SQL Server.

При отсутствии системы SQL Server (или OEM-версии MSDE) необходимо установить MSDE с заданным для аутентификации SQL Server значением "True".

Необходимо установить базу данных Northwind, поставляемую с SQL Server, а также убедиться, что она запрашивает аутентификацию SQL Server.

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

Контекст После настройки SQL Server и базы данных Northwind в соответствии с инструкциями, приведенными выше, все готово для создания отчета, который будет защищенным путем собирать данные из базы данных Northwind.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Данная процедура работает только с проектами, созданными из Настройка проекта [стр. 16]. Настройка проекта включает специальные ссылки на пространство имен и конфигурацию кода, необходимую для выполнения данной процедуры. Выполнение процедуры без этой конфигурации невозможно.

Процедура 1. В Проводнике решений щелкните правой кнопкой мыши имя проекта, выделенное жирным шрифтом, укажите пункт Добавить, а затем выберите команду Добавить новый элемент.

2. В диалоговом окне Добавление нового элемента в представлении Шаблоны выберите шаблон Crystal 3. В поле Имя введите имя "NorthwindCustomers.rpt" и нажмите кнопку Открыть.

4. На панели Создание нового документа Crystal Report диалогового окна Галерея Crystal Reports выберите С помощью мастера отчетов.

5. На панели Выбор эксперта выберите элемент Стандартный. Нажмите кнопку ОК.

Откроется окно мастера создания стандартных отчетов.

6. На панели Доступные источники данных разверните папку Создать новое соединение.

7. В открывшейся подпапке разверните папку OLE DB (ADO).

Откроется окно "OLE DB (ADO)".

8. Выберите элемент Поставщик Microsoft OLE DB для SQL Server и нажмите кнопку Далее.

9. В полях Сервер, Идентификатор пользователя и Пароль введите значения сервера базы данных, идентификатора пользователя и пароля.

10. В раскрывающемся списке База данных выберите элемент "Northwind".

Не устанавливайте флажок "Интегрированная защита", так как вместо аутентификации NT используется аутентификация SQL Server.

11. Нажмите кнопку Завершить.

Откроется папка "OLE DB", отображая сервер баз данных и базу данных Northwind на нем.

12. Разверните узлы Northwind, dbo и Таблицы, а затем выберите таблицу Клиенты.

13. Щелкните символ > для перемещения таблицы на панель Выбранные таблицы, а затем нажмите кнопку 14. Разверните таблицу Клиенты, нажмите и удерживайте клавишу Ctrl, выбирая поля Название компании, Имя контакта и Город.

15. Нажмите значок >, чтобы переместить эти поля в панель Отображаемые поля, а затем нажмите кнопку 16. На панели Доступные поля в разделе Поля отчета выберите пункт Customer.City, затем щелкните символ > для перемещения этого поля на панель Группировать по, после чего нажмите кнопку Готово.

Будет создан отчет NorthwindCustomers, который будет загружен в главное окно программы Visual Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide В разделе Настройка проекта [стр. 16] элемент управления CrystalReportViewer был помещен в веб-форму или форму Windows. На предыдущем этапе в проект был добавлен отчет NorthwindCustomers.

В этом разделе устанавливается связь между путем к каталогу отчета NorthwindCustomers и элементом управления CrystalReportViewer. Затем выполняется тестирование правильности отображения отчета при незаданном коде входа базы данных.

1.5.1.1.2.1 Установка связи между путем к каталогу отчета NorthwindCustomers и элементом управления CrystalReportViewer Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите команду Код.

3. Найдите метод ConfigureCrystalReports() (созданный в разделе Настройка проекта [стр. 16]).

4. Объявите строковую переменную с именем reportPath и назначьте для нее путь исполняемого модуля, ведущий к локальному отчету. Этот путь определяется по-разному для веб-сайтов и для проектов Для веб-сайта передайте имя локального файла отчета в виде строкового параметра в метод Server.MapPath(). Это определит расположение локального отчета как путь к каталогу на жестком диске во время выполнения.

Dim reportPath As String = Server.MapPath("NorthwindCustomers.rpt") string reportPath = Server.MapPath("NorthwindCustomers.rpt");

Для проекта Windows соедините свойство Application.StartupPath с обратной косой чертой и именем файла локального отчета. Это определит расположение отчета в том же каталоге, что и исполняемый файл Windows.

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

Dim reportPath As String = Application.StartupPath & "\" & "NorthwindCustomers.rpt" string reportPath = Application.StartupPath + "\\" + "NorthwindCustomers.rpt";

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 5. Назначьте путь к каталогу отчета NorthwindCustomers свойству ReportSource элемента управления CrystalReportViewer.

myCrystalReportViewer.ReportSource = reportPath crystalReportViewer.ReportSource = reportPath;

1.5.1.1.2.2 Тестирование загрузки отчета NorthwindCustomers Контекст Все готово к сборке и запуску проекта. Ожидается, что загрузить отчет не удастся, так как код для входа в базу данных еще не создан.

Процедура 1. В меню Построение выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. Если в проекте Windows используется невложенный отчет, найдите скомпилированный исполняемый файл Windows в подкаталоге \bin\debug\ и скопируйте отчет в этот подкаталог.

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

4. В меню Отладка выберите команду Начать.

Отчет NorthwindCustomers не отобразится. Он отобразится после добавления кода входа в базу Результаты могут различаться в зависимости от используемой версии SAP Crystal Reports.

Например, если установлена версия SAP Crystal Reports 10 или выше, появится запрос сведений для входа в базу данных для этого отчета. Если установлена предыдущая версия SAP Crystal Reports, возникнет исключение. В любом случае необходимо выполнить следующую пошаговую процедуру для создания полнофункционального приложения.

5. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.1.3 Добавление кода входа для отчета Теперь все готово для добавления кода входа в класс code-behind. Начните с создания вспомогательного private-метода, SetDBLogonForReport().

1.5.1.1.3.1 Создание и кодирование метода SetDBLogonForReport() Процедура 1. Вернитесь в класс code-behind для этой веб-формы или формы Windows.

2. В нижней части класса создайте новый private-метод с именем SetDBLogonForReport(), в подписи которого передается ConnectionInfo.

Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo) private void SetDBLogonForReport(ConnectionInfo connectionInfo) 3. В этом методе извлеките экземпляр TableLogOnInfos из свойства LogOnInfo класса CrystalReportViewer.

TableLogOnInfos представляет собой индексированный класс, который содержит экземпляры класса TableLogOnInfo.

Dim myTableLogOnInfos As TableLogOnInfos = myCrystalReportViewer.LogOnInfo TableLogOnInfos tableLogOnInfos = crystalReportViewer.LogOnInfo;

4. Создайте цикл foreach, который будет охватывать каждый экземпляр TableLogOnInfoв индексированном экземпляре класса TableLogOnInfos.

For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos foreach(TableLogOnInfo tableLogOnInfo in tableLogOnInfos) © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 5. В цикле foreach задайте для свойства ConnectionInfo объекта TableLogOnInfo параметр ConnectionInfo.

myTableLogOnInfo.ConnectionInfo = myConnectionInfo tableLogOnInfo.ConnectionInfo = connectionInfo;

1.5.1.1.3.2 Изменение метода ConfigureCrystalReports() для обращения к коду входа в базу данных Контекст С помощью этой пошаговой процедуры был создан метод настройки входа в базу данных. Однако необходимо изменить метод ConfigureCrystalReports() для обращения к этому методу, чтобы в отчете отображалось наличие сведений для входа в базу данных.

Для изменения метода ConfigureCrystalReports() необходимо выполнить два действия:

настроить экземпляр ConnectionInfo;

Вызовите метод SetDBLogonForReport().

Процедура 1. В методе ConfigureCrystalReports() объявите класс ConnectionInfo и создайте его экземпляр ниже кода, который связывает отчет с элементом правления CrystalReportViewer.

Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo() ConnectionInfo connectionInfo = new ConnectionInfo();

2. В следующей строке вызовите метод SetDBLogonForReport() и перейдите в экземпляр ConnectionInfo.

SetDBLogonForReport(myConnectionInfo) SetDBLogonForReport(connectionInfo);

3. Задайте свойства DatabaseName, UserID и Password для экземпляра ConnectionInfo.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide В целях безопасности необходимо использовать учетную запись базы данных с ограниченными разрешениями доступа.

В создаваемом коде замените пароль "1234" (показан ниже) новым паролем.

myConnectionInfo.DatabaseName = "Northwind" myConnectionInfo.UserID = "limitedPermissionAccount" myConnectionInfo.Password = "1234" connectionInfo.DatabaseName = "Northwind";

connectionInfo.UserID = "limitedPermissionAccount";

connectionInfo.Password = "1234";

1.5.1.1.3.3 Тестирование загрузки отчета NorthwindCustomers Контекст Все готово к сборке и запуску проекта. Отчет должен правильно загрузиться, так как был добавлен код для входа в базу данных.

Процедура 1. В меню "Построение" выберите команду Построение решения.

2. В случае возникновения ошибок сборки сразу исправьте их.

3. В меню Отладка выберите команду Начать.

Отчет NorthwindCustomers отображается успешно.

4. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide В этом руководстве рассказывается о том, как изменить имя сервера базы данных, а не имя самой базы данных. Изменить имя базы данных с помощью элемента управления CrystalReportViewer невозможно.

1.5.1.1.4.1 Изменение расположения базы данных во время выполнения Процедура 1. В методе ConfigureCrystalReports() создайте несколько разрывов строк в коде после строки, которая вызывает метод SetDBLogonForReport().

2. В этих разрывах строк задайте свойство ServerName экземпляра ConnectionInfo.

В создаваемом коде замените образец имени сервера DevDatabaseServer (показано ниже) именем конкретного сервера.

myConnectionInfo.ServerName = "DevDatabaseServer" connectionInfo.ServerName = "DevDatabaseServer";

1.5.1.1.4.2 Тестирование возможности переключения отчета на альтернативный сервер баз данных во время выполнения Контекст Все готово к сборке и запуску проекта. Отчет должен перенаправиться на альтернативный сервер баз данных во время выполнения.

Процедура 1. В меню "Построение" выберите команду Построение решения.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 2. В случае возникновения ошибок сборки сразу исправьте их.

3. В меню Отладка выберите команду Начать.

Отчет NorthwindCustomers отображается успешно.

4. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

1.5.1.2 Учебное пособие: чтение и установка дискретных параметров В этом учебном пособии описывается создание отчета, к данным которого можно применять фильтры, основываясь на дискретных параметрах.

Вступление Дискретный параметр представляет собой одиночное значение, в отличие от параметра диапазона, который охватывает диапазон значений. Текстовые элементы (например, названия городов) обычно доступны через дискретные параметры. Числовые элементы (например, зарплаты сотрудников) обычно доступны через параметры диапазона.

В этом учебном пособии устанавливается значение дискретного параметра для просмотра отчета о клиентах, основанном на одном поле. Отчет отображает только тех клиентов, которые живут в городах, выбранных в списке городов. Список городов формируется из значений по умолчанию параметра "Город".

Значения по умолчанию для параметра "Город" формируются в отчете.

Для начала необходимо создать отчет о клиентах, содержащий параметр "Город". Отчет формирует данные из образца базы данных, который поставляется вместе с версией SAP Crystal Reports для разработчика Microsoft Visual Studio. Когда отчету приписываются значения в коде, создается список ArrayList, содержащий названия городов (Париж, Токио), и экземпляр этого ArrayList передается во вспомогательный метод, который устанавливает названия этих городов в качестве текущих значений параметра "Город". Затем устанавливается связь между отчетом и элементом управления CrystalReportViewer, после чего можно просматривать отчет, отображающий только тех клиентов, которые живут в Париже и Токио.

В следующей части учебного пособия будут выполнены следующие действия:

Создание метода, получающего все значения по умолчанию и возвращающего их в ArrayList.

Добавление в форму элемента управления ListBox и заполнение ее данными из ArrayList.

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

В заключающей части учебного пособия кодируется обработка нажатия кнопки для извлечения любых выбранных элементов из списка ListBox и установки их в качестве текущих значений параметра "Город".

Отчет повторно отображает только тех клиентов, которые живут в городах, выбранных в органе управления ListBox.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Примеры кода Данное учебное пособие содержит образцы кода на языках Visual Basic и C#, демонстрирующие готовую версию проекта. Следуя инструкциям пособия, создайте новый проект или откройте проект примера кода, чтобы начать работу с завершенной версией.

Примеры кода хранятся в папках, упорядоченных по языку и типу проекта. Ниже приведены имена папок для каждой версии примера кода.

Веб-сайт C#: CS_Web_CRVObjMod_Parameters Windows-проект C#: CS_Win_CRVObjMod_Parameters Веб-сайт Visual Basic: VB_Web_CRVObjMod_Parameters Windows-проект Visual Basic: VB_Win_CRVObjMod_Parameters База данных Xtreme База данных Xtreme используется в некоторых учебных пособиях. Она включена с пакетом примеров кода, который может быть загружен с сайта http://www.sdn.sap.com/irj/boc/sdklibrary. Необходимо вручную создать соединение ODBC с базой данных.

Связанные сведения Каталог образцов отчетов [стр. 15] Для начала создадим отчет, который черпает информацию из базы данных Xtreme.

Процедура 1. В Проводнике решений щелкните правой кнопкой мыши имя проекта, выделенное жирным шрифтом, укажите пункт Добавить, а затем выберите команду Добавить новый элемент.

2. В диалоговом окне Добавление нового элемента в представлении Шаблоны выберите шаблон Crystal 3. В поле Имя введите имя CustomersByCity.rpt и нажмите кнопку Добавить.

4. На панели Создание нового документа Crystal Report диалогового окна Галерея Crystal Reports выберите С помощью мастера отчетов.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 5. На панели Выбор мастера выберите параметр Стандарт, затем нажмите кнопку ОК.

6. На панели Доступные источники данных окна мастера создания стандартных отчетов разверните папку Создать новое соединение.

7. В открывшейся подпапке разверните папку ODBC (RDO).

8. В окне ODBC (RDO) выберите правильную запись ODBC DSN для базы данных Xtreme, затем нажмите кнопку Готово.

9. Разверните узел Таблицы, дважды щелкните таблицу Клиент, чтобы переместить ее на панель Выбранные таблицы, и нажмите кнопку Далее.

10. Разверните таблицу Клиент, а затем, зажав клавишу CTRL, щелкните поля Имя клиента, Титул контакта, Адрес 1, Фамилия контакта и Город.

11. Щелкните символ > для перемещения этих полей на панель Отображаемые поля, а затем нажмите кнопку Далее.

12. На панели Доступные поля, в разделе Поля отчета, дважды щелкните элемент Клиент.Город, чтобы переместить поле в панель Сгруппировать по, и нажмите кнопку Готово.

Будет создан отчет CustomersByCity, который будет загружен в главное окно программы Visual Studio.

1.5.1.2.1.2 Добавление параметра "Город" Контекст Все готово к добавлению параметра с именем "Город" и его заполнения значениями по умолчанию.

Необходимо открыть Проводник полей, поскольку он предоставляет доступ к разным функциям отчета, включая параметры. Чтобы отобразить Проводник полей, в меню Crystal Reports выберите пункт Проводник полей.

Процедура 1. Если Проводник полей не отображается, на панели инструментов Crystal Reports нажмите кнопку Переключение вида поля.

Для отображения Проводника полей также можно открыть меню Crystal Reports и выбрать пункт Проводник полей.

2. В Проводнике полей щелкните правой кнопкой мыши элемент Поля параметров и выберите пункт Создать....

3. В диалоговом окне Создание поля параметра выполните описанные ниже действия.

a) Задайте Имя для элемента Город.

b) Задайте Тип для элемента Строка. Задайте Текст подсказки для элемента Выберите один или несколько городов.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide c) Задайте Поле значения для элемента Город.

d) Выберите Действия, затем выберите Добавить все значения базы данных. При этом на среднюю панель будет добавлен список всех городов.

e) В области Параметры значений установите для элемента Текст подсказки текст Выберите один f) В той же области установите для элемента Разрешить множественные значения значение True.

g) Для элемента Разрешить дискретные значения установите значение True.

4. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Создание поля параметра.

1.5.1.2.1.3 Подключение параметра "Город" к столбцу базы данных "Город" Контекст Теперь значения по умолчанию содержат большой список городов. Позже в этом учебном пособии мы обратимся к этому списку значений по умолчанию программным путем, через свойство ParameterFieldInfo класса CrystalReportViewer.

Теперь с помощью мастера выбора установим формулу, которая подключает столбец базы данных "Город" к только что созданному полю параметра "Город".

Процедура 1. На панели инструментов Crystal Reports щелкните элемент Мастер выбора.

2. В диалоговом окне Выбор поля в разделе Поля отчета выберите пункт Клиент.Город, а затем нажмите 3. В диалоговом окне Select Expert на вкладке Customer.City из раскрывающегося списка выберите элемент "равно".

4. В раскрывающемся списке, который появится справа, выберите первый элемент списка, {?Город}, и нажмите кнопку ОК.

Выбранный элемент, {?City}, является параметром "Город", который был создан раньше.

5. В меню Файл выберите команду Сохранить все.

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Следуя инструкциям в Настройка проекта [стр. 16] для подготовки к работе с этим учебным пособием, мы разместили элемент управления CrystalReportViewer на веб-форме или форме Windows. На предыдущих этапах в проект был добавлен отчет CustomersByCity.

В этом разделе устанавливается связь между путем к каталогу отчета CustomersByCity и элементом управления CrystalReportViewer. Затем выполняется проверка правильности отображения отчета при неустановленных текущих значениях его поля параметра.

1.5.1.2.2.1 Установка связи между путем к каталогу отчета CustomersByCity и элементом управления CrystalReportViewer Процедура 1. Откройте веб-форму или форму Windows.

2. В меню Вид выберите пункт Код для просмотра класса code-behind для этой веб-формы или формы 3. Найдите метод ConfigureCrystalReports() (созданный в разделе Настройка проекта [стр. 16]).

4. Объявите строковую переменную с именем reportPath и назначьте для нее путь исполняемого модуля, ведущий к локальному отчету. Этот путь определяется по-разному для веб-сайтов и для проектов Для веб-сайта передайте имя локального файла отчета в виде строкового параметра в метод Server.MapPath(). Это определит расположение локального отчета как путь к каталогу на жестком диске во время выполнения.

Dim reportPath As String = Server.MapPath("CustomersByCity.rpt") string reportPath = Server.MapPath("CustomersByCity.rpt");

Для проекта Windows соедините свойство Application.StartupPath с обратной косой чертой и именем файла локального отчета. Это определит расположение отчета в том же каталоге, что и исполняемый файл Windows.

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

Dim reportPath As String = Application.StartupPath & "\" & string reportPath = Application.StartupPath + "\\" + "CustomersByCity.rpt";

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 5. Назначьте путь к каталогу отчета CustomersByCity свойству ReportSource элемента управления CrystalReportViewer.

myCrystalReportViewer.ReportSource = reportPath crystalReportViewer.ReportSource = reportPath;



Pages:     | 1 |   ...   | 3 | 4 || 6 | 7 |   ...   | 17 |


Похожие работы:

«Концепция Развитие кластера судостроения в Санкт-Петербурге Санкт-Петербург 1 Основания для разработки концепции В настоящее время судостроение России проходит этап реорганизации отрасли, которая заключается в реструктуризации корпоративной структуры и территориальном перераспределении мощностей. Реорганизация вызвана трансформацией глобальных рынков. Крупные игроки, к числу которых относится судостроительный сектор Санкт-Петербурга, должны отреагировать на эти изменения, определив направления...»

«Final Cluster Analysis ПРОЕКТ: РАЗВИТИЕ КЛАСТЕРОВ И ИНТЕРНАЦИОНАЛИЗАЦИЯ ПРЕДПРИЯТИЙ ПРИГРАНИЧНЫХ РЕГИОНОВ РОССИИ И ЭСТОНИИ ТРАНСГРАНИЧНЫЕ КЛАСТЕРЫ СЕВЕРО-ЗАПАДА РОССИИ И СЕВЕРО-ВОСТОКА ЭСТОНИИ Данный проект финансируется Европейским Союзом 2009 1 Данный материал опубликован при поддержке Европейского Союза. Содержание публикации является исключительной ответственностью экспертов проекта “EstRuClusters Development” и ни в коей мере не отражает официальной позиции Европейского Союза....»

«СОВРЕМЕННЫЙ ТЕХНИЧЕСКИЙ ВЗГЛЯД НА АВТОМОБИЛЬНЫЕ ИННОВАЦИИ ДЕЛАЕТ НОВЫЕ ТЕХНОЛОГИИ ПОНЯТНЫМИ 3 В ДАННОМ ЧИСЛЕ Издание 03 | март 2014 Борьба с Борьба с загрязнением загрязнением 1 окружающей среды: все окружающей среды о выхлопных системах В связи с появлением новых Европейских директив по контролю за выбросами (Евро I, II, III, IV, V и новый Евро VI), выхлопная система и её элементы играют и будут играть более важную роль, чем когда-либо, оказывая непосредственное влияние на потребление...»

«АДМИНИСТРАЦИЯ ГОРОДА КЕМЕРОВО ИНВЕСТИЦИОННО – ИННОВАЦИОННЫЙ ПАСПОРТ ГОРОДА КЕМЕРОВО Кемерово 2012 Уважаемые инвесторы! Разрешите представить Вам город Кемерово - один из наиболее экономически развитых и привлекательных для инвестиций городов Кемеровской области. Наш город открыт для сотрудничества по всем направлениям. Преимущества географического положения позволили Кемерово стать одним из крупнейших промышленных, научных и культурных центров Кемеровской области. Основу промышленности города...»

«В помощь сметчику Ю.В. Жабенко, С.В. Краузе, О.М. Лабусевич, Н.А. Михаэлис, И.Ю. Носенко, Л.З. Рубинштейн, И.В. Семенова, Н.И.Тищенко, В.А. Тудвасева, Р.Д. Чунихина, Е.И. Шилова Сметное дело в строительстве Вопросы и ответы Под общ ей редакцией к.э.н. И.Ю.Носенко ТОМ1 ЗАО ИНиК Санкт-Петербург 2005 ББК 65.9(2)31 Н 84 У Д К 338.5:6 9 © ЗАО ИНиК © Носенко И.Ю. ISBN 5-901209­ 04-4 Н 84 Сметное дело в строительстве. Вопросы и ответы, том 1 СПб.: ЗАО ИНиК, 2005 - 384 с. В настоящем двухтомном...»

«Оглавление ПРЕЗИДЕНТ Путин поручил избранным главам субъектов сформировать дееспособные и ответственные органы власти Президент одобрил заморозку тарифов на год ГОСУДАРСТВЕННАЯ ДУМА ФС РФ Законопроект о размере платы за проживание в студенческих общежитиях внесен в Госдуму Госдума отклонила законопроект о конфискации имущества взяточников Госдума одобрила введение долгосрочных тарифов на коммунальные услуги Депутат фракции КПРФ, вице-президент РАН Жорес Алферов вновь выступил в Госдуме против...»

«ПРОЕКТ МЕЖКЛАСТЕРНАЯ ЛАБОРАТОРИЯ ПО СНИЖЕНИЮ ЭКОЛОГИЧЕСКИХ РИСКОВ И ЗАЩИТЕ ОКРУЖАЮЩЕЙ СРЕДЫ (INTERCLUSTER LABORATORY ON ENVIRONMENTAL PROTECTION AND RISKS ASSESSMENT (ILEPRA)) ОСНОВЫ ТЕХНОСФЕРНОЙ БЕЗОПАСНОСТИ Активная преобразовательская деятельность человека породила всё возрос-тающую проблему трансформации среды обитания, как самого человека, так и всего живого на Земле, создавая тем самым новую среду обитания – техносферу. Техносфера (от греч. techne — искусство, мастерство и sphaira — шар,...»

«ГОРНОЛЫЖНЫЙ КУРОРТ ККЖАЙЛАУ РЕЗЮМЕ ТЕХНИКО-ЭКОНОМИЧЕСКОГО ОБОСНОВАНИЯ МЕСТНОГО БЮДЖЕТНОГО ИНВЕСТИЦИОННОГО ПРОЕКТА ГОРНОЛЫЖНЫЙ КУРОРТ ККЖАЙЛАУ 1 Введение Технико-экономическое обоснование (далее – ТЭО) – это изучение технических возможностей и экономической целесообразности проекта. В целях разработки и представления ТЭО по изучаемой территории ТОО Горнолыжный курорт Ккжайлау (далее – Курорт) и Компания Ecosign создали консорциум и привлекли таких подрядчиков как Horwath, ARUP, Engineerisk,...»

«Гаражи. Проектирование и строительство ПРЕДИСЛОВИЕ К РУССКОМУ ИЗДАНИЮ ПРЕДИСЛОВИЕ К ТРЕТЬЕМУ ИЗДАНИЮ ГАРАЖИ — ВАЖНОЕ СРЕДСТВО ДЛЯ РЕШЕНИЯ ТРАНСПОРТНЫХ ПРОБЛЕМ ГОРОДСКИХ ЦЕНТРОВ ГАРАЖИ В ОБЛИКЕ ГОРОДА ПРОЕКТИРОВАНИЕ ГАРАЖЕЙ ТИПЫ, ПРОЕКТИРОВАНИЕ, КОНСТРУКЦИИ И ОБОРУДОВАНИЕ ГАРАЖЕЙ ПРАВИЛА СТРОИТЕЛЬНОГО КОНТРОЛЯ ЗА ВОЗВЕДЕНИЕМ И ЭКСПЛУАТАЦИЕЙ ГАРАЖЕЙ ВЫБОР ТИПА ГАРАЖА ПОДЗЕМНЫЕ ГАРАЖИ КАК МНОГОЦЕЛЕВЫЕ СООРУЖЕНИЯ (ДВОЙНОГО НАЗНАЧЕНИЯ) ТЕХНОЛОГИЧЕСКИЙ ПРОЦЕСС В ГАРАЖАХ...»

«Петровский С.В. Интернет-услуги в российском праве Анализ действующего и проектируемого законодательства Нормативно-правовые акты и официальные разъяснения Обширный библиографический список Агентство Издательский сервис Москва, 2003 Автор: Петровский Станислав Витальевич кандидат юридических наук, разработчик проекта Федерального закона О правовом регулировании оказания Интернет-услуг. Участвовал в законопроектной работе по Федеральному закону Об электронной цифровой подписи, Об электронной...»

«РОССИЯ В XIX В. 1. Внутренняя и внешняя политика Александра I. 2. Движение декабристов. 3. Углубление кризиса крепостничества. Самодержавие и его по литика во второй четверти XIX в. 4. Общественное движение в первой половине XIX в. 5. Отмена крепостного права и буржуазные реформы 60 70 х гг. 6. Усиление правительственной реакции в 80 х годах. Контр реформы. 1. Внутренняя и внешняя политика Александра I. К началу XIX в. Российская империя занимала огромную терри торию: от Белого моря на севере...»

«ПОЛЯРНАЯ АВИАЦИЯ РОССИИ НА НОВОМ ЭТАПЕ ОСВОЕНИЯ АРКТИКИ Федотовских Александр Валентинович Первый заместитель председателя, председатель Комитета по науке и инновациям ТОР Северные промышленники и предприниматели РСПП, к.э.н., профессор РАЕ, член Арктической академии наук. Санкт-Петербург – Норильск - Калининград 2014 Полярная авиация России на новом этапе освоения Арктики. 1. ПРОБЛЕМЫ АВИАЦИИ КРАЙНЕГО СЕВЕРА Понятие Полярная авиация не существует с момента распада СССР. Полярное управление МГА...»

«ИПМ им.М.В.Келдыша РАН • Электронная библиотека Препринты ИПМ • Препринт № 72 за 2012 г. Малинецкий Г.Г., Тимофеев Н.С. О методологии прогноза развития аэрокосмического комплекса Рекомендуемая форма библиографической ссылки: Малинецкий Г.Г., Тимофеев Н.С. О методологии прогноза развития аэрокосмического комплекса // Препринты ИПМ им. М.В.Келдыша. 2012. № 72. 16 с. URL: http://library.keldysh.ru/preprint.asp?id=2012-72 Ордена Ленина ИНСТИТУТ ПРИКЛАДНОЙ МАТЕМАТИКИ имени М.В.Келдыша Российской...»

«Мультипрофессиональный подход в лечении и уходе за людьми, живущими с ВИЧ/СПИДом Практика совместного консультирования и лечения Руководство РОО СПИД инфосвязь 2005 Издание осуществлено РОО СПИД инфосвязь, в рамках проекта Создание и поддержка региональных исполнительных групп в РФ при финансовой поддержке Немецкого общества по техническому содействию Под редакцией Д. В. Островского Мультипрофессиональный подход в лечении и уходе за людьми, живущими с ВИЧ/СПИДом Практика совместного...»

«Сводка замечаний и предложений на проект национального стандарта Российской Федерации Безопасность в чрезвычайных ситуациях. Мероприятия по гражданской обороне, мероприятия по предупреждению чрезвычайных ситуаций природного и техногенного характера. Системы мониторинга и предупреждения чрезвычайных ситуаций природного и техногенного характера. Структурированная система мониторинга и управления инженерными системами зданий и сооружений. Правила создания и эксплуатации Структур Автор замечания...»

«Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТУРИЗМА И СЕРВИСА Ереванский филиал Кафедра Туризма и сервиса ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА на тему: Проект мероприятий по повышению эффективности управления малыми предприятиями (на примере ООО “Имаст”) по направлению подготовки: Экономика Студент Айрапетян Арсен Ашотович Руководитель к.э.н,...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ОБЪЕДИНЕННЫ Й ИНСТИТУТ ЯДЕРНЫХ ИССЛЕДОВАНИЙ УДК 621.3 ВГК ОКИ единенного института № госрегистр. 0 1 2 0 1 177138 едований, академик РАН Инв. № ОТЧЕТ О НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ по теме Разработка интеллектуальной системы питания и управления групповых потребителей от нескольких источников МВт-й мощности Обобщение и оценка результатов исследований по разработке интеллектуальной системы питания и управления групповыми потребителями от...»

«ПРОБЛЕМЫ МИНЕРАГЕНИИ РОССИИ Основы инфраструктуры пространственных данных для оценки и освоения природных и техногенных ресурсов. В. А. Серебряков1 (руководитель проекта), А. В. Кошкарев2, В. М. Ряховский3 1 - Вычислительный центр/Межведомственный компьютерный центр РАН (www.ccas.ru) 2 - Институт географии РАН (www.igras.ru) 3 - Государственный геологический музей РАН (www.sgm.ru) Введение. О создании академической инфраструктуры пространственных данных как задаче научно-образовательного...»

«г. Москва, Ленинский просп., 65, корп. 1. Тел (499) 507-88-88 Факс (499) 135 88 95 Сайт www.gubkin.ru Эл.почта [email protected] НОВОСТИ УНИВЕРСИТЕТА НА ИЮЛЬ-АВГУСТ 2014 Г. 01.07.2014 Круглый стол, посвященный противодействию идеологии терроризма 18 июня, на базе Общественной палаты города Москвы по инициативе аппарата столичной Антитеррористической комиссии при поддержке Комитета общественных связей г. Москвы состоялся круглый стол, посвященный противодействию идеологии терроризма. В ходе...»

«МЕМОРАНДУМ на проект Закона Республики Казахстан Об издательской деятельности Лондон Январь 2007 ARTICLE 19 · 6-8 Amwell Street · London EC1R 1UQ · Объединенное Королевство Тел. +44 20 7278 9292 · Факс +44 20 7278 7660 · [email protected] · http://www.article19.org ARTICLE 19 GLOBAL CAMPAIGN FOR FREE EXPRESSION СОДЕРЖАНИЕ 1. Вступление 2. Международные стандарты 2.1. Свобода слова в международном законодательстве 2.2. Значение свободы слова 2.3. Ограничение на свободу слова 3. Анализ...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.