WWW.DISS.SELUK.RU

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

 

Pages:     | 1 |   ...   | 6 | 7 || 9 | 10 |   ...   | 17 |

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

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

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

3. Наконец, добавьте к методу ConfigureCrystalReports() вызов, который забирает последний экземпляр hierarchicalGroupingReport из Session (тот, который вы только что обновили), и свяжите его с элементом управления CrystalReportViewer.

ConfigureCrystalReports() ConfigureCrystalReports();

Результаты Теперь можно проверить, успешно ли сохраняются изменения сортировки.

1.5.2.1.5 Проверка и определение успешности сохранения В этом разделе вы проверите, успешно ли сохраняются изменения сортировки, когда для сохранения используется Session.

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

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

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

Если ошибок сборки не обнаружено, страница Default.aspx загружается в вашем браузере, вместе с созданным в форме отчетом иерархического группирования.

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

4. Нажмите кнопку Сортировка по убыванию.

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

5. На панели инструментов в отчете измените масштаб со 100% на 125%.

Страница перезагрузит отчет в масштабе 125%. Смена порядка сортировки сохраняется.

6. Нажмите кнопку Сортировка по возрастанию.

Порядок сортировки восстанавливается.

7. На панели инструментов в отчете измените масштаб со 125% на 100%.

Страница перезагрузит отчет в масштабе 100%. Порядок сортировки сохраняет параметры с предыдущего шага.

Результаты Из этой проверки видно, что сохранение теперь происходит успешно.

1.5.2.2 Учебное пособие: вход в защищенную базу данных SQL Server с помощью аутентификации SQL.

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

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

Объект ReportDocument имеет свойство Database, которое возвращает экземпляр Database. Этот экземпляр Database содержит информацию из базы данных для отчета, включая свойство Tables, которое Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide возвращает экземпляр индексированного класса Tables. Отдельные экземпляры Table можно извлечь из индексированного класса Tables.

Вход происходит на гранулярном уровне каждого экземпляра Table, которому необходимо дать индивидуальный доступ к защищенному серверу SQL. Это делается путем размещения сведений для входа в экземпляре ConnectionInfo, а затем, в цикле for, путем применения этого экземпляра ConnectionInfo к свойству ConnectionInfo каждого из экземпляров Table.

Свойства класса ConnectionInfo содержат следующие элементы:

ServerName DatabaseName Password IntegratedSecurity (не используется в этом учебном пособии) Если вы хотите пройти учебное пособие, в котором используется аутентификация Windows (и таким образом использует свойство IntegratedSecurity вместо свойств UserID и Password), см. раздел Учебное пособие: вход в защищенную базу данных SQL Server с помощью интегрированной защиты. [стр. 373].

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

Начнем с создания отчета, содержащего данные из защищенной базы данных сервера SQL.

Завершить это учебное пособие можно с использованием классов объектной модели CrystalReportViewer;

однако рекомендуется объектная модель ReportDocument.

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

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

Веб-сайт C#: CS_Web_RDObjMod_DBLogon Windows-проект C#: CS_Win_RDObjMod_DBLogon Веб-сайт Visual Basic: VB_Web_RDObjMod_DBLogon Windows-проект Visual Basic: VB_Win_RDObjMod_DBLogon Связанные сведения Выбор правильной объектной модели для проекта [стр. 32] © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Учебное пособие: вход в защищенную базу данных SQL Server [стр. 247] В этом учебном пособии описывается способ добавления кода входа в систему для отображения отчета, содержащего информацию из защищенной базы данных SQL Server.

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

Northwind — это образец базы данных, поставляемый вместе с SQL Server.

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

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

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

Если установлен SQL Server (или OEM-версия, MSDE), то для работы с этим учебником он должен быть сконфигурирован для приема аутентификации SQL Server.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы используете встроенные отчеты, выполните следующую пошаговую процедуру для создания отчета встроенного типа.

Если вы используете невстроенные отчеты, выполните вторую пошаговую процедуру для создания отчета невстроенного типа.

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

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

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

Private northwindCustomersReport As NorthwindCustomers Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide private NorthwindCustomers northwindCustomersReport;

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

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

northwindCustomersReport = New NorthwindCustomers() northwindCustomersReport = new NorthwindCustomers();

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

northwindCustomersReport).

myCrystalReportViewer.ReportSource = northwindCustomersReport crystalReportViewer.ReportSource = northwindCustomersReport;

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

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

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

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

Private northwindCustomersReport As ReportDocument © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide private ReportDocument northwindCustomersReport;

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

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

northwindCustomersReport = New ReportDocument() northwindCustomersReport = new ReportDocument();

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

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

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

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

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

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

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

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

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

myCrystalReportViewer.ReportSource = northwindCustomersReport crystalReportViewer.ReportSource = northwindCustomersReport;

1.5.2.2.2.3 Тестирование загрузки отчета NorthwindCustomers Контекст Вне зависимости от того, было ли выбрано создание класса встроенных отчетов или создание невстроенного отчета при помощи класса ReportDocument, используется одно и то же имя переменной:

northwindCustomersReport. Это позволяет использовать в последующих процедурах один и тот же код.

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

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

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

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

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

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

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

Результаты могут различаться в зависимости от используемой версии SAP Crystal Reports.

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

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

Теперь все готово для добавления кода входа в класс code-behind. Начните с создания вспомогательного private-метода, SetDBLogonForReport().

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

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

Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo, ByVal myReportDocument As ReportDocument) private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument) 3. В этом методе извлеките экземпляр Tables из свойства Tables свойства Database параметра ReportDocument.

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

Dim myTables As Tables = myReportDocument.Database.Tables Tables tables = reportDocument.Database.Tables;

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Необходимо включить полный путь пространства имен к классу Table, чтобы отличить его от класса Table в пространстве имен System.Web.UI.WebControls.

For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In myTables foreach(CrystalDecisions.CrystalReports.Engine.Table table in tables) 5. В цикле foreach извлеките экземпляр TableLogonInfo из свойства LogOnInfo экземпляра Table.

Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo TableLogOnInfo tableLogonInfo = table.LogOnInfo;

6. В цикле foreach задайте для свойства ConnectionInfo объекта TableLogonInfo параметр ConnectionInfo.

myTableLogonInfo.ConnectionInfo = myConnectionInfo tableLogonInfo.ConnectionInfo = connectionInfo;

7. В цикле foreach передайте экземпляр TableLogonInfo как параметр в метод ApplyLogonInfo экземпляра Table.

myTable.ApplyLogOnInfo(myTableLogonInfo) table.ApplyLogOnInfo(tableLogonInfo);

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

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

Конфигурирование экземпляра ConnectionInfo.

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

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

2. В разрывах строк объявите и инициализируйте класс ConnectionInfo.

Чтобы класс ConnectionInfo был доступен, включите выражение "Imports" [Visual Basic] или "using" [C#] вверху класса code-behind для пространства имен CrystalDecisions.Shared. (Это объявление было добавлено в разделе Настройка проекта [стр. 16].) Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo() ConnectionInfo connectionInfo = new ConnectionInfo();

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

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

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

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

connectionInfo.UserID = "limitedPermissionAccount";

connectionInfo.Password = " 4. Введите вызов метода SetDBLogonForReport(), передав экземпляр ConnectionInfo и отчет NorthwindCustomers.

SetDBLogonForReport(myConnectionInfo, northwindCustomersReport) SetDBLogonForReport(connectionInfo, northwindCustomersReport);

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Результаты Затем следует первоначальный код, который связывает отчет с элементом управления CrystalReportViewer.

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

1.5.2.2.3.3 Тестирование загрузки отчета NorthwindCustomers Процедура 1. В меню Построение выберите команду Построение решения.

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

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

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

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

Результаты Отчет NorthwindCustomers отображается успешно.

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

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

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

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

myConnectionInfo.ServerName = "DevDatabase" connectionInfo.ServerName = "DevDatabase";

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

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

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

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

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

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

1.5.2.2.5 Приложение: Улучшения в коде входа в базу данных Код для изменения расположения базы данных во время выполнения введен успешно. В этом примере сервер базы данных тот же, единственное отличие, что он вызывался явно по имени.

Однако теперь можно указать в строке сервера баз данных любой другой сервер, содержащий базу данных Northwind. При использовании SAP Crystal Reports с Visual Studio 2005 или 2008 у вас есть доступ к расширенному интерфейсу API для входа в защищенную базу данных SQL Server. Интерфейс SAP Crystal Reports API помогает минимизировать количество кода, необходимое для входа в базу данных.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide В предыдущих процедурах вы научились создавать вспомогательный метод SetDBLogonForReport(), который использует цикл foreach для задания свойстваConnectionInfo в каждой таблице отчета Crystal.

В этом учебном пособии вы научитесь удалять вспомогательный метод и добавлять код для использования либо класса DataSourceConnections из пространства имен CrystalDecisions.Shared, либо метода SetDatabaseLogon() из класса ReportDocument.

Класс DataSourceConnections представляет собой список ArrayList, содержащий экземпляры ConnectionInfo для каждого соединения, используемого в отчете Crystal. Можно извлечь экземпляры ConnectionInfo по указанному индексу и вызвать SetLogon() или SetConnection() для передачи отчету сведений для входа.

Метод SetLogon() позволяет задать имя пользователя и пароль. Этот метод использует указанные в отчете сервер и базу данных по умолчанию. Метод SetConnection() позволяет задать имя сервера, имя базы данных, имя пользователя и пароль.

Для использования нового кода API необходимо выполнить инструкции из разделов Создание отчета, соединенного с защищенной базой данных SQL Server [стр. 357] и Связывание отчета [стр. 359].

Затем можно использовать один из следующих методов расширенного интерфейса API:

Использование класса DataSourceConnections для входа в базу данных [стр. 369] Использование метода SetDatabaseLogon() класса ReportDocument [стр. 372] Если вы завершили все процедуры из раздела Учебное пособие: вход в защищенную базу данных SQL Server с помощью аутентификации SQL. [стр. 355], то необходимо сначала удалить определенные строки кода, показанные в разделе Изменение проекта для входа в базу данных [стр. 368], прежде чем использовать один из методов расширенного интерфейса API.

1.5.2.2.5.1 Изменение проекта для входа в базу данных Если вы выполнили все процедуры раздела Учебное пособие: вход в защищенную базу данных SQL Server с помощью аутентификации SQL. [стр. 355], необходимо сначала удалить определенные строки кода, указанные в следующий процедуре.

1.5.2.2.5.1.1 Изменение проекта для использования расширенного интерфейса SAP Crystal Reports API Процедура 1. Откройте завершенный проект, как описано в данном пособии.

2. Откройте веб-форму или форму Windows.

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

4. Удалите вспомогательный метод SetDBLogonForReport().

5. В методе ConfigureCrystalReports() удалите следующие строки кода:

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide a) Удалите код, который объявляет экземпляр класса ConnectionInfo.

b) Удалите код, использующий свойства ServerName, DatabaseName, UserID и Password из класса c) Удалите вызов метода SetDBLogonForReport().

Результаты Теперь метод ConfigureCrystalReports() содержит две строки кода.

Private Sub ConfigureCrystalReports() northwindCustomersReport = new NorthwindCustomers() myCrystalReportViewer.ReportSource = northwindCustomersReport private void ConfigureCrystalReports() northwindCustomersReport = new NorthwindCustomers();

crystalReportViewer.ReportSource = northwindCustomersReport;

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

Использование класса DataSourceConnections для входа в базу данных [стр. 369] Использование метода SetDatabaseLogon() класса ReportDocument [стр. 372] 1.5.2.2.5.2 Использование класса DataSourceConnections для входа в базу данных В этом разделе вы научитесь добавлять две строки кода для входа в базу данных SQL Server. Необходимо извлечь экземпляр DataSourceConnections и задать сведения для входа в базу данных с помощью SetLogon() или SetConnection().

Необходимо создать проект, как указано в инструкциях разделов Создание отчета, соединенного с защищенной базой данных SQL Server [стр. 357] и Связывание отчета [стр. 359].

Или же проект должен быть создан, исходя из инструкций в разделе Изменение проекта для входа в базу данных [стр. 368].

Если вы хотите использовать сервер и базу данных по умолчанию, вызовите метод SetLogon() с именем пользователя и паролем.

Иначе, если требуется изменить сервер или базу данных, вызовите метод SetConnection() с именем сервера, именем базой данных, именем пользователя и паролем.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.2.2.5.2.1 Использование метода SetLogon() в классе DataSourceConnections Процедура 1. Между двумя строками кода внутри ConfigureCrystalReports() извлеките экземпляр DataSourceConnections из свойства DataSourceConnections экземпляра NorthwindCustomers.

Dim myDataSourceConnections As DataSourceConnections = northwindCustomersReport.DataSourceConnections DataSourceConnections dataSourceConnections = northwindCustomersReport.DataSourceConnections;

2. Извлеките IConnectionInfo по индексу 0 экземпляра DataSourceConnections.

Dim myConnectInfo As IConnectionInfo = myDataSourceConnections(0) IConnectionInfo connectInfo = dataSourceConnections[0];

3. Вызовите метод SetLogon() с вашими именем пользователя и паролем.

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

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

myConnectInfo.SetLogon("limitedPermissionAccount", "1234") connectInfo.SetLogon("limitedPermissionAccount", "1234");

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.2.2.5.2.2 Использование метода SetConnection() в классе DataSourceConnections Процедура 1. Между двумя строками кода внутри ConfigureCrystalReports() извлеките экземпляр DataSourceConnections из свойства DataSourceConnections экземпляра NorthwindCustomers.

Dim myDataSourceConnections As DataSourceConnections = northwindCustomersReport.DataSourceConnections DataSourceConnections dataSourceConnections = northwindCustomersReport.DataSourceConnections;

2. Извлеките IConnectionInfo по индексу 0 экземпляра DataSourceConnections.

Dim myConnectInfo As IConnectionInfo = myDataSourceConnections(0) IConnectionInfo connectInfo = dataSourceConnections[0];

3. Вызовите метод SetConnection() с именем сервера, именем базы данных, именем пользователя и паролем.

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

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

myConnectInfo.SetConnection("ServerName", "Northwind", "limitedPermissionAccount", "1234") connectInfo.SetConnection("ServerName", "Northwind", "limitedPermissionAccount", Результаты Теперь можно собрать и запустить проект для входа в защищенную базу данных SQL Server.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.2.2.5.3 Использование метода SetDatabaseLogon() класса ReportDocument Контекст Между двумя строками кода внутри ConfigureCrystalReports() вызовите метод SetDatabaseLogon() экземпляра NorthwindCustomers и передайте ему один из следующих наборов параметров:

Процедура 1. Вызовите метод SetDatabaseLogon() с вашими именем пользователя и паролем.

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

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

northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234") northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234");

2. Или вызовите метод SetDatabaseLogon() с именем сервера, именем базы данных, именем пользователя и паролем.

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

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

northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234", "ServerName", "Northwind") northwindCustomersReport.SetDatabaseLogon("limitedPermissionAccount","1234", "ServerName", "Northwind");

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.2.3 Учебное пособие: вход в защищенную базу данных SQL Server с помощью интегрированной защиты.

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

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

Объект ReportDocument имеет свойство Database, которое возвращает экземпляр Database. Этот экземпляр Database содержит информацию из базы данных для отчета, включая свойство Tables, которое возвращает индексированный экземпляр класса Tables. Отдельные экземпляры Table можно извлечь из индексированного класса Tables.

Вход происходит на гранулярном уровне каждого экземпляра Table, которому необходимо дать индивидуальный доступ к защищенному серверу SQL. Это делается путем размещения сведений для входа в экземпляре ConnectionInfo, а затем, в цикле for, путем применения этого экземпляра ConnectionInfo к свойству ConnectionInfo каждого из экземпляров Table.

Свойства класса ConnectionInfo содержат следующие элементы:

ServerName DatabaseName UserID (не используется в этом учебном пособии) Password (не используется в этом учебном пособии) IntegratedSecurity Если вы хотите пройти учебное пособие, в котором используется аутентификация SQL (и соответственно, свойства UserID и Password, а не Integrated Security), см. раздел Учебное пособие: вход в защищенную базу данных SQL Server с помощью аутентификации SQL. [стр. 355].

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

Начнем с создания отчета, содержащего данные из защищенной базы данных сервера SQL.

Завершить это учебное пособие можно с использованием классов объектной модели CrystalReportViewer;

однако рекомендуется объектная модель ReportDocument.

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

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

Веб-сайт C#: CS_Web_RDObjMod_DBLogonIntegratedSecurity Windows-проект C#: CS_Win_RDObjMod_DBLogonIntegratedSecurity Веб-сайт Visual Basic: VB_Web_RDObjMod_DBLogonIntegratedSecurity Windows-проект Visual Basic: VB_Win_RDObjMod_DBLogonIntegratedSecurity Связанные сведения Выбор правильной объектной модели для проекта [стр. 32] Каталог образцов отчетов [стр. 15] 1.5.2.3.1 Создание отчета, подключенного к защищенной базе данных SQL Server при помощи интегрированной защиты Для начала создайте отчет, который черпает информацию из базы данных Northwind.

Northwind — это образец базы данных, поставляемый вместе с SQL Server.

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

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

Если установлен SQL Server (или OEM-версия, MSDE), он должен быть сконфигурирован для приема аутентификации Windows в данном учебном пособии.

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 2. База данных Northwind, поставляемая с SQL Server, должна быть установлена и готова к приему аутентификации Windows.

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

Данная процедура работает только с проектами, созданными из Настройка проекта [стр. 16].

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

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

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

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

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

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

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

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

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

9. Введите имя сервера баз данных в поле Сервер.

10. Установите флажок Интегрированная защита.

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

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

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

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

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

16. Нажмите значок >, чтобы переместить эти поля в панель Отображаемые поля, а затем нажмите кнопку Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 17. На панели Доступные поля в разделе Поля отчета выберите пункт Customer.City, затем щелкните символ > для перемещения этого поля на панель Группировать по, после чего нажмите кнопку Готово.

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

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

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

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

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

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

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

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

Если вы используете встроенные отчеты, выполните следующую пошаговую процедуру для создания отчета встроенного типа.

Если вы используете невстроенные отчеты, выполните вторую пошаговую процедуру для создания отчета невстроенного типа.

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

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Добавьте новое объявление на уровне класса для класса-обертки отчета NorthwindCustomers с использованием имени переменной northwindCustomersReport. Установите для него модификатор доступа private.

Private northwindCustomersReport As NorthwindCustomers private NorthwindCustomers northwindCustomersReport;

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

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

northwindCustomersReport = New NorthwindCustomers() northwindCustomersReport = new NorthwindCustomers();

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

northwindCustomersReport).

myCrystalReportViewer.ReportSource = northwindCustomersReport crystalReportViewer.ReportSource = northwindCustomersReport;

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

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

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Добавьте новое объявление на уровне класса для класса-обертки отчета NorthwindCustomers с использованием имени переменной northwindCustomersReport. Установите для него модификатор доступа private.

Private northwindCustomersReport As ReportDocument private ReportDocument northwindCustomersReport;

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

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

northwindCustomersReport = New ReportDocument() northwindCustomersReport = new ReportDocument();

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

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

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

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

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 6. Вызовите метод Load() экземпляра ReportDocument и передайте в него строковую переменную reportPath.

northwindCustomersReport.Load(reportPath) northwindCustomersReport.Load(reportPath);

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

myCrystalReportViewer.ReportSource = northwindCustomersReport crystalReportViewer.ReportSource = northwindCustomersReport;

Результаты Если выбрано создание экземпляра класса встроенного отчета или невстроенного отчета посредством класса ReportDocument, используется такое же имя переменной: northwindCustomersReport. Это позволяет использовать в последующих процедурах один и тот же код.

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

1.5.2.3.2.3 Тестирование загрузки отчета NorthwindCustomers Процедура 1. В меню Построение выберите команду Построение решения.

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

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

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

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

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Результаты могут различаться в зависимости от используемой версии SAP Crystal Reports.

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

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

1.5.2.3.3 Добавление кода входа для отчета Теперь все готово для добавления кода входа в класс code-behind. Начните с создания вспомогательного private-метода, SetDBLogonForReport().

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

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

Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo, ByVal myReportDocument As ReportDocument) private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument) 3. В этом методе извлеките экземпляр Tables из свойства Tables свойства Database параметра ReportDocument.

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

Dim myTables As Tables = myReportDocument.Database.Tables © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Tables tables = reportDocument.Database.Tables;

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

Необходимо включить полный путь пространства имен к классу Table, чтобы отличить его от класса Table в пространстве имен System.Web.UI.WebControls.

For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In myTables foreach(CrystalDecisions.CrystalReports.Engine.Table table in tables) 5. В цикле foreach извлеките экземпляр TableLogonInfo из свойства LogOnInfo экземпляра Table.

Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo TableLogOnInfo tableLogonInfo = table.LogOnInfo;

6. В цикле foreach задайте свойство ConnectionInfo в TableLogonInfo параметру ConnectionInfo.

myTableLogonInfo.ConnectionInfo = myConnectionInfo tableLogonInfo.ConnectionInfo = connectionInfo;

7. В цикле foreach передайте экземпляр TableLogonInfo как параметр методу ApplyLogonInfo в экземпляре myTable.ApplyLogOnInfo(myTableLogonInfo) table.ApplyLogOnInfo(tableLogonInfo);

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

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Конфигурирование экземпляра ConnectionInfo.

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

1.5.2.3.3.2 Изменение метода ConfigureCrystalReports() для обращения к коду входа в базу данных Процедура 1. В методе ConfigureCrystalReports() создайте несколько разрывов строк в указанном выше коде, который связывает отчет с элементом управления CrystalReportViewer.

2. В разрывах строк объявите и инициализируйте класс ConnectionInfo.

Чтобы класс ConnectionInfo был доступен, включите выражение "Imports" [Visual Basic] или "using" [C#] вверху класса code-behind для пространства имен CrystalDecisions.Shared. (Это объявление было добавлено в разделе Настройка проекта [стр. 16].) Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo() ConnectionInfo connectionInfo = new ConnectionInfo();

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

myConnectionInfo.DatabaseName = "Northwind" myConnectionInfo.IntegratedSecurity = True connectionInfo.DatabaseName = "Northwind";

connectionInfo.IntegratedSecurity = true;

4. Введите вызов метода SetDBLogonForReport(), передав экземпляр ConnectionInfo и отчет NorthwindCustomers.

SetDBLogonForReport(myConnectionInfo, northwindCustomersReport) SetDBLogonForReport(connectionInfo, northwindCustomersReport);

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

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

1.5.2.3.3.3 Тестирование загрузки отчета NorthwindCustomers Процедура 1. В меню Построение выберите команду Построение решения.

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

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

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

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

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

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

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

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide В написанном коде замените образец имени сервера DevDatabase (как показано ниже) именем конкретного сервера.

myConnectionInfo.ServerName = "DevDatabase" connectionInfo.ServerName = "DevDatabase";

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

1.5.2.3.4.2 Тестирование возможности переключения отчета на альтернативный сервер баз данных во время выполнения Процедура 1. В меню "Построение" выберите команду Построение решения.

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

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

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

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

1.5.2.3.5 Конфигурирование с помощью метода SetConnection Контекст В этом разделе вы научитесь применять все три изменения (имя сервера, имя базы данных и настройку интегрированной защиты), используя метод SetConnection(). Для этого требуется лишь незначительное изменение экземпляра ConnectionInfo.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. В методе ConfigureCrystalReports() после строки, которая объявляет и инициализирует ConnectionInfo, удалите строки кода, назначающие свойства ServerName, DatabaseName и IntegratedSecurity.

2. Введите новую строку кода, в которой объявите метод SetConnection() экземпляра ConnectionInfo, передайте этому методу имя сервера, имя базы данных и настройку интегрированной защиты.

myConnectionInfo.SetConnection("DevDatabase", "Northwind", True) connectionInfo.SetConnection("DevDatabase", "Northwind", true);

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

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

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

Необходимо внести два изменения в проект, созданный в предыдущем учебном пособии:

Добавить подотчет к исходному отчету.

Этот подотчет обращается к таблице Orders базы данных Northwind. Таблица Orders связана с используемой таблицей Customers по внешнему ключу CustomerID в предыдущем учебном пособии.

Добавить новый метод.

Метод извлекает подотчеты из главного отчета и передает каждый подотчет во вспомогательный метод SetDBLogonForReport().

Завершить это учебное пособие можно с использованием классов объектной модели CrystalReportViewer;

однако рекомендуется объектная модель ReportDocument.

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

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

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

Веб-сайт C#: CS_Web_RDObjMod_DBLogonSubrpt Windows-проект C#: CS_Win_RDObjMod_DBLogonSubrpt Веб-сайт Visual Basic: VB_Web_RDObjMod_DBLogonSubrpt Windows-проект Visual Basic: VB_Win_RDObjMod_DBLogonSubrpt Связанные сведения Каталог образцов отчетов [стр. 15] 1.5.2.4.1 Добавление подотчета в исходный отчет Вы начинаете с добавления подотчета к исходному отчету.

Процедура 1. Откройте проект, созданный в предыдущем учебном пособии, Учебное пособие: вход в защищенную базу данных SQL Server с помощью интегрированной защиты. [стр. 373].

2. В Проводнике решений дважды щелкните отчет NorthwindCustomers, чтобы открыть его.

3. Щелкните правой кнопкой мыши серую панель Подробности и выберите команду Вставить раздел 4. Щелкните правой кнопкой мыши в созданном разделе Подробности b, укажите пункт Вставить и выберите команду Подотчет.

Вокруг курсора мыши появится серый квадрат.

5. Перетащите серый прямоугольник в новый раздел Подробности b.

6. В диалоговом окне Вставка подотчета на вкладке Подотчет выберите элемент Создать подотчет с помощью мастера отчетов.

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

7. В поле Имя нового отчета введите "CustomerOrders".

8. Щелкните элемент Мастер отчетов....

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

10. Разверните папку OLE DB (ADO).

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

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

11. Разверните узлы Northwind, dbo и Tables.

12. Выберите таблицу Заказы и щелкните символ >, чтобы переместить таблицу "Заказы" на панель Выбор таблиц, затем нажмите кнопку Далее.

13. На панели Доступные поля выберите элементы Идентификатор заказа, Дата заказа, Дата отгрузки и Название отгрузки.

14. Щелкните символ >, чтобы переместить эти поля в панель Поля для отображения, и нажмите кнопку Готово.

15. В диалоговом окне Вставка подотчета выберите вкладку Ссылка.

16. На панели Поля исходного отчета, с которыми необходимо установить связь, в списке Доступные поля раскройте таблицу Клиенты, выберите элемент Идентификатор клиента и щелкните символ >.

17. На появившейся панели Связь с полем Клиенты.Идентификатор клиента оставьте значения по умолчанию без изменений.

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

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

Новый подотчет, CustomerOrders, отображается в разделе "Подробности b" главного отчета.

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

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.2.4.1.2 Проверка настроек подотчета Процедура 1. В разделе "Подробности" отчета дважды щелкните подотчет CustomerOrders, чтобы просмотреть его.

Внизу представления "Конструктор" отображаются кнопки навигации как для основного отчета, так и для подотчета CustomerOrders.

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

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

3. В Проводнике полей разверните элемент Поля параметров.

4. Убедитесь, что поле параметра Pm-Клиенты.Идентификатор клиента было автоматически создано при установлении связи с подотчетом.

5. На панели инструментов нажмите кнопку Мастер выбора.

6. В диалоговом окне Мастер выбора убедитесь, что установлен критерий Заказы.Идентификатор клиента равно {Pm-Клиенты.Идентификатор клиента}, и нажмите кнопку ОК.

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

Результаты Подотчет CustomerOrders успешно добавлен в отчет NorthwindCustomers. В следующем разделе добавляется код для установки сведений о защищенном входе в базу данных SQL Server для всех подотчетов, обнаруженных в главном отчете.

1.5.2.4.2 Добавление кода входа в подотчет Теперь можно добавить код входа для подотчета в класс code-behind. Для начала создайте вспомогательный private-метод с именем SetDBLogonForSubreports().

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

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

3. Внизу класса создайте новый private-метод с именем SetDBLogonForSubreports() и двумя параметрами, ConnectionInfo и ReportDocument.

Private Sub SetDBLogonForSubreports(ByVal myConnectionInfo As ConnectionInfo, ByVal myReportDocument As ReportDocument) private void SetDBLogonForSubreports(ConnectionInfo connectionInfo, ReportDocument reportDocument) 4. В этом методе извлеките экземпляр Sections из свойства Sections свойства ReportDefinition параметра ReportDocument.

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

Dim mySections As Sections = myReportDocument.ReportDefinition.Sections Sections sections = reportDocument.ReportDefinition.Sections;

5. Создайте цикл foreach, который проходит по каждому экземпляру Section в экземпляре индексированного класса Sections.

For Each mySection As Section In mySections foreach(Section section in sections) 6. В каждом цикле foreach извлеките экземпляр ReportObjects из свойства ReportObjects экземпляра Sections.

Dim myReportObjects As ReportObjects = mySection.ReportObjects Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide ReportObjects reportObjects = section.ReportObjects;

7. В цикле foreach создайте новый вложенный цикл foreach, проходящий через каждый экземпляр ReportObject в экземпляре индексированного класса ReportObjects.

For Each myReportObject As ReportObject In myReportObjects foreach(ReportObject reportObject in reportObjects) 8. Во вложенном цикле foreach создайте условный блок, который проверяет, равно ли свойство Kind экземпляра ReportObject выбранному SubreportObject в перечислении ReportObjectKind.

If myReportObject.Kind = ReportObjectKind.SubreportObject Then if(reportObject.Kind == ReportObjectKind.SubreportObject) 9. В условном блоке приведите экземпляр ReportObject к экземпляру SubreportObject.

Dim mySubreportObject As SubreportObject = CType(myReportObject, SubreportObject) SubreportObject subreportObject = (SubreportObject)reportObject;

10. В том же условном блоке объявите новый экземпляр ReportDocument в виде переменной subReportDocument и заполните ее, вызвав метод OpenSubreport() экземпляра SubreportObject.

Dim subReportDocument As ReportDocument = mySubreportObject.OpenSubreport(mySubreportObject.SubreportName) ReportDocument subReportDocument = subreportObject.OpenSubreport(subreportObject.SubreportName);

11. Наконец, в условном блоке вызовите исходный метод SetDBLogonForReport() и передайте ему параметр ConnectionInfo и новую переменную subReportDocument.

SetDBLogonForReport(myConnectionInfo, subReportDocument) SetDBLogonForReport(connectionInfo, subReportDocument);

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.2.4.2.2 Изменение ConfigureCrystalReports() для обращения к коду входа в базу данных Контекст Эта пошаговая процедура создала метод извлечения всех возможных подотчетов в виде экземпляров ReportDocument. Каждый экземпляр подотчета ReportDocument затем передается исходному методу для задания входа в защищенную базу данных SQL Server.

Однако следует изменить метод ConfigureCrystalReports() для обращения к этому методу, чтобы подотчеты обрабатывали сведения для входа в базу данных.

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

2. В разрывах строк введите вызов метода SetDBLogonForSubreports(), передав экземпляр ConnectionInfo и отчет NorthwindCustomers.

SetDBLogonForSubreports(myConnectionInfo, northwindCustomersReport) SetDBLogonForSubreports(connectionInfo, northwindCustomersReport);

1.5.2.4.2.3 Тестирование загрузки отчета NorthwindCustomers Контекст Затем следует первоначальный код, который связывает отчет с элементом управления CrystalReportViewer.

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

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

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. В меню Отладка выберите команду Начать.

Отчет NorthwindCustomers, включая новый подотчет CustomerOrders, отображается успешно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Веб-сайт C#: CS_Web_RDObjMod_Parameters Windows-проект C#: CS_Win_RDObjMod_Parameters Веб-сайт Visual Basic: VB_Web_RDObjMod_Parameters Windows-проект Visual Basic: VB_Win_RDObjMod_Parameters База данных Xtreme В этом учебном пособии используется пример базы данных под названием Xtreme. Файл xtreme.mdb базы данных включен в пакет примеров кода SAP Crystal Reports.NET SDK. Чтобы использовать базу данных Xtreme, необходимо вручную создать соединение ODBC с ней.

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

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

2. В диалоговом окне Добавление нового элемента в представлении Шаблоны выберите шаблон с именем Отчет Crystal.

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

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

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

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

В Visual Studio.NET 2003, где SAP Crystal Reports еще не обновлен до полной версии, папка "Создать новое подключение" еще не существует; содержимое отображается на верхнем уровне.

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

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

Папка ODBC (RDO) развернется и отобразит базу данных Xtreme.

9. Разверните узел Таблицы и выберите таблицу Клиент.

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

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

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

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

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

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

1.5.2.5.1.2 Добавление параметра "Город" Контекст Необходимо открыть Проводник полей, поскольку он предоставляет доступ к разным функциям отчета, включая параметры.

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

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

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

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

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

b) Задайте Тип для элемента Строка. Задайте Текст подсказки для элемента Выберите один или c) Задайте Поле значения для элемента Город.

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

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

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

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

Результаты Теперь значения по умолчанию содержат большой список городов. Позже в этом учебном пособии мы обратимся к этому списку значений по умолчанию программным путем, через свойство DefaultValues класса ParameterFieldDefinition.

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

1.5.2.5.1.3 Подключение параметра "Город" к столбцу базы данных "Город" Процедура 1. На панели инструментов Crystal Reports щелкните элемент Мастер выбора.

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

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Этот элемент ({?Город}) является созданным ранее параметром "Город".

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

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

При выполнении инструкций из раздела Настройка проекта [стр. 16] для подготовки к этому учебному пособию мы поместили элемент управления CrystalReportViewer в веб- или Windows-форму. На предыдущих шагах в проект был добавлен отчет CustomersByCity.

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

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

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

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

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

Если вы используете встроенные отчеты, выполните следующую пошаговую процедуру для создания отчета встроенного типа.

Если вы используете невстроенные отчеты, выполните вторую пошаговую процедуру для создания отчета невстроенного типа.

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

2. В меню Вид выберите пункт Код для просмотра класса code-behind для этой веб-формы или формы © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Добавьте новое объявление на уровне класса для класса-обертки отчета CustomersByCity с именем переменной customersByCityReport. Установите для него модификатор доступа private.

Private customersByCityReport As CustomersByCity private CustomersByCity customersByCityReport;

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

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

customersByCityReport = New CustomersByCity() customersByCityReport = new CustomersByCity();

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

customersByCityReport).

myCrystalReportViewer.ReportSource = customersByCityReport crystalReportViewer.ReportSource = customersByCityReport;

Экземпляр элемента управления CrystalReportViewer доступен в коде, поскольку элемент управления был добавлен к веб-форме или форме Windows. Если IntelliSense не распознает экземпляр элемента управления CrystalReportViewer, убедитесь, что элемент управления CrystalReportViewer добавлен в виде объявления на уровне класса к данному классу code-behind.

1.5.2.5.2.2 Создание экземпляра невстроенного отчета CustomersByCity и связывание его с элементом управления CrystalReportViewer Контекст Все готово к сборке и запуску проекта. Ожидается, что загрузить отчета не удастся, так как еще не написан код для установки значения поля параметра "Город".

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. Откройте веб-форму или форму Windows.

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

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

Private customersByCityReport As ReportDocument private ReportDocument customersByCityReport;

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

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

customersByCityReport = New ReportDocument() customersByCityReport = new ReportDocument();

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

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

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

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

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

customersByCityReport.Load(reportPath) customersByCityReport.Load(reportPath);

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

myCrystalReportViewer.ReportSource = customersByCityReport crystalReportViewer.ReportSource = customersByCityReport;

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

customersByCityReport. Это позволяет использовать в последующих процедурах один и тот же код.

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

1.5.2.5.2.3 Тестирование загрузки отчета CustomersByCity Процедура 1. В меню Построение выберите команду Построение решения.

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

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

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

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

Отчет CustomersByCity не отображается. Он отобразится после того, как в поле параметра "Город" будет добавлено значение, о чем рассказывается далее в этом учебном пособии.

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

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

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

1.5.2.5.3 Ручная настройка параметров в коде Теперь все готово для того, чтобы задать два значения ("Париж" и "Токио") для отчета CustomersByCity.

Это включает в себя кодирование, которое можно разделить на два процесса.

Константа PARAMETER_FIELD_NAME нужна для удержания имени поля параметра "Город", которое используется в коде несколько раз.

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

В методе ConfigureCrystalReports() параметры "Париж" и "Токио" добавляются в экземпляр ArrayList и передаются как в отчет, так и в экземпляр ArrayList для обработки вспомогательного В следующем разделе рассказывается о том, как получить значения по умолчанию из поля параметра и установить эти значения в элементе управления ListBox. Они используются в конце учебного пособия для динамического выбора новых городов и фильтрации отчета на основе выбранных городов.

Перейдите к разделу Создание элемента управления ListBox, отображающего параметры по умолчанию [стр. 405].

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

2. На уровне класса создайте новую строковую константу, PARAMETER_FIELD_NAME, и задайте ей значение "Город".

Private Const PARAMETER_FIELD_NAME As String = "City" private const string PARAMETER_FIELD_NAME = "City";

1.5.2.5.3.2 Создание вспомогательного метода, который добавляет текущие значения в параметр отчета Контекст Теперь все готово к созданию вспомогательного метода, который добавляет текущие значения в параметр отчета.

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

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

Imports System.Collections using System.Collections;

Это объявление требуется для доступа к классу ArrayList.

3. Внизу класса создайте новый private-метод с именем SetCurrentValuesForParameterField() и с двумя переменными в подписи метода: ReportDocument и ArrayList.



Pages:     | 1 |   ...   | 6 | 7 || 9 | 10 |   ...   | 17 |
Похожие работы:

«Мониторинг новостной ленты специализированных СМИ по рынку новостроек Московского региона 14.07.14 – 18.07.14 МИЭЛЬ-Новостройки Москва, 2014 МИЭЛЬ-Новостройки 109004, Москва, Николоямская д. 40 стр.1 телефон: (495) 777-33-33 e-mail: [email protected] www.miel.ru СОДЕРЖАНИЕ МОСКВА НОВЫЕ ПРОЕКТЫ 16.07.2014: МФК могут построить рядом с Трехгорной мануфактурой в Москве МОСКОВСКАЯ ОБЛАСТЬ НОВЫЕ ПРОЕКТЫ 16.07.2014: Микрорайон Лобня Сити в г. Лобня: старт продаж РЫНОЧНАЯ ИНФОРМАЦИЯ 15.07.2014: Генплан...»

«ЕЖЕКВАРТАЛЬНЫЙ ОТЧЕТ Открытое акционерное общество Научно-исследовательский проектно-конструкторский и технологический институт электромашиностроения (указывается полное фирменное наименование (для некоммерческой организации – наименование) эмитента) Код эмитента: 10071–Е за 1 квартал 20 09 года Место нахождения эмитента: 600009, город Владимир, улица Электрозаводская, дом 1 (указывается место нахождения (адрес постоянно действующего исполнительного органа эмитента (иного лица, имеющего право...»

«Объединение независимых экспертов в области минеральных ресурсов, металлургии и химической промышленности _ Обзор рынка золота в СНГ Издание 2-е, дополненное и переработанное Демонстрационная версия Москва июнь, 2010 Internet: www.infomine.ru e-mail: [email protected] Обзор рынка золота в СНГ С О Д Е Р Ж А Н И Е: Аннотация I. Краткая характеристика мирового рынка золота (запасы, производство, цены) I.1. Запасы I.2. Производство I.3. Потребление I.4. Цены II. Общая характеристика...»

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

«2 1. Цели освоения дисциплины Целью освоения дисциплины Горное право является приобретение знаний о правовой системе Российской Федерации, взаимодействии ее отраслей и норм между собой, об общих принципах развития и функционирования системы лицензирования недропользования, правах и обязанностях пользователей недр, требованиях по комплексному и рациональному использованию недр и охране недр, системе и структуре органов исполнительной власти в сфере недропользования. 2. Место дисциплины в...»

«Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Утверждаю Генеральный директор ОАО Троицкое _ Ермолин И.А. _ _ 2006 г. БИЗНЕС – ПЛАН реализации проекта Создание сада и питомника в Зуевы Ключевской балке ОАО Троицкое Адрес: 427915 Удмуртская Республика, Каракулинский район, с. Вятское, ул. Советская, 16, тел.: (34132) 6-12-10, 6-12-69, (3412) 46-31-61 Суть проекта – создание смешанного питомника (плодово-ягодных и декоративных культур) для...»

«1. Сводные данные по бюджету времени (в неделях) Производственная практика Обучение по дисциплинам и Государственная преддипломная Промежуточная междисциплинарным Учебная по профилю итоговая (для СПО) Курсы курсам практика специальности аттестация аттестация Каникулы Всего 1 2 3 4 5 6 7 8 9 39 1 1 1 10 52 I курс 29 2 9 2 10 II курс 18 0 11 4 2 6 2 III курс Всего 86 3 21 4 5 6 22 2. План учебного процесса по специальности 31.02.03 Лабораторная диагностика Учебная нагрузка обучающихся (час.)...»

«Издание осуществлено при грантовой поддержке Общероссийской общественной организации Лига здоровья нации (грант № 79-470 Формирование культуры здоровья студенческой молодёжи как необходимого условия её успешной самореализации в университетской среде) ОГЛАВЛЕНИЕ ВВЕДЕНИЕ 5 АЛКОГОЛИЗМВМОЛОДЕЖНОЙСРЕДЕКАК СОЦИАЛЬНАЯПРОБЛЕМА.БальжироваТ.Г. 10 ВЫБЕРИЖИЗНЬ!ВоиноваО.И. 17 ЗАВИСИМОСТЬОТВИРТУАЛЬНООПОСРЕДОВАННОГО ТЕКСТОВОГООБЩЕНИЯ:ПРЕДРАСПОЛАГАЮЩИЕ ФАКТОРЫИМЕТОДЫДИАГНОСТИКИ.ДёминаН.Б.,...»

«Предварительно УТВЕРЖДЕН: УТВЕРЖДЕН: Решением Совета директоров Решением годового общего собрания акОАО МЕТРОВАГОНМАШ ционеров ОАО МЕТРОВАГОНМАШ Протокол №6 от 24 апреля 2013 г. Протокол от 05 июня 2013 г. Председатель Совета директоров: Председатель годового общего собрания акционеров: (В.В.Шнейдмюллер) _(В.М.Шуплецов) Ответственный секретарь Совета ди- Секретарь годового общего собрания ректоров акционеров: (Л.В.Филимонова) _(Л.В.Филимонова) ГОДОВОЙ ОТЧЕТ Открытого акционерного общества...»

«СОВЕТ ПЕНСИОНЕРОВ-ВЕТЕРАНОВ ВОЙНЫ И ТРУДА НЕФТЯНАЯ КОМПАНИЯ РОСНЕФТЬ Из истории развития нефтяной и газовой промышленности 25 ВЫПУСК ВЕТЕРАНЫ Москва ЗАО Издательство Нефтяное хозяйство 2012 УДК 001(091): 622.276 В39 Серия основана в 1991 году Ветераны: из истории развития нефтяной и газовой промышленности. Вып. 25. – М.: ЗАО Издательство Нефтяное хозяйство, 2012. – 232 с. Сборник Ветераны содержит воспоминания ветеранов-нефтяников и статьи, посвященные истории нефтяной и газовой промышленности...»

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

«Соколов Дмитрий Васильевич Старший научный сотрудник РИЭПП, магистр истории Борисенко Александр Игоревич Старший научный сотрудник РИЭПП, к.и.н. ПОСТРОЕНИЕ ЭКОНОМИКИ ЗНАНИЙ В ЕВРОПЕЙСКОМ СОЮЗЕ: СРАВНЕНИЕ ИРЛАНДСКОГО И ЧЕШСКОГО ОПЫТА (1990 – 2010) Исследование выполнено при поддержке гранта РГНФ Опыт модернизации научно-образовательного комплекса стран Восточной Европы (проект №11-02-00332а). В настоящей статье рассматриваются вопросы развития научно-технической сферы и реформы образования на...»

«ЗАКОНОДАТЕЛЬСТВО ЗАК ОН БРЯНСКОЙ ОБЛАСТИ О ВНЕСЕНИИ ИЗМЕНЕНИЙ В ЗАКОН БРЯНСКОЙ ОБЛАСТИ О ПОРЯДКЕ НАЗНАЧЕНИЯ ПРЕДСТАВИТЕЛЕЙ ОБЩЕСТВЕННОСТИ В КВАЛИФИКАЦИОННУЮ КОЛЛЕГИЮ СУДЕЙ БРЯНСКОЙ ОБЛАСТИ ПРИНЯТ БРЯНСКОЙ ОБЛАСТНОЙ ДУМОЙ 31 ЯНВАРЯ 2013 ГОДА Статья 1. Внести в Закон Брянской области от 5 августа 2002 года № 53-З О порядке назначения представителей общественности в квалификационную коллегию судей Брянской области (в редакции законов Брянской области от 6 марта 2009 года № 16-З, от 9 ноября 2009...»

«Совместный проект Рейтингового агентства Эксперт РА и Ассоциации региональных банков России Осуществляется под эгидой Общественной Палаты РФ Концепция развития финансового рынка России до 2020 года Страховой сектор МОСКВА 2008 Концепция развития финансового рынка России до 2020 года Совместный проект Рейтингового агентства Эксперт РА и Ассоциации региональных банков России Осуществляется под эгидой Общественной Палаты РФ Оглавление: Цель документа Резюме 1. Сложившаяся модель рынка 1.1. Общая...»

«Дидактика Camozzi и инструменты ТРИЗ-ОТСМ-технологий как средства повышения эффективности инновационных проектов в упаковочной индустрии. Карлов А.Г., к. т. н., доцент кафедры автоматизации технологических процессов и производств СевНТУ, руководитель Учебного центра ЗАО Камоцци-Пневматик-Симферополь, Украина. Хоменко Н.Н., профессор INSA Strasbourg Graduate School of Science and Technology, Мастер ТРИЗ, Страсбург, Франция. Эффективность эксплуатации упаковочного оборудования и, как следствие,...»

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

«Тепло- массоперенос-2007 РЕФЕРАТЫ I. ТЕПЛОМАССООБМЕННЫЕ АСПЕКТЫ ЭНЕРГЕТИКИ. ВОДОРОДНАЯ ЭНЕРГЕТИКА. ЭНЕРГОЭФФЕКТИВНОСТЬ УДК 620.97:662.62(476) Мартыненко О. Г. О МЕСТНЫХ ВИДАХ ТОПЛИВА РЕСПУБЛИКИ БЕЛАРУСЬ // Тепло- и массоперенос-2007. Минск: ИТМО им. А. В. Лыкова НАН Беларуси, 2007. С. 8-14. Рассматриваются вопросы использования возобновляемых источников энергии Республики Беларусь, таких как лесные и гидроэнергетические ресурсы, энергия солнца, а также анализируются технологии переработки...»

«Немного слов о Лоре. Лора Акай – анархистка, путешествующая по миру, знающая больше 5 языков, и прожившая много лет в России, являвшись активным участников анарходвижения. Данная брошюра - своеобразный сборник статей, написанных Лорой на русском языке почти 10 лет назад, но не менее интересных, актуальных и полезных для саморазвития. СОДЕРЖАНИЕ: 20 лет в анархии...1 Два слова о сытом и свободном капитализме..9 Анархисты и леваки: почувствуйте разницу! Мухерес Либрес (Свободные Женщины).19 20...»

«Государственное унитарное предприятие Республики Татарстан Головная территориальная проектно-изыскательская, научно-производственная фирма ТАТИНВЕСТГРАЖДАНПРОЕКТ ПРАВИЛА ЗЕМЛЕПОЛЬЗОВАНИЯ И ЗАСТРОЙКИ МУНИЦИПАЛЬНОГО ОБРАЗОВАНИЯ СТАРОКАРАЗЕРИКСКОЕ СЕЛЬСКОЕ ПОСЕЛЕНИЕ ЮТАЗИНСКОГО МУНИЦИПАЛЬНОГО РАЙОНА РЕСПУБЛИКИ ТАТАРСТАН Текстовые материалы Казань 2014 СОДЕРЖАНИЕ ЧАСТЬ I. ПОРЯДОК РЕГУЛИРОВАНИЯ ЗЕМЛЕПОЛЬЗОВАНИЯ И ЗАСТРОЙКИ НА ОСНОВЕ ГРАДОСТРОИТЕЛЬНОГО ЗОНИРОВАНИЯ ГЛАВА 1. ОБЩИЕ ПОЛОЖЕНИЯ Статья 1....»

«Фонд поддержки творческих инициатив студентов П о с в я щ а е т с я 6 5 -л е т и ю ОКБ имени Артема Ивановича Микояна ПРОБЛЕМЫ СОЗДАНИЯ ПЕРСПЕКТИВНОЙ АВИАЦИОННОЙ ТЕХНИКИ - 2004 УДК 629.735.33 Проблемы создания перспективной авиационной техники. Сборник статей научно – исследовательских, проектно-конструкторских и технологических работ студентов, молодых ученых и инженеров. / под ред. проф. Ю.Ю. Комарова, В.А. Мхитаряна, Р.Д. Лисина. - М.: Изд-во МАИ, 2004. - с.: ил. В сборнике содержатся статьи...»






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

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