WWW.DISS.SELUK.RU

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

 

Pages:     | 1 |   ...   | 10 | 11 || 13 | 14 |   ...   | 17 |

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

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

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

Контекст Все готово к сборке и запуску проекта.

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

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

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

При отсутствии ошибок сборки проект загрузится в веб-браузере и отобразит веб-форму, создав в ней отчет World Sales Report.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 4. Чтобы проверить правильность отображения в элементе Label данных отчета события детализации, под заголовком Объемы продаж в первых 5 странах щелкните элемент США для развертки этого фрагмента отчета. Страница перезагрузится и над отчетом по продажам в США отобразится метка 5. Вернитесь в среду Visual Studio и нажмите кнопку Остановить, чтобы выйти из режима отладки.

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

Вступление При помощи данного учебного пособия вы научитесь предоставлять данные отчета Crystal из элемента управления CrystalReportViewer элементу управления Label в проекте Windows.

Сначала вы научитесь создавать проект Windows в версии SAP Crystal Reports для разработчика Microsoft Visual Studio. Затем добавьте на форму Windows элемент управления CrystalReportViewer. После этого добавьте на форму Windows элемент Label для отображения данных отчета. На панели интеллектуальных задач создайте элемент управления CrystalReportSource, а затем добавьте в него образец отчета.

Событие детализации добавляется в элемент управления CrystalReportViewer. Наконец, данные отчета этого события детализации предоставляются элементу управления Label.

Примеры кода Данное учебное пособие содержит образцы кода на языках Visual Basic и C#, демонстрирующие готовую версию проекта. Следуя инструкциям пособия, создайте новый проект или откройте проект примера кода, чтобы начать работу с завершенной версией.

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

Приложение Windows C#: CS_Win_ReducedCode_ReportData Приложение Windows Visual Basic: VB_Win_ReducedCode_ReportData © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide База данных Xtreme В этом учебном пособии используется пример базы данных под названием Xtreme. Файл xtreme.mdb базы данных включен в пакет примеров кода SAP Crystal Reports.NET SDK. Чтобы использовать базу данных Xtreme, необходимо вручную создать соединение ODBC с ней.

Связанные сведения Каталог образцов отчетов [стр. 15] 1.5.3.6.1 Создание проекта Windows с помощью элемента управления CrystalReportViewer Предпосылки Перед созданием проекта Windows убедитесь, что в системе установлена версия SAP Crystal Reports для разработчиков Microsoft Visual Studio.

Процедура 1. Запустите Visual Studio.

2. В меню Файл выберите команду Создать, а затем Проект.

3. В диалоговом окне Создание проекта выберите папку языка C# или Visual Basic из списка Типы проектов.

4. В списке Шаблоны выберите элемент Приложение Windows.

5. В поле Имя замените имя проекта по умолчанию на имя вашего проекта.

6. Нажмите кнопку ОК.

Проект, содержащий класс Form1, откроется в Проводнике решений.

7. Откройте класс Form1.

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

9. Перетащите элемент управления CrystalReportViewer на форму Windows.

10. В окне Свойства задайте свойство Name:

Для проектов Visual Basic задайте значение myCrystalReportViewer.

Для проектов C# задайте значение crystalReportViewer.

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Связанные сведения Состав установки [стр. 10] 1.5.3.6.2 Добавление метки к приложению Windows Контекст В данном разделе описывается добавление метки к форме Windows. Элемент Label, добавляемый в этом разделе, отображает предоставленные данные отчета в последующих разделах учебного пособия.

';

Процедура 1. Если панель интеллектуальных задач на данном этапе открыта, нажмите клавишу Esc, чтобы закрыть 2. На панели инструментов откройте узел Общие элементы управления для перехода к элементу управления Label.

3. Перетащите элемент управления Label на форму Windows и разместите его непосредственно над элементом CrystalReportViewer.

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

5. В окне Свойства задайте для свойства Name значение "drillLabel".

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

1.5.3.6.3 Настройка CrystalReportSource при помощи панели интеллектуальных задач Контекст В среде Visual Studio 2005 появился новый компонент пользовательского интерфейса для элементов управления.NET, именуемый "Интеллектуальные задачи" (Smart Tasks). Для элемента управления CrystalReportViewer на веб-сайтах панель интеллектуальных задач называется Задачи CrystalReportViewer.

Панель интеллектуальных задач "Задачи CrystalReportViewer" позволяет настроить несколько функций элемента управления CrystalReportViewer без необходимости написания кода. Любые выборки, сделанные на панели интеллектуальных задач, создаются как код конструктора форм Windows.

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

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

2. В верхнем правом углу элемента управления CrystalReportViewer нажмите небольшую кнопку треугольной формы.

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

3. Щелкните список Выберите источник отчета и выберите пункт.

Откроется диалоговое окно Создание источника отчета.

4. В текстовом поле Укажите имя элемента управления оставьте значение по умолчанию CrystalReportSource1.

5. Щелкните раскрывающийся список Укажите отчет для элемента управления ReportSource и выберите Откроется диалоговое окно Выбор отчета Crystal.

6. Перейдите к файлу World Sales Report.rpt в папке General Business из каталога с образцами отчетов SAP Crystal Reports.

7. Выберите файл World Sales Report.rpt и нажмите кнопку Открыть.

С этого момента отчет назначен элементу управления CrystalReportViewer.

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

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

Процедура 1. В меню Вид выберите пункт Код, чтобы просмотреть класс code-behind для данной веб-формы.

2. В меню Вид выберите пункт Конструктор, чтобы вернуться к режиму конструктора веб-формы.

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

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

5. В списке доступных событий в узле Action перейдите к событию Drill.

6. Для создания кода обработчика события детализации дважды щелкните событие Drill в окне Свойства.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Для обработки события детализации будет создан следующий код:

Private Sub myCrystalReportViewer_Drill(ByVal source As System.Object, ByVal e As CrystalDecisions.Windows.Forms.DrillEventArgs) Handles myCrystalReportViewer.Drill private void crystalReportViewer_Drill(object source, CrystalDecisions.Windows.Forms.DrillEventArgs e) 7. В меню Файл выберите команду Сохранить все.

1.5.3.6.5 Предоставление данных отчета события детализации элементу управления Label В этом разделе описывается добавление текста к элементу управления Label для идентификации фрагмента отчета, детализация которого была выполнена.

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

1.5.4.1 Учебное пособие: подключение к наборам данных ADO.NET Вступление Из этого учебного пособия вы узнаете, как подключить отчет Crystal к набору данных (DataSet) ADO.NET с помощью схемы набора данных. Для отчета на основе набора данных ADO.NET требуются дополнительные действия, так как отчет не подключается непосредственно к базе данных.

Схема набора данных ADO.NET представляет собой шаблон структуры данных в формате XML. Однако сам по себе извлечь данные из схемы набора данных отчет не может. Сначала нужно представить схему набора данных в виде строго типизированного или универсального экземпляра набора данных. Затем необходимо наполнить этот экземпляр данными, используя классы адаптеров данных (DataAdapter).

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

Версия SAP Crystal Reports для разработчика Microsoft Visual Studio содержит шаблон с именем DataSet, предназначенный для создания схемы набора данных ADO.NET. В веб-узлах, созданных с помощью Visual Studio 2005 и более поздних версий, шаблон DataSet недоступен из диалогового окна "Добавление нового элемента". Доступен только стандартный шаблон "XML Schema". Однако с незначительными изменениями в коде (описанными далее) можно достичь тех же результатов и с помощью стандартного шаблона "XML Schema".

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

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

Код связывания с отчетом Crystal пишется для выполнения следующих действий:

Создать экземпляр отчета.

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

Связать заполненный отчет Crystal с элементом управления CrystalReportViewer.

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

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

Примеры кода Данное учебное пособие содержит образцы кода на языках Visual Basic и C#, демонстрирующие готовую версию проекта. Следуя инструкциям пособия, создайте новый проект или откройте проект примера кода, чтобы начать работу с завершенной версией.

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

Веб-узел на C#: CS_Web_Data_DataSets Windows-проект на C#: CS_Win_Data_DataSets Веб-узел на Visual Basic: VB_Web_Data_DataSets Windows-проект на Visual Basic: VB_Win_Data_DataSets Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide База данных Xtreme В этом учебном пособии используется пример базы данных под названием Xtreme. Файл xtreme.mdb базы данных включен в пакет примеров кода SAP Crystal Reports.NET SDK. Чтобы использовать базу данных Xtreme, необходимо вручную создать соединение ODBC с ней.

Связанные сведения Каталог образцов отчетов [стр. 15] 1.5.4.1.1 Настройка соединения с образцом базы данных в Server Explorer Контекст В этом учебном пособии используется GUI-подход к созданию схемы набора данных: в главном окне Visual Studio таблица базы данных перетаскивается из Server Explorer в окно набора данных.

Первый шаг – настройка соединения с Server Explorer к образцу базы данных, содержащемуся в образцах отчетов SAP Crystal Reports.

Процедура 1. В меню Вид выберите пункт Server Explorer.

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

Следующие шаги различаются в зависимости от того, добавляется ли это соединение в Visual Studio.NET 2003 или в более поздней версии Visual Studio.

3. В Visual Studio выполните следующие действия:

a) В диалоговом окне Изменение источника данных из раскрывающегося списка Поставщик данных выберите Поставщик данных.NET Framework для OLEDB.

b) В списке Источник данных выберите Файл базы данных Microsoft Access, после чего нажмите Если в Visual Studio 2005 соединение добавляется впервые, появится окно Изменение источника данных. При появлении диалогового окна "Добавление соединения" нажмите кнопку Изменить...

4. В поле Имя файла базы данных введите путь к базе данных Xtreme.

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

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

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

8. В Server Explorer разверните узел Access, а затем узел Tables.

9. Убедитесь, что таблица Customer отображается в окне Server Explorer.

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

Контекст Теперь можно создать новый Windows-проект или веб-узел, к которому будет добавлена схема набора данных ADO.NET, основанная на таблице базы данных Access.

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

2. В диалоговом окне Добавление нового элемента в списке Шаблоны выполните следующее:

Для Windows-проекта выберите DataSet.

Для веб-узла выберите XML Schema.

3. В поле Имя введите CustomerDataSetSchema.xsd, после чего нажмите кнопку Добавить.

4. Из Обозревателя серверов перетащите таблицу Customer (расположенную под узлом ACCESS>Таблицы>Customer) на окно CustomerDataSetSchema.xsd.

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

Для общего употребления файл CustomerDataSetSchema.xsd должен быть расположен в каталоге App_Code. Если в вашем проекте нет каталога App_Code, щелкните правой кнопкой мыши имя проекта, выделенное жирным шрифтом, и выберите пункт Создать папку. Назовите новую папку Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 6. В меню Файл выберите команду Сохранить все.

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

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

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

2. В диалоговом окне Добавление нового элемента из списка Установленные шаблоны Visual Studio выберите Class.

3. В поле Имя введите "DataSetConfiguration" и нажмите кнопку Добавить.

При появлении диалогового окна с подтверждением помещения класса в каталог с именем Code нажмите кнопку Да.

4. Перед подписью класса добавьте объявление "Imports"[Visual Basic] или "using"[C#] в верхнюю часть класса для пространств имен System.Data и System.Data.OleDb.

Imports System.Data Imports System.Data.OleDb using System.Data;

using System.Data.OleDb;

5. В верхней части класса создайте константу с именем CONNECTION_STRING, в которой будет содержаться строка соединения с образцом базы данных Xtreme.

Private Const CONNECTION_STRING As String ="Provider=Microsoft.Jet.OLEDB.

4.0;Data Source=C:\Program Files\Microsoft Visual Studio 8\Crystal Reports \Samples\En\Database\xtreme.mdb" private const string CONNECTION_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Microsoft Visual Studio 8\\Crystal Reports\\Samples\\En \\Database\\xtreme.mdb";

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

Эта простая строка запроса выбирает все столбцы без каких-либо критериев.. Для образца базы данных Xtreme она вернет только небольшой объем данных. Однако в большинстве случаев рекомендуется ограничить запрос, включив предложение WHERE и выбрав ограниченное число Private Const QUERY_STRING As String = "SELECT * FROM CUSTOMER" private const string QUERY_STRING = "SELECT * FROM CUSTOMER";

7. Ниже второй константы создайте третью константу с именем DATATABLE_NAME для имени таблицы данных (DataTable), которой будет заполнен набор данных (DataSet).

Следующий шаг укажет вам, как создать константу DIRECTORY_FILE_PATH. Эта константа необходима только при создании веб-узла в Visual Studio 2005. В противном случае этот шаг следует пропустить.

Private Const DATATABLE_NAME As String = "Customer" private const string DATATABLE_NAME = "Customer";

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

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

Private Const DIRECTORY_FILE_PATH As String = "C:\WebSites\VB_Web_Data_DataSets\" private const string DIRECTORY_FILE_PATH = @"C:\WebSites\CS_Web_Data_DataSets\";

9. Измените файл app.config или web.config в решении, чтобы включить следующий код XML в теги конфигурации верхнего уровня.

Используется для разрешения проблемы при использовании ADO.NET DataSet в качестве источника отчета в среде.NET 4.0 Framework. Дополнительные сведения см. в разделе Проблемы миграции [стр.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.4.1.3.2 Создание свойства, заполняющего набор данных DataSet Процедура 1. Создайте доступное только для чтения свойство с именем CustomerDataSet, возвращающее экземпляр набора данных DataSet.

Укажите для метода модификатор "Shared"[Visual Basic] или "static"[C#], чтобы можно было непосредственно вызывать класс и свойство без необходимости создания экземпляра.

Public Shared ReadOnly Property CustomerDataSet() As DataSet public static DataSet CustomerDataSet 2. На этом этапе имеются два варианта: либо использовать строго типизированный класс DataSet (доступен для Windows-проектов), либо использовать общий класс DataSet (доступен для веб-сайтов).

Для Windows-проектов с использованием строго типизированного класса DataSet следует в предложении get свойства CustomerDataSet объявить и создать экземпляр класса CustomerDataSetSchema (строго типизированного класса DataSet, созданного на основе схемы Dim myDataSet As CustomerDataSetSchema = New CustomerDataSetSchema dataSet = new CustomerDataSetSchema();

Для проектов веб-узлов с использованием универсального класса DataSet следует в предложении get свойства CustomerDataSet объявить и создать экземпляр класса DataSet, после чего применить XML-схему к экземпляру DataSet. То есть, нужно передать путь к файлу CustomerDataSetSchema.xsd в виде строкового параметра методу ReadXmlSchema() экземпляра myDataSet.ReadXmlSchema(DIRECTORY_FILE_PATH & "XMLSchema.xsd") dataSet.ReadXmlSchema(DIRECTORY_FILE_PATH + "XMLSchema.xsd");

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Объявите класс OleDbConnection, создайте его экземпляр и передайте ему константу CONNECTION_STRING в виде параметра метода.

Dim myOleDbConnection As OleDbConnection = New OleDbConnection(CONNECTION_STRING) OleDbConnection oleDbConnection = new OleDbConnection(CONNECTION_STRING);

4. Объявите класс OleDbDataAdapter, создайте его экземпляр и передайте ему константу QUERY_STRING и экземпляр OleDbConnection в виде параметров метода.

Dim myOleDbDataAdapter As OleDbDataAdapter = New OleDbDataAdapter(QUERY_STRING, myOleDbConnection) OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(QUERY_STRING, oleDbConnection);

5. Вызовите метод Fill() экземпляра OleDbDataAdapter и передайте ему экземпляр CustomerDataSetSchema и константу DATATABLE_NAME.

Метод Fill() заполняет указанную таблицу данных DataTable внутри экземпляра DataSet данными, извлеченными из базы данных.

myOleDbDataAdapter.Fill(myDataSet, DATATABLE_NAME) oleDbDataAdapter.Fill(dataSet, DATATABLE_NAME);

6. Чтобы заполнить свойство, верните экземпляр DataSet.

Return myDataSet return dataSet;

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.4.1.4 Создание отчета, подключающегося к схеме набора данных Контекст На предыдущих этапах мы создали метод, заполняющий схему набора данных DataSet данными из базы данных. В этом разделе мы создадим отчет Crystal, соединение которого с данными основывается на схеме CustomerDataSetSchema.

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

2. В диалоговом окне Добавление нового элемента из списка Установленные шаблоны Visual Studio выберите Crystal Report.

3. В поле Имя введите имя Customer.rpt и нажмите кнопку Добавить.

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

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

6. На панели Доступные источники данных окна "Мастер создания стандартных отчетов" раскройте папку Данные проекта.

7. Раскройте узел Наборы данных ADO.NET.

8. На этом этапе имеются два варианта: либо использовать строго типизированный класс DataSet (доступен для Windows-проектов), либо универсальный класс DataSet (доступен для веб-узлов).

Для Windows-проектов с использованием строго типизированного класса DataSet разверните узел CustomerDataSetSchema. Разверните узел Таблицы, если таковой имеется.

Для веб-узлов с использованием универсального классаDataSet разверните узел DataSetConfiguration.

В диалоговом окне ADO.NET (XML) выберите пункт Использовать набор данных из класса. В диалоговом окне "Имена наборов данных" выберите свойство CustomerDataSet, после чего 9. Выберите узел таблицы Customer.

10. Дважды щелкните таблицу Customer, чтобы переместить ее на панель Выбранные таблицы, после чего нажмите кнопку Далее.

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

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

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

Будет создан отчет Customer, соединенный с данными CustomerDataSetSchema (или, для веб-узла Visual Studio 2005, со свойством CustomerDataSet класса DataSetConfiguration).

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.4.1.5 Связывание с отчетом и установка источника данных на заполненный набор данных В этом разделе вы узнаете, как создать экземпляр сформированного отчета, заполнить его набор данных и отобразить отчет в элементе управления CrystalReportViewer. Отчет заполняется путем назначения его свойству SetDataSource заполненного набора данных, который возвращается свойством CustomerDataSet класса DataSetConfiguration. Наконец, заполненный отчет связывается с элементом управления CrystalReportViewer.

Представить отчет и связаться с ним можно следующими способами:

Как встроенный отчет.

Как невстроенный отчет.

Выберите одну из пошаговых процедур, приведенных ниже.

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

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

3. Над подписью класса добавьте объявление "Imports"[Visual Basic] или "using"[C#] в верхнюю часть класса для пространства имен System.Data, если оно там отсутствует.

Imports System.Data using System.Data;

4. Добавьте новое объявление уровня класса для класса-обертки отчета Customer с именем переменной customerReport. Установите для него модификатор доступа private.

Private customerReport As Customer private Customer customerReport;

5. Внутри метода ConfigureCrystalReports() создайте экземпляр класса обертки отчета.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Вы создали метод ConfigureCrystalReports() method in Настройка проекта [стр. 16].

customerReport = New Customer() customerReport = new Customer();

6. В следующей строке после создания экземпляра отчета объявите набор данных.

Этот и следующий шаги отделяют объявление переменной от ее назначения. Каждая строка кода реализуется раздельно, так как в приложении "Веб-узел" к этому учебнику будет осуществлен рефакторинг назначения переменной в блок кода, кэширующий набор данных в объекте кэша Dim myDataSet As DataSet DataSet dataSet;

7. Назначьте экземпляр набора данных свойству DataSetConfiguration.CustomerDataSet property.

myDataSet = DataSetConfiguration.CustomerDataSet dataSet = DataSetConfiguration.CustomerDataSet;

8. Вызовите метод SetDataSource() экземпляра CustomerReport и передайте его экземпляру набора данных DataSet.

customerReport.SetDataSource(myDataSet) customerReport.SetDataSource(dataSet);

9. Свяжите свойство ReportSource элемента управления CrystalReportViewer с экземпляром CustomerReport.

myCrystalReportViewer.ReportSource = customerReport crystalReportViewer.ReportSource = customerReport;

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

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

3. Добавьте новое объявление уровня класса для класса-обертки отчета ReportDocument с именем переменной customerReport. Установите для него модификатор доступа private.

Класс ReportDocument является элементом пространства имен CrystalDecisions.CrystalReports.Engine. Вы добавили объявление "Imports"[Visual Basic] или "using"[C#] для этого пространства имен в Настройка проекта [стр. 16]. Создание экземпляра ReportDocument и загрузка отчета в пространство имен позволяют получить доступ к отчету с помощью SDK, не встраивая этот отчет.

Private customerReport As ReportDocument private ReportDocument customerReport;

4. Внутри метода ConfigureCrystalReports() (добавленного в одной из процедур Настройка проекта [стр. 16]) создайте экземпляр класса ReportDocument.

customerReport = New ReportDocument() customerReport = new ReportDocument();

5. Объявите строковую переменную с именем reportPath и назначьте для нее путь времени выполнения, ведущий к локальному отчету. Этот путь определяется по-разному для веб-сайтов и для проектов Windows.

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

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

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

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

Dim reportPath As String = Application.StartupPath & "\" & string reportPath = Application.StartupPath + "\\" + 6. Вызовите метод Load() экземпляра ReportDocument и передайте его в строковую переменную reportPath.

customerReport.Load(reportPath) customerReport.Load(reportPath);

7. Объявите набор данных DataSet и назначьте ему DataSetConfiguration.CustomerDataSet Dim myDataSet As DataSet = DataSetConfiguration.CustomerDataSet DataSet dataSet = DataSetConfiguration.CustomerDataSet;

8. Вызовите метод SetDataSource() экземпляра ReportDocument с именем customerReport и передайте его в экземпляр DataSet.

customerReport.SetDataSource(myDataSet) customerReport.SetDataSource(dataSet);

9. В следующей строке после загрузки отчета свяжите свойство ReportSource объекта CrystalReportViewer с экземпляром ReportDocument.

myCrystalReportViewer.ReportSource = customerReport crystalReportViewer.ReportSource = customerReport;

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.4.1.5.3 Проверка загрузки отчета Customer и заполненного набора данных DataSet Контекст Все готово к сборке и запуску проекта.

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

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

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

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

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

5. В отчете Customer будут отображены данные, которыми был заполнен набор данных DataSet.

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

Результаты Если вы создаете Windows-проект, учебник окончен.

Если вы создаете веб-узел, перейдите к Кэширование набора данных DataSet на веб-узле [стр. 567].

1.5.4.1.6 Кэширование набора данных DataSet на вебузле Контекст При создании веб-узла можно улучшить масштабируемость и производительность, поместив заполненный экземпляр набора данных DataSet в объект кэша ASP.NET. Это предотвращает излишние (потенциально медленные) вызовы базы данных для заполнения набора данных DataSet.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Если набор данных DataSet содержит стандартные данные для всех пользователей, используйте объект Cache. Однако если набор данных DataSet содержит уникальные значения для каждого пользователя (на основе пользовательских критериев в предложении WHERE запроса SQL, например идентификатора пользователя), то следует вместо этого использовать объект Session.

Процедура 1. Откройте веб-форму.

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

3. Найдите строку кода, где экземпляр DataSet назначается DataSetConfiguration.CustomerDataSet property (показана ниже).

myDataSet = DataSetConfiguration.CustomerDataSet dataSet = DataSetConfiguration.CustomerDataSet;

4. Замените эту строку полным условным блоком кода, проверяющим значение Cache с именем customerDataSet.

Введите условный блок и код в точности, как показано здесь.

If Cache("customerDataSet") Is Nothing Then myDataSet = DataSetConfiguration.CustomerDataSet Cache("customerDataSet") = myDataSet myDataSet = CType(Cache("customerDataSet"), DataSet) if (Cache["customerDataSet"] == null) dataSet = DataSetConfiguration.CustomerDataSet;

Cache["customerDataSet"] = dataSet;

dataSet = (DataSet)Cache["customerDataSet"];

5. Чтобы проверить кэширование набора данных DataSet, выберите пункт Начать в меню Отладка.

В отчете Customer будут отображены данные, которыми был заполнен набор данных DataSet.

6. Нажмите кнопку Обновить в обозревателе.

Отчет Customer будет быстро отображен снова, так как набор данных DataSet теперь извлекается из объекта кэша ASP.NET (Cache).

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Связанные сведения Кэширование наборов данных в случае их использования [стр. 71] 1.5.4.2 Учебное пособие: подключение к IDataReader Из этого учебного пособия по соединению с данными вы узнаете, как подключиться к экземпляру IDataReader.

Вступление Во многих проектах.NET для извлечения данных используется не DataSet, а DataReader. Например, обычный способ связать элемент управления (например GridView) с данными заключается в том, чтобы создать метод, который извлекает данные с помощью DataReader, а затем вернуть данные из этого метода через интерфейс IDataReader.

В версии SAP Crystal Reports для разработчика Microsoft Visual Studio обеспечивается доступ к интерфейсу IDataReader из встроенного конструктора SAP Crystal Reports при определенных условиях:

Данные должны возвращаться из метода, через интерфейс IDataReader.

Внутри метода должен использоваться поставщик данных OleDb.NET.

Классы этого поставщика расположены в пространстве имен System.Data.OleDb.

Метод должен быть объявлен как Shared [Visual Basic] или static [C#].

Класс, содержащий этот метод, должен быть частью проекта библиотеки классов и скомпилированным в сборку.

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

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

Примеры кода Данное учебное пособие содержит образцы кода на языках Visual Basic и C#, демонстрирующие готовую версию проекта. Следуя инструкциям пособия, создайте новый проект или откройте проект примера кода, чтобы начать работу с завершенной версией.

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Веб-узел на C#: CS_Web_Data_IDataReader Windows-проект на C#: CS_Win_Data_IDataReader Веб-узел на Visual Basic: VB_Web_Data_IDataReader Windows-проект на Visual Basic: VB_Win_Data_IDataReader Связанные сведения Каталог образцов отчетов [стр. 15] 1.5.4.2.1 Создание библиотеки классов для DataReader Для подготовки к работе с этим учебным пособием необходима определенная настройка.

1.5.4.2.1.1 Предварительная настройка базы данных Процедура 1. Конфигурация SQL Server:

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

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

В этом учебном пособии используются база данных Northwind и SQL Server, но можно использовать любую совместимую с OleDb базу данных.

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.4.2.1.2 Создание библиотеки классов со статическим методом, возвращающим IDataReader Контекст После настройки SQL Server и базы данных Northwind можно создать библиотеку классов, возвращающую значения из базы данных Northwind в виде IDataReader.

Библиотека классов должна быть создана в каталоге родительского проекта Data_IDataReader, чтобы избежать проблем с правами доступа к программе.

Процедура 1. В меню Файл укажите пункт Создать, после чего выберите пункт Проект.

2. В диалоговом окне Создание проекта выберите папку языка C# или Visual Basic из списка Типы проектов.

3. В списке Шаблоны щелкните Библиотека классов.

4. В поле Имя замените имя проекта по умолчанию на "VB_Lib_DataLayer" [Visual Basic] или "CS_Lib_DataLayer" [C#], после чего нажмите кнопку ОК.

5. В Обозревателе решений щелкните правой кнопкой мыши класс по умолчанию (Class1), после чего выберите пункт Удалить.

6. В Обозревателе решений щелкните правой кнопкой мыши имя проекта, выделенное жирным шрифтом, укажите пункт Добавить и выберите пункт Класс.

Открывается диалоговое окно Добавление нового элемента.

7. В диалоговом окне Добавление нового элемента в представлении Шаблоны выберите шаблон с именем Class.

8. В поле "Имя" введите DataCenter, после чего нажмите кнопку Добавить.

9. В случае использования Visual Basic введите Параметр строго по в верхней части класса.

10. Перед подписью класса добавьте объявление "Imports" [Visual Basic] или "using" [C#] в верхней части класса для пространств имен System.Data и System.Data.OleDb (если эти пространства еще не объявлены).

Imports System.Data Imports System.Data.OleDb using System.Data;

using System.Data.OleDb;

11. На уровне класса создайте строковую константу с видимостью private для строки соединения с OleDb.

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

В создаваемом коде замените образец имени сервера DBServer01 и образец пароля 1234 (показанные ниже) на имя сервера и пароль конкретной базы данных.

Private Const OLEDB_CONNECTION_STRING As String = "provider=sqloledb;Data Source=DBSERVER01;Initial Catalog=Northwind;User Id=limitedPermissionAccount;Password=1234" private const string OLEDB_CONNECTION_STRING = "provider=sqloledb;Data Source=DBSERVER01;Initial Catalog=Northwind;User Id=limitedPermissionAccount;Password=1234";

12. Создайте вторую строковую константу с видимостью private для запроса к базе данных.

Private Const CUSTOMER_TABLE_QUERY As String = "SELECT CustomerID, CompanyName, ContactName, Address, City FROM Customers" private const string CUSTOMER_TABLE_QUERY = "SELECT CustomerID, CompanyName, ContactName, Address, City FROM Customers";

13. Создайте public-метод "Shared" [Visual Basic] или "static" [C#] с именем GetCustomersUsingOleDb(), возвращающий IDataReader.

Public Shared Function GetCustomersUsingOleDb() As IDataReader public static IDataReader GetCustomersUsingOleDb() 14. Внутри этого метода объявите и создайте экземпляр OleDbConnection и передайте ему константу

OLEDB_CONNECTION_STRING.

Dim myOleDbConnection As OleDbConnection = New OleDbConnection(OLEDB_CONNECTION_STRING) OleDbConnection oleDbConnection = new OleDbConnection(OLEDB_CONNECTION_STRING);

15. Вызовите метод Open() из экземпляра OleDbConnection, чтобы открыть подключение к базе данных.

myOleDbConnection.Open() © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide oleDbConnection.Open();

16. Объявите и создайте экземпляр OleDbCommand и передайте ему константу CUSTOMER_TABLE_QUERY и экземпляр OleDbConnection.

Dim myOleDbCommand As OleDbCommand = New OleDbCommand(CUSTOMER_TABLE_QUERY, myOleDbConnection) OleDbCommand oleDbCommand = new OleDbCommand(CUSTOMER_TABLE_QUERY, oleDbConnection);

17. Вызовите метод ExecuteReader() экземпляра OleDbCommand и передайте его экземпляру IDataReader.

Dim myIDataReader As IDataReader = myOleDbCommand.ExecuteReader() IDataReader iDataReader = oleDbCommand.ExecuteReader();

18. Возвратите экземпляр IDataReader из метода.

Return myIDataReader return iDataReader;

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

20. В меню Файл выберите пункт Закрыть решение.

1.5.4.2.2 Подключение отчета к статическому методу IDataReader В этом разделе создается клиентский проект, получающий доступ к интерфейсу IDataReader внутри скомпилированной сборки.

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. В Обозревателе решений щелкните правой кнопкой мыши имя проекта, выделенное жирным шрифтом, укажите пункт Добавить и выберите пункт Новый элемент.

2. В диалоговом окне Добавление нового элемента выберите Crystal Report.

3. В поле Имя введите "CustomersViaIDR.rpt" и нажмите кнопку Добавить.

4. В диалоговом окне Галерея Crystal Reports нажмите кнопку ОК.

5. В диалоговом окне Мастер создания стандартных отчетов разверните узел Создать новый отчет.

6. Разверните узел ADO.NET.

7. В диалоговом окне ADO.NET щелкните символ... в конце текстового поля Путь к файлу.

8. В диалоговом окне Открытие выберите из списка Тип файлов вариант Все файлы.

9. Найдите DLL-сборку по следующему пути.

DLL-сборка создается в процедуре Создание библиотеки классов для DataReader [стр. 570].

В Visual Basic DLL располагается в каталоге bin. В C# DLL располагается в подкаталоге каталога bin с именем Debug. Указанное здесь расположение меняется в зависимости от используемой версии \My Documents\Visual Studio\Projects\VB_Lib_IDataReader\VB_Lib_IDataReader\bin \VB_Lib_DataLayer.dll \My Documents\Visual Studio\Projects\CS_Lib_DataReader\CS_Lib_IDataReader\bin \Debug\CS_Lib_DataLayer.dll 10. Выберите DLL, после чего нажмите кнопку Открыть.

11. Из списка Имя класса выберите класс DataCenter, после чего нажмите кнопку Готово.

В области "Доступные источники данных" появится метод GetCustomersUsingOleDB().

12. Выберите метод GetCustomersUsingOleDb и нажмите кнопку >, чтобы переместить его на панель Выбранные таблицы, а затем нажмите кнопку Далее.

Если библиотека классов IDataReader не настроена надлежащим образом, возникнет исключение.

Контекст В этом разделе вы узнаете, как обрабатывать исключения, которые могут возникать в методе библиотеки классов IDataReader.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. Закройте веб-узел или Windows-проект, а затем повторно откройте проект библиотеки классов, который содержит статический метод IDataReader.

Проект библиотеки классов, созданный в Создание библиотеки классов для DataReader [стр. 570], называется "VB_Lib_DataLayer" [Visual Basic] или "CS_Lib_DataLayer" [C#].

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

3. Проверьте строку запроса на предмет ошибок в запросе.

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

5. В меню Файл выберите пункт Закрыть решение.

6. Повторно откройте веб-узел или Windows-проект.

7. Удалите созданный файл отчета Crystal, после чего создайте новый отчет Crystal.

8. Повторите шаги предыдущего раздела, Подключение отчета к статическому методу IDataReader [стр.

9. Измените файл app.config или web.config в решении, чтобы включить следующий код XML в тегах конфигурации верхнего уровня.

Используется для разрешения проблемы при использовании ADO.NET DataSet в качестве источника отчета в среде.NET 4.0 Framework. Дополнительные сведения см. в разделе Проблемы миграции Результаты Метод GetCustomersUsingOleDb() успешно перенесен на панель "Выбранные таблицы".

Если исключение все еще возникает, повторите процесс отладки.

Для дальнейшей отладки создайте новую веб- или Windows-форму в веб-узле или Windows-проекте и добавьте на эту форму элемент управления GridView. В классе code-behind установите свойство DataSource элемента управления GridView на статический метод IDataReader. Затем скомпилируйте и просмотрите веб- или Windows- форму, чтобы определить, успешно ли она отображается.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.4.2.4 Разработка отчета на основе значений из статического метода IDataReader Контекст Теперь можно разработать отчет на основе значений из статического метода IDataReader.

Процедура этого шага предполагает, что доступ к статическому методу GetCustomersUsingOleDb IDataReader получен успешно и, следовательно, этот метод был перенесен на панель "Выбранные таблицы" диалогового окна "Мастер создания стандартных отчетов".

Процедура 1. На панели Доступные поля разверните GetCustomersUsingOleDb.

2. Щелкните с нажатой клавишей CTRL элементы CompanyName, ContactName и City.

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

4. На панели Доступные поля в области Поля отчета выберите GetCustomerUsingOleDb.City, щелкните значок >, чтобы переместить его на панель Группировать по, после чего нажмите кнопку Готово.

Отчет CustomersViaIDR будет создан и загружен в главное окно Visual Studio.

5. Нажмите кнопку Просмотр главного отчета, чтобы просмотреть отчет на основе вызова статического метода IDataReader.

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

В Настройка проекта [стр. 16] мы поместили элемент управления CrystalReportViewer на веб- или Windows-форму. На предыдущем этапе мы добавили к проекту отчет CustomersViaIDR.

В этом разделе будет создан экземпляр отчета CustomersViaIDR и привязан к элементу управления CrystalReportViewer.

Создать и связать экземпляр отчета можно двумя способами:

Как встроенный отчет.

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

Выберите одну из пошаговых процедур, приведенных ниже.

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

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

1.5.4.2.5.1 Создание экземпляра CustomersViaIDR в виде встроенного отчета и связывание его с элементом управления CrystalReportViewer Процедура 1. Откройте веб-форму или форму Windows.

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

3. Добавьте новое объявление уровня класса для класса-обертки отчета CustomersViaIDR с именем переменной customersViaIdrReport. Установите для него модификатор доступа private.

Private customersViaIdrReport As CustomersViaIDR private CustomersViaIDR customersViaIdrReport;

4. Внутри метода ConfigureCrystalReports() создайте экземпляр класса обертки отчета.

Вы создали метод ConfigureCrystalReports() method in Настройка проекта [стр. 16].

customersViaIdrReport = New CustomersViaIDR() customersViaIdrReport = new CustomersViaIDR();

5. В следующей строке после создания экземпляра отчета свяжите свойство ReportSource элемента управления CrystalReportViewer с созданным экземпляром класса отчета (именем переменной customersViaIdrReport).

myCrystalReportViewer.ReportSource = customersViaIdrReport crystalReportViewer.ReportSource = customersViaIdrReport;

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.4.2.5.2 Создание экземпляра CustomersViaIDR в виде невстроенного отчета и связывание его с элементом управления CrystalReportViewer Контекст Все готово к сборке и запуску проекта. Перейдите к следующему разделу ниже.

Процедура 1. Откройте веб-форму или форму Windows.

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

3. Добавьте новое объявление уровня класса для класса-обертки отчета ReportDocument с именем переменной customersViaIdrReport. Установите для него модификатор доступа private.

Класс ReportDocument является элементом пространства имен CrystalDecisions.CrystalReports.Engine. Вы добавили объявление "Imports" [Visual Basic] или "using" [C#] для этого пространства имен в Настройка проекта [стр. 16]. Создание экземпляра ReportDocument и загрузка отчета в пространство имен позволяют получить доступ к отчету с помощью SDK, не встраивая этот отчет.

Private customersViaIdrReport As ReportDocument private ReportDocument customersViaIdrReport;

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

customersViaIdrReport = New ReportDocument() customersViaIdrReport = new ReportDocument();

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

Dim reportPath As String = Server.MapPath("CustomersViaIDR.rpt") © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide string reportPath = Server.MapPath("CustomersViaIDR.rpt");

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

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

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

6. Вызовите метод Load() экземпляра ReportDocument и передайте его в строковую переменную reportPath.

customersViaIdrReport.Load(reportPath) customersViaIdrReport.Load(reportPath);

7. В следующей строке после загрузки отчета свяжите свойство ReportSource объекта CrystalReportViewer с экземпляром ReportDocument.

myCrystalReportViewer.ReportSource = customersViaIdrReport crystalReportViewer.ReportSource = customersViaIdrReport;

1.5.4.2.5.3 Проверка загрузки отчета CustomersViaIDR Контекст Вне зависимости от того, какой отчет выбран при создании экземпляра класса ReportDocument — встроенный или невстроенный — используется одно и то же имя переменной: customersViaIdrReport. Это позволяет использовать в последующих процедурах один и тот же код.

Все готово к сборке и запуску проекта.

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

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

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

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

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

Отображается отчет, в котором данные выводятся с помощью статического метода IDataReader.

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

1.5.4.3 Учебное пособие: подключение к коллекциям объектов Из этого учебного пособия по соединению с данными вы узнаете, как использовать коллекцию объектов в качестве источника данных для отчета Crystal.

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

Отчет будет осуществлять доступ к ArrayList, содержащему множество экземпляров объектов Stock.

Свойства каждого из экземпляров Stock имеют уникальные значения. Эту информацию можно добавить программным путем в ArrayList во время разработки, а затем динамически во время выполнения.

Возвращаемый ArrayList – коллекция объектов – назначается свойству SetDataSource отчета Crystal. При отображении отчета каждому из объектов коллекции соответствует одна строка подробностей отчета.

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

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

Веб-узел на C#: CS_Web_Data_ObjectCollection Веб-узел на Visual Basic: VB_Web_Data_ObjectCollection Связанные сведения Каталог образцов отчетов [стр. 15] Контекст В этом разделе мы создадим класс Stock. Класс Stock содержит три персональных поля, представленные свойствами с видимостью public: Company (компания), Volume (объем) и Price (цена). SAP Crystal Reports 2008 позволяет формировать отчеты по данным класса, таким, как поля и объекты, а также выполнять рекурсивный вызов объекта. Атрибут CrystalComplexTypeExpansionLevels позволяет контролировать, насколько можно детализировать класс.

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

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

a) В поле Установленные шаблоны Visual Studio выберите Class.

b) В поле Имя введите "Stock" и нажмите кнопку Добавить.

c) В открывшемся диалоговом окне выберите Да.

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Для класса Stock необходимо, чтобы при создании отчета его видимость была public. Убедитесь, что созданный класс имеет видимость public. Если нет, добавьте модификатор public к подписи класса, чтобы класс был представлен встроенному конструктору SAP Crystal Reports.

Public Class Stock public class Stock 4. При кодировании в Visual Basic добавьте конструктор по умолчанию.

5. Внутри класса добавьте три поля с видимостью private.

Private _company As Company Private _volume As Integer Private _price As Double private Company _company;

private double _price;

private int _volume;

6. Создайте новое свойство с именем Price.

Public Property Price() As Double Set(ByVal value As Double) public double Price © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 7. Создайте новое свойство с именем Volume.

Public Property Volume() As Integer Set(ByVal value As Integer) 8. Создайте новое свойство с именем Company.

Необходимо задать для атрибута CrystalComplexTypeExpansionLevels значение, большее 1, чтобы можно было выполнить рпзвертку иерархии данных класса. Если не задать атрибут CrystalComplexTypeExpansionLevels, SAP Crystal Reports не сможет осуществить доступ к данным поля внутри класса Company. Позднее можно создать пользовательский класс Company, имеющий два строковых поля.

[CrystalDecisions.CrystalReports.Engine.CrystalComplexTypeExpansionLevels(3)] 9. Наконец, создайте новый конструктор, принимающий все три public-свойства за аргументы.

Public Sub New(ByVal company As Company, ByVal volume As Integer, ByVal price As Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide public Stock(Company company, int volume, double price) 10. После класса Stock создайте новый класс Company, выставляющий два public-свойства: symbol и Public Class Company Sub New(ByVal symbol As String, ByVal name As String) public class Company { public Company(String symbol, String name) © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 11. В меню Построение выберите пункт Собрать веб-узел.

Результаты Теперь вы можете получить доступ к этому объекту из встроенного конструктора SAP Crystal Reports.

1.5.4.3.2 Подключение отчета Crystal к объекту Stock Контекст В этом разделе создается новый отчет Crystal во встроенном конструкторе SAP Crystal Reports, после чего подключается к объекту Stock.

Процедура 1. Щелкните правой кнопкой мыши имя проекта и выберите пункт Добавить новый элемент.

2. В диалоговом окне Добавление нового элемента выберите Crystal Report.

3. В поле Имя введите "StockObjects.rpt" и нажмите кнопку Добавить.

4. В диалоговом окне Галерея Crystal Reports нажмите кнопку ОК.

5. В диалоговом окне Мастер создания стандартных отчетов разверните узел Данные проекта и вложенный в него узел Объекты.NET.

Появится список классов проекта. Каждый класс снабжен префиксом пространства имен проекта.

6. Разверните класс Stock, чтобы просмотреть вложенный узел с возможностью выбора.

7. Щелкните стрелку вправо, чтобы переместить вложенный узел класса Stock на панель Выбранные таблицы, после чего нажмите кнопку Далее.

8. Разверните узел Stock и щелкните значок >>, чтобы переместить все столбцы на панель Отображаемые поля, после чего нажмите кнопку Далее.

9. Выберите Company.Symbol и щелкните стрелку вправо, чтобы переместить его на панель Группировать по, после чего нажмите кнопку Готово.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.4.3.3 Создание экземпляра StockObjects в виде невстроенного отчета и связывание его с элементом управления CrystalReportViewer Контекст В Настройка проекта [стр. 16] мы поместили элемент управления CrystalReportViewer на веб- или Windowsформу. В предыдущей процедуре мы добавили к проекту отчет StockObjects. В этом разделе мы свяжем отчет Stock Objects с элементом управления SAP Crystal Report Viewer, установим источник данных отчета на коллекцию объектов и наполним ее программным путем.

Процедура 1. Откройте класс по умолчанию Code-Behind – Default.aspx.cs или Default.aspx.vb.

2. Перед подписью класса добавьте объявление "Imports" [Visual Basic] или "using" [C#] в верхнюю часть класса для пространства имен System.Collections.

Эта ссылка предоставляет вам доступ к классу ArrayList. ArrayList реализует ICollection. Это рассматривается ArrayList как один из нескольких типов классов, которые можно использовать для построения коллекции объектов, распознаваемой средствами SAP Crystal Reports.

Imports System.Collections using System.Collections;

3. Добавьте новый уровень класса ArrayList, назовите его stockValues.

Private stockValues As ArrayList private ArrayList stockValues;

4. Добавьте новое объявление уровня класса для класса-обертки отчетов ReportDocument, с именем переменной stockObjectsReport. Установите для него модификатор доступа private.

Private stockObjectsReport As ReportDocument private ReportDocument StockObjectsReport;

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

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

6. Добавьте два разрыва строки и создайте экземпляр ReportDocument.

stockObjectsReport = New ReportDocument() stockObjectsReport = new ReportDocument();

7. В следующей строке вызовите метод Load() экземпляра ReportDocument и передайте его строковой переменной reportPath.

Класс ReportDocument является элементом пространства имен CrystalDecisions.CrystalReports.Engine. Объявление "Imports" [Visual Basic] или "using" [C#] добавлено для этого пространства имен в настройках проекта. Создание экземпляра ReportDocument и загрузка отчета предоставляет доступ к отчету посредством SDK.

stockObjectsReport.Load(reportPath) stockObjectsReport.Load(reportPath);

8. Затем установите источник данных для отчета на stockValues ArrayList.

stockObjectsReport.SetDataSource(stockValues) stockObjectsReport.SetDataSource(stockValues);

9. Наконец, свяжите свойство ReportSource объекта CrystalReportViewer с экземпляром ReportDocument.

myCrystalReportViewer.ReportSource = stockObjectsReport crystalReportViewer.ReportSource = stockObjectsReport;

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Результаты На данный момент отчет Stock Objects связан с элементом управления Crystal Report Viewer, и на странице отображается правильный отчет. Однако отчет в настоящее время связан с пустым источником данных, поэтому в нем не отображается информация. В следующем разделе мы заполним stockValues ArrayList программно образцами данных.

1.5.4.3.4 Программное заполнение коллекции объектов Процедура 1. Щелкните правой кнопкой мыши веб-форму в Обозревателе решений и выберите пункт Просмотреть 2. Внутри класса добавьте новый вспомогательный метод с видимостью public, не возвращающий значения, с именем PopulateStockValuesArrayList().

Public Sub PopulateStockValuesArrayList() public void PopulateStockValuesArrayList() 3. Внутри метода PopulateStockValuesArrayList(), перед существующим кодом, создайте условный блок if/else, проверяющий, существует ли объект Session (сеанс) stockValues с именем..

If (Session("stockValues") Is Nothing) Then if(Session["stockValues"] == null) 4. Внутри блока If создайте новый экземпляр ArrayList().

stockValues = New ArrayList stockValues = new ArrayList();

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 5. Создайте три объекта Company, каждый должен содержать symbol и name.

Dim c1 As Company = New Company("AWRK", "Arthur, Wren, Roberts and King") Dim c2 As Company = New Company("CTSO", "Control Systems and Operations") Dim c3 As Company = New Company("LTWR", "Letter Works") Company c1 = new Company("AWRK","Arthur, Wren, Roberts and King");

Company c2 = new Company("CTSO","Control Systems and Operations");

Company c3 = new Company("LTWR","Letter Works");

6. Затем воспользуйтесь перегруженным конструктором для класса Stock, чтобы создать и запустить три экземпляра Stock.

Dim s1 As Stock = New Stock(c1, 1200, 28.47) Dim s2 As Stock = New Stock(c2, 800, 128.69) Dim s3 As Stock = New Stock(c3, 1800, 12.95) Stock s1 = new Stock(c1,1200,28.47);

Stock s2 = new Stock(c2,800,128.69);

Stock s3 = new Stock(c3,1800,12.95);

7. Добавьте все три экземпляра к stockValues.

stockValues.Add(s1) stockValues.Add(s2) stockValues.Add(s3) stockValues.Add(s1);

stockValues.Add(s2);

stockValues.Add(s3);

8. Добавьте в сеанс обновленный список массивов (ArrayList) stockValues.

Session("stockValues") = stockValues Session["stockValues"]=stockValues;

9. Внутри блока Else напишите строку для назначения текущих значений из сессии в stockValues ArrayList.

stockValues = Ctype(Session("stockValues"), ArrayList) stockValues = (ArrayList)Session["stockValues"];

10. Наконец, вызовите PopulateStockValuesArrayList() из метода ConfigureCrystalReports().

Это должна быть первая строка кода, выполняемого в методе ConfigureCrystalReports().

PopulateStockValuesArrayList() Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide PopulateStockValuesArrayList();

1.5.4.3.5 Динамическое заполнение коллекции объектов В предыдущем разделе мы заполняли коллекцию объектов программным путем. В этом разделе вы научитесь, как динамически добавлять информацию в источнику данных с вашего веб-узла. Эта информация будет автоматически обновляться в отчете.

1.5.4.3.5.1 Добавление элементов управления на вебформу Процедура 1. Откройте файл Default.aspx в режиме проектирования.

Чтобы открыть страницу ASPX в режиме проектирования, сначала откройте файл, а затем нажмите кнопку Проект в нижней части формы.

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

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

4. Перетащите из панели инструментов элемент управления TextBox на веб-форму.

5. В меню Свойство задайте свойству ID значение "symbol".

6. Перетащите из панели инструментов элемент управления TextBox на веб-форму.

7. В меню Свойство задайте свойству ID значение "name".

8. Перетащите на веб-форму второй элемент управления TextBox. Расположите второй элемент TextBox ниже первого.

9. В меню Свойство задайте свойству ID значение "price".

10. Перетащите на веб-форму третий элемент управления TextBox. Расположите третий элемент TextBox ниже второго.

11. В меню Свойство задайте свойству ID значение "volume".

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

12. Теперь перетащите из панели инструментов на веб-форму элемент управления Button. Расположите кнопку ниже трех элементов TextBox.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 13. В меню Свойство:

a) Установите для свойства ID элемента Button значение "addStockInformation".

b) Установите для свойства Text элемента Button значение "Добавить информацию о вкладе".

14. Наконец, дважды щелкните кнопку "Добавить информацию о вкладе".

Двойной щелчок элемента Button открывает класс Code-behind и автоматически генерирует обработчик событий addStockInformation_Click().

Контекст В этом разделе мы напишем код для обработчика событий addStockInformation_Click(), который добавит информацию, введенную в веб-форму, в коллекцию stockValues.

Процедура 1. Внутри обработчика событий addStockInformation_Click() создайте экземпляр нового объекта Dim temp As Stock = New Stock() Stock temp = new Stock();

2. Внутри метода addStockInformation_Click() создайте блок try/catch.

Информация, введенная в веб-форму, имеет тип String. Так как два поля класса Stock имеют числовой тип, необходимо написать код для преобразования строковых значений с формы в числовые.

Инструкция try/catch помогает защитить веб-приложение от сбоев во время преобразования из-за ошибок несоответствия типов.

Catch ex As Exception Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Внутри блока Try назначьте значения полей symbol и name на веб-форме свойству Company объекта temp.Company = New Company(symbol.Text, name.Text) temp.Company = new Company(symbol.Text, name.Text);

4. В следующей строке назначьте значение поля price на веб-форме свойству Price объекта Stock. Перед назначением преобразуйте значение с веб-формы в тип Double.

temp.Price = CType(price.Text, Double) temp.Price = Convert.ToDouble(price.Text);

5. Затем назначьте значение поля volume на веб-форме свойству Volume объекта Stock. Перед назначением преобразуйте значение с веб-формы в целочисленный тип.

temp.Volume = CType(volume.Text, Integer) temp.Volume = Convert.ToInt32(volume.Text);

6. Вне блока try/catch добавьте объект Stock в stockValues ArrayList.

stockValues.Add(temp) stockValues.Add(temp);

7. Обновите значение stockValues, которое в данный момент хранится в поле Session.

Session("stockValues") = stockValues Session["stockValues"] = stockValues;

8. Наконец, вызовите метод ConfigureCrystalReports(). Будет выполнено повторное связывание отчета с обновленной коллекцией объектов stockValues.

ConfigureCrystalReports() ConfigureCrystalReports();

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

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

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

Результаты При запуске веб-узла отчет будет загружен в окно обозревателя с тремя значениями по умолчанию, которые вы программным путем добавили в Программное заполнение коллекции объектов [стр. 588]. Выше отчета приведены три элемента управления TextBox и один элемент управления Button. С помощью этих элементов управления можно динамически обновлять коллекцию объектов и отображать результаты этого обновления в отчете.

Коллекции объектов – универсальный источник данных для отчетов Crystal. С помощью коллекции объектов можно написать собственный класс, который будет заполнять объект данными как программным путем, так и динамически. Коллекции объектов также могут использоваться для увеличения числа источников данных, имеющихся в стандартной установке версии SAP Crystal Reports для разработчика Microsoft Visual Studio, позволяя писать свои объекты для доступа к данным.

На данный момент у вас есть полнофункциональный веб-узел, который отображает отчет Crystal на основе коллекции объектов. Узел отображает информацию, которая введена в коллекцию объектов программным путем, а также информацию, которая добавляется динамически во время выполнения.

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

Процедура 1. Из обозревателя решений откройте StockObjects.rpt.

2. В меню Crystal Reports выберите пункт Вставить, а затем выберите Диаграмма.

3. В диалоговом окне Эксперт диаграмм выберите круговую диаграмму.

4. Выберите вкладку Данные из списка Поля отчета.

5. Выберите Stock.Company-Symbol и щелкните самую верхнюю стрелку вправо, чтобы переместить поле Stock.Company-Symbol к полю При изменении.

6. Выберите Stock.Volume и щелкните самую нижнюю стрелку вправо, чтобы переместить поле Stock.Volume к полю Отображать значения.

7. Нажмите кнопку ОК.

Создается новый раздел заголовка отчета, в который и добавляется объект диаграммы.

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

При отсутствии ошибок компиляции в обозреватель загрузится страница Default.aspx.

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

Процедура 1. В меню Crystal Reports выберите пункт Отчет, а затем выберите Мастерская формул.

2. В диалоговом окне Мастерская формул выберите Поля формулы.

3. Нажмите кнопку Создать, чтобы создать новую формулу.

4. В диалоговом окне Имя пользовательской функции введите "worth".

5. Нажмите кнопку Использовать редактор.

6. Добавьте код для умножения значения цены на значение (value) поля volume.

{Stock.Volume}*{Stock.Price} 7. Нажмите кнопку Сохранить и закрыть.

8. В меню Crystal Reports выберите пункт Вставить, а затем выберите Диаграмма.

9. В диалоговом окне Эксперт диаграмм выберите круговую диаграмму.

10. Перейдите на вкладку Данные.

11. Выберите Stock.Company-Symbol и щелкните самую верхнюю стрелку вправо, чтобы переместить поле Stock.Company-Symbol к полю При изменении.

12. Выберите Worth и щелкните самую нижнюю стрелку вправо, чтобы переместить формулу Worth к полю Отображать значения.

13. Перейдите на вкладку Текст.

14. Помимо поля Название, снимите флажок Автотекст.

15. Введите Worth / Symbol в поле Название.

16. Нажмите кнопку ОК.

17. Создается новый раздел заголовка отчета, в который и добавляется объект диаграммы.

Для изменения положения объектов в отчете Crystal перетащите их мышью на желаемое место. Для предварительного просмотра отчета можно воспользоваться кнопкой Просмотр главного отчета в нижней части формы.

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

Процедура 1. Разверните узел Поля формулы в окне Обозреватель полей.

2. Перетащите формулу worth на отчет. Расположите это поле в секции подробностей отчета.

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

В этом поле отображается стоимость каждой строки. С помощью итогового поля можно отобразить общую стоимость портфеля.

3. В меню Crystal Reports выберите пункт Вставить, а затем выберите Итог.

4. В диалоговом окне Вставка итога:

a) Выберите формулу Worth в поле Выберите поле для суммирования.

b) Выберите Сумма в поле Вычислить следующий итог.

c) Выберите Итоговая сумма в поле Расположение итога.

5. Нажмите кнопку ОК.

В отчет будет добавлено итоговое поле.

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

При отсутствии ошибок компиляции в обозреватель загрузится страница Default.aspx.

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

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.5.1 Учебное пособие: настройка многоязыковой поддержки клиентов В этом учебном пособии приводятся пояснения по настройке многоязыковой поддержки клиентов на вебсайте или в проекте Windows.

Вступление Версия SAP Crystal Reports для разработчиков Microsoft Visual Studio поддерживает работу с многоязычными веб-клиентами и клиентами Windows с использованием функций динамической локализации.

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

В данном учебном пособии представлены следующие разделы:

Настройка языковых ресурсов элемента управления CrystalReportViewer на веб-сервере или в клиенте Windows.

Различные способы настройки клиентского доступа к локализации.

Настройка глобальных и локальных параметров.

Примеры кода В данном учебном пособии приведен пример кода Visual Basic и C#, который демонстрирует завершенную версию проекта. Следуя инструкциям учебного пособия, создайте новый проект или откройте проект примера кода, чтобы начать работу с завершенной версией.

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

Веб-сайт C#: CS_Web_Multilingual Проект Windows C#: CS_Win_Multilingual Веб-сайт Visual Basic: VB_Web_Multilingual Проект Windows Visual Basic: VB_Win_Multilingual Связанные сведения Каталог образцов отчетов [стр. 15] © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.5.1.1 Проверка языкового стандарта отчета по умолчанию Предпосылки Данная процедура работает только с проектами, созданными из Настройка проекта [стр. 16]. Настройка проекта включает специальные ссылки на пространство имен и конфигурацию кода, необходимую для выполнения данной процедуры. Выполнение процедуры без этой конфигурации невозможно.

Контекст Для начала постройте и скомпилируйте проект Windows или проект веб-сайта, а затем просмотрите параметры языка для панели инструментов CrystalReportViewer, принятые по умолчанию.

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

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

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

Отчет "Иерархическое группирование" отображен успешно.

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

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

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

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.5.1.2 Настройка каталога файлов пользовательских ресурсов Контекст Версия SAP Crystal Reports для разработчика Microsoft Visual Studio предназначена для работы с несколькими файлами языковых ресурсов по умолчанию, а также с любыми пользовательскими файлами языковых ресурсов, созданными и скомпилированными разработчиком.

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

Английский (en) Французский (fr) Немецкий (de) Испанский (es) Итальянский (it) Японский (jp) Корейский (ko) Китайский (упрощенное письмо) (zh-chs) Китайский (традиционное письмо) (zh-cht) Файлы ресурсов по умолчанию включены в пакет примеров кода SAP Crystal Reports.NET SDK.

Извлеките файлы архива LanguageResourceFiles.zip в корневой каталог жесткого диска.

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

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

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

Сначала осуществляется настройка пользовательского каталога файлов ресурсов, который содержит пользовательские файлы ресурсов.

Процедура 1. Перейдите в корневой каталог жесткого диска и найдите папку LanguageResourceFiles.

2. Переименуйте папку в CrystalReportViewer_resource_files.

Эта процедура предполагает, что корневой каталог находится на диске C:.

3. В проводнике Windows откройте папку с именем C:\CrystalReportViewer_resource_files.

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

4. Переименуйте каталог es в ro.

ro – сокращение для румынского языка.

Следующие шаги В целях данного учебного пособия будут использоваться следующие объекты.

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

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

Следуйте инструкциям в разделе Компиляция файлов ресурсов [стр. 599] по компиляции пользовательских файлов ресурсов для папки языка ro.

Связанные сведения Каталог образцов отчетов [стр. 15] Контекст Теперь можно скомпилировать файлы ресурсов для подкаталога пользовательского языка, созданного согласно инструкциям предыдущего раздела.

Если необходимо скомпилировать пользовательские файлы ресурсов для языков с нелатинскими символами, например, кириллических, китайского, корейского, японского, иврит или арамейского, перед компиляцией потребуется настроить языковые стандарты среды для этих языков. Это гарантирует наличие соответствующих языковых сценариев. Дополнительные сведения см. в разделе Справочник: Настройка языкового стандарта среды [стр. 610].

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. Откройте подкаталог языка ro.

В данном пособии будут использоваться три файла:

CRWebFormViewer.txt Два первых файла содержат строки ресурсов для элемента управления на основе веб-интерфейса CrystalReportViewer. Последний файл содержит строки ресурсов для элемента управления на основе интерфейса Windows CrystalReportViewer.

2. Откройте файл Viewer.txt, чтобы просмотреть его содержимое.

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



Pages:     | 1 |   ...   | 10 | 11 || 13 | 14 |   ...   | 17 |
Похожие работы:

«ПРОЕКТ КОЛЛЕКТИВНЫЙ ДОГОВОР муниципального образовательного учреждения детский сад Малыш г. Данилова Ярославской области на 2013 - 2017 годы Раздел 1. Общие положения. 1. Настоящий коллективный договор заключен между работодателем в лице заведующей детским садом № 4 и работниками и является правовым актом, регулирующим социально-трудовые отношения в МОУ детского сада Малыш г. Данилова. 1.2. Коллективный договор заключен в соответствии с Трудовым кодексом РФ (далее - ТК РФ), иными...»

«Правительство Санкт-Петербурга Комитет по градостроительству и архитектуре РАСПОРЯЖЕНИЕ От 07.12.2007 №3933 О направлении проекта планировки и проекта межевания территории, ограниченной пр. Науки, Приозёрским направлением железной дороги, Пискарёвским пр., ул. Руставели, в Калининском районе на утверждение В соответствии со ст. ст.45, 46 Градостроительного кодекса РФ: Направить подготовленный в соответствии с требованиями законодательства проект планировки и проект межевания территории,...»

«Министерство образования и науки Российской Федерации Ярославский государственный университет им. П. Г. Демидова ОЧЕРКИ ПО ТОРГОВОМУ ПРАВУ Сборник научных трудов Под редакцией кандидата юридических наук Е. А. Крашенинникова Выпуск 18 Ярославль 2011 1 УДК 347.7 (06) ББК Х 623я43 О 95 Рекомендовано Редакционно-издательским советом университета в качестве научного издания. План 2010/2011 года Очерки по торговому праву : сб. науч. тр. / под ред. О 95 Е. А. Крашенинникова ; Яросл. гос. ун-т им. П....»

«агентство КАПИТАЛ 050046, г. Алматы, ул. Сатпаева 88, уг. ул. Т. Озала (быв. Баумана) оф. 2, тел. 392-43-63, 392-43-64 www.capitalinf.com, e-mail: [email protected] с 01 августа 2014 г. Уважаемые господа! Представляем Вашему вниманию информацию о нашей собственной продукции - серии специализированных информационно-справочных материалов в области строительства, энергетики, добычи и транспортировки нефти и газа, охраны труда и техники безопасности и др. Публикуемая нормативная база расхода...»

«О трех КИТах Как нам озеленить недропользование (на примере Республики Бурятия) Белоголовов В.Ф., ОО БРО по Байкалу Развитие недропользования в Бурятии в последние годы сталкивается с рядом социальных (протесты местных жителей) и экономических (снижение ликвидности месторождений) проблем в местах реализации проектов по добыче сырья. Как показывает опыт общественного сопровождения таких проектов, они могут быть превращены в ресурсы развития территории и местных сообществ, но только при условии...»

«Социально-экономические исследования то не имеют сил исполнить свое желание; особенно я ругаю себя за то, что разговаривал с ними столь доброжелательно!. (Тургенев Н. И. Указ. соч. С. 539–540). 14 Крестьянский вопрос в России. Т. II. С. 15–21, 275, 277; Иконников В. С. Указ. соч. С. 222–223. 15 Крестьянский вопрос в России. Т. II. С. 40–93, 277–279; Тургенев С. И. Дневники 1815– 1820 гг. // ОР РНБ. Ф. 849. Д. 142. Л. 144 об.–145; Мироненко С. В. Указ. соч. С. 106–113. Отметим, что в отношении...»

«Национальный рейтинг университетов Рейтинги вузов по образованию представителей элиты государственного управления России 2012 Москва март 2012 г. 2 СОДЕРЖАНИЕ О ПРОЕКТЕ ПЕРВОЕ ВЫСШЕЕ ОБРАЗОВАНИЕ СВОДНЫЙ РЕЙТИНГ ТЕРРИТОРИАЛЬНОЕ РАСПРЕДЕЛЕНИЕ ВУЗОВ СТАТУСЫ И КАТЕГОРИИ ВУЗОВ БЛОК ПРЕЗИДЕНТСКАЯ ВЛАСТЬ БЛОК ПРАВИТЕЛЬСТВО БЛОК СОВЕТ ФЕДЕРАЦИИ БЛОК ГОСУДАРСТВЕННАЯ ДУМА БЛОК СУДЕБНАЯ ВЛАСТЬ БЛОК КОНТРОЛЬНЫЕ ОРГАНЫ БЛОК РЕГИОНАЛЬНАЯ ВЛАСТЬ БЛОК ЦЕНТРАЛЬНЫЙ БАНК ВТОРОЕ И ПОСЛЕДУЮЩЕЕ ВЫСШЕЕ ОБРАЗОВАНИЕ...»

«Федеральное государственное бюджетное образовательное учреждение СМК высшего профессионального образования РГУТиС РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТУРИЗМА И СЕРВИСА Лист 1 из 62 Принято: Утверждаю: Ученым Советом Ректор Протокол № 4 от 30 ноября 2012г. А.А. Федулин ПОЛОЖЕНИЕ О ПРОВЕДЕНИИ ТЕКУЩЕГО КОНТРОЛЯ УСПЕВАЕМОСТИ И ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ ОБУЧАЮЩИХСЯ _ код документа _ версия Разработано: Начальник управления И.А. Дуборкина профессионального образования А.Ю. Щиканов Начальник...»

«ПРОЕКТ Концепция инвестиционной стратегии Ямало-Ненецкого автономного округа Предварительная версия, подготовленная АНО Институт региональной политики в рамках договора № ИРП-Р-31/08/10 2011 г. Оглавление Цели и задачи разработки инвестиционной стратегии О разработке инвестиционной стратегии Формирование лидерства ЯНАО в арктическом регионе Городское развитие, формирование агломераций и повышение качества жизни.15 Развитие малого бизнеса и инноваций Развитие транспорта Развитие туристской...»

«ПРОЕКТ КОЛЛЕКТИВНЫЙ ДОГОВОР государственного бюджетного образовательного учреждения города Москвы лицея №1535 на 2013–2016 годы От работодателя: От работников: Директор ГБОУ города Москвы лицея №1535 Председатель первичной профсоюзной организации ГБОУ города Москвы лицея №1535 / Т. В. Воробьёва / / Е. И. Чернов / М. П. М. П. _ _ 20_ г. _ _ 20_ г. Коллективный договор прошел уведомительную регистрацию в органе по труду (Комитет общественных связей города Москвы) (указать наименование органа)...»

«МЕЖОТРАСЛЕВОЙ КАТАЛОГ ПРОМЫШЛЕННАЯ ЭКОЛОГИЯ-2011 Межотраслевой каталог для специалистов промышленных предприятий поможет найти актуальную информацию о ведущих производителях экологического оборудования, ООО ИНТЕХЭКО проектных и инжиниринговых компаниях, имеющих www.intecheco.ru реальный опыт решения различных экологических задач в промышленности, газоочистки, пылеулавливания, водоподготовки и водоочистки, переработки отходов, экологического мониторинга и охраны окружающей среды. МЕЖОТРАСЛЕВОЙ...»

«1 МИНИСТЕРСТВО СПОРТА, ТУРИЗМА И МОЛОДЕЖНОЙ ПОЛИТИКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГБОУ ВПО CИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФИЗИЧЕСКРЙ КУЛЬТУРЫ И СПОРТА ФАКУЛЬТУТ ТУРИЗМА, РЕКРЕАЦИИ И РЕАБИЛИТАЦИИ КАФЕДРА ТЕОРИИ И МЕТОДИКИ ТУРИЗМА И СОЦИАЛЬНО-КУЛЬТУРНОГО СЕРВИСА Курганова Ирина Александровна ПО МАРШРУТУ КАТОРЖНИКОВ реферат по предмету Туристско-рекреационное проектирование Проверил: доктор биологических наук, Соловьёв С.А. Омск – Содержание: Введение.. ГЛАВА 1. ИСТОРИЯ ССЫЛКИ И КАТОРГИ В СИБИРЬ....»

«Государственная жилищная инспекция Кемеровской области Главное управление архитектуры и градостроительства Кемеровской области РЕКОМЕНДАЦИИ ПО ФУНКЦИОНАЛЬНОЙ, АРХИТЕКТУРНОЙ И КОНСТРУКТИВНОЙ ОРГАНИЗАЦИИ ПРИКВАРТИРНЫХ ПОМЕЩЕНИЙ ЖИЛЫХ ЗДАНИЙ НА СЕЛИТЕБНЫХ ТЕРРИТОРИЯХ КЕМЕРОВСКОЙ ОБЛАСТИ Кемерово 2011 Рецензент Заместитель председателя Комитета градостроительства и землепользования Администрации г. Новокузнецка, заслуженный строитель Российской Федерации В.И. Магель Разработчики: Назаренко Иван...»

«Историческая страница Орска http://history.opck.org История Оренбуржья http://kraeved.opck.org/ Авторские проекты Раковского Сергея http://rakovski.ru РОМАН ГОСУДАРСТВЕННОЕ ИЗДАТЕЛЬСТВО ХУДОЖЕСТВЕННОЙ ЛИТЕРАТУРЫ УзССР Ташкент—1964 Р2 Г96 Неутомимый путешественник и исследователь Средней Азии Ян Виткевич был первым русским дипломатом в Афганистане (1837—1838 годы). Посвящая роман его жизни, автор рисует широкую картину происходящих событий в Европе и на Востоке. Это было бурное время. В Индию и...»

«2 1. Цели освоения дисциплины Целями освоения дисциплины Основы горного дела (подземная геотехнология) является формирование у студентов представления о будущей профессии, получение базовых знаний об основных принципах добычи полезных ископаемых подземным способом. Дисциплина Основы горного дела формирует теоретические знания, практические навыки, вырабатывает компетенции, которые дают возможность выполнять следующие виды профессиональной деятельности: производственно-технологическую;...»

«МИНОБРНАУКИ РОССИИ Государственное образовательное учреждение высшего профессионального образования РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ (РГГУ) УТВЕРЖДАЮ Проректор университета по научной работе Д.П. БАК __ г. ОТЧЕТ О ВЫПОЛНЕННОЙ РАБОТЕ по Государственному контракту № 14.741.12.0116 от 06 декабря 2010 г. Организационно-техническое обеспечение проведения Всероссийской научной школы для молодежи Ю.В. Кнорозов в мировой гуманитарной науке ХХ века (Итоговый) Руководитель работ Док-р...»

«Санкт-Петербургский государственный университет Исторический факультет Кафедра истории древней Греции и Рима Центр антиковедения МНЕМОН Исследования и публикации по истории античного мира Выпуск 12: Из истории античности и нового времени. Сборник статей к 80-летию со дня рождения проф. Э. Д. Фролова Санкт-Петербург 2013 Одесский период биографии И. М. Тронского (1897–1923) И. В. Тункина A Одесский период биографии И. М. Тронского (1897–1923)* Крупнейший советский ученый-латинист и историк...»

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

«Российская Федерация Пермский край Нытвенское городское поселение КОМПЛЕКСНЫЙ ИНВЕСТИЦИОННЫЙ ПЛАН МОДЕРНИЗАЦИИ МОНОГОРОДА НЫТВЫ НА 2011-2020 ГГ. Утвержден решением Думы Нытвенского городского поселения от 29.12.2010 № 247 2010 Оглавление Паспорт Комплексного инвестиционного плана модернизации моногорода Нытвы на 2011-2020 гг. I. Ключевые аспекты и проблемы социально-экономического развития моногорода Нытвы 1.1. Общая характеристика, историческая справка 1.2. Анализ демографической ситуации,...»

«Документация по Оценке воздействия на окружающую среду, разработанная Nord Stream, для проведения консультаций в рамках Конвенции Эспо Отчет Эспо по Проекту Nord Stream Февраль 2009 Том II: Глава 1-8 Russian version RUS Обратите внимание: Документация по оценке воздействия на окружающую среду Nord Stream для консультаций в рамках Конвенции Эспо в дальнейшем и для всей документации, предоставляемой для настоящего документа, будет именоваться Отчет Эспо по Nord Stream или Отчет Эспо. Английская...»






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

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