WWW.DISS.SELUK.RU

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

 

Pages:     | 1 |   ...   | 5 | 6 || 8 | 9 |   ...   | 17 |

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

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

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

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

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

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

4. В окне Свойства установите для свойства Dock значение "Bottom" 5. В окне Свойства установите для свойства Anchor набор значений "Top, Bottom, Left, Right".

6. Из панели инструментов перетащите элемент управления TableLayoutPanel в верхнюю левую часть формы Windows.

Отображается элемент управления TableLayoutPanel, содержащий два столбца и две строки.

7. Если панель интеллектуальных задач не открыта, щелкните треугольную кнопку в верхнем правом углу элемента TableLayoutPanel.

Откроется панель интеллектуальных задач с именем "Задачи TableLayoutPanel".

8. В теге Задачи TableLayoutPanel щелкните ссылку Изменить строки и столбцы.

9. В диалоговом окне Типы столбцов и строк выберите из списка Тип элемента пункт Столбцы.

10. Нажимайте кнопку Добавить, пока общее число столбцов не достигнет 4.

11. Для каждого столбца выполните следующие действия:

a) Выберите столбец.

b) На панели Тип размера выберите В процентах c) Установите каждое значение равным 25%.

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

13. Нажимайте кнопку Добавить, пока общее число строк не достигнет 5.

Таблица для проекта Windows требует на одну строку меньше, чем таблица для веб-сайта, поскольку элемент управления CrystalReportViewer для проекта Windows содержит меньше настраиваемых параметров.

14. Для каждой строки выполните следующие действия:

a) Выберите строку.

b) На панели Тип размера выберите В процентах c) Установите значение для первой строки, равное 40%, а для каждой последующей строки — 15%.

(1 x 40%) и (4 x 15%) = 100% доступного пространства.

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

16. Закройте тег задач TableLayoutPanel.

17. Потяните нижний правый угол элемента TableLayoutPanel, чтобы увеличить таблицу до размеров пространства, созданного над элементом управления CrystalReportViewer.

Результаты Теперь можно добавить в таблицу пользовательские настройки для проекта Windows.

1.5.1.5.2 Элементы отчета и панели инструментов в элементе управления CrystalReportViewer Данное учебное пособие позволяет манипулировать различными элементами отчета и панели инструментов в элементе управления CrystalReportViewer.

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

Как для веб-сайтов, так и для проектов Windows:

Панель инструментов: отображает панель инструментов над главной областью отчета. Управление отдельными элементами панели инструментов осуществляется отдельно.

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

Дерево групп: отображает заголовки каждой из групп отчета в виде дерева каталогов.

Отображается в левой вертикальной области отчета.

Только для веб-сайтов:

Главная страница: отображает отчет в главной области страницы.

Активация отдельных страниц: задает отображение отчета на одной веб-странице или на отдельных форматированных страницах.

Только для Windows:

Строка состояния: отображает номер текущей страницы, а также другие сведения об отчете;

располагается в нижней области отчета.

Элементы панели инструментов Существуют незначительные отличия между элементами панели инструментов по умолчанию для вебсайтов и для проектов Windows.

Как для веб-сайтов, так и для проектов Windows:

Кнопка дерева групп: отображает или скрывает раздел дерева группы в отчете.

Экспорт: сохраняет отчет Crystal в другом файловом формате, например RPT, PDF, DOC, XLS или Печать: печатает отчет Crystal как PDF-файл или вызывает диалоговое окно "Печать".

Переход между страницами: позволяет выбрать для просмотра следующую, предыдущую, последнюю или первую страницу.

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

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

Коэффициент масштабирования: позволяет выбрать коэффициент масштабирования для отчета.

Только для веб-сайтов:

Список представлений (только для веб-сайта): выбирает представление отчета для отображения (например, подотчеты и т.д.) Свернуть элемент: открывает страницу, которая содержит более конкретную информацию, чем Логотип Crystal: отображает логотип продукта SAP Crystal Reports.

Только для Windows:

Обновить: повторно отображает отчет.

Закрыть текущее представление: закрывает текущее представление отчета при условии, что открыто несколько представлений.

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

Для начала добавьте в таблицы на веб- или Windows-форме элементы управления ListBox и Button.

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

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

В обработчике событий свойства класса CrystalReportViewer устанавливаются на основании выбора, сделанного в двух списках ListBox. При выборе элемента в списке ListBox свойству toolbar присваивается значение true.

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

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

Для начала добавьте элементы управления в таблицу веб-формы или формы Windows.

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

2. Из панели инструментов перетащите элемент управления Label в начало таблицы.

3. Выберите элемент управления Label, затем в окне Свойства установите для Text значение Выберите элементы отчета для отображения.

4. Из панели инструментов перетащите элемент управления ListBox в начало таблицы.

5. Выберите элемент управления ListBox, а затем в окнеСвойства выполните следующие действия:

a) Установите для свойства ID значение listCRVReport.

b) Установите для свойства SelectionMode значение Multiple (для проекта Windows 6. Из панели инструментов перетащите второй элемент управления Label в третий столбец первой строки таблицы.

7. Выберите элемент управления Label, а затем в окне Свойства установите для свойства Text значение Выберите элементы панели инструментов для отображения.

8. Из панели инструментов перетащите элемент управления Button в первый столбец третьей строки таблицы.

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

10. В окне Свойства выполните следующие действия:

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide a) установите для свойства ID значение "redisplay";

b) установите для свойства Text значение "Отобразить отчет повторно".

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

Результаты Последующие действия по созданию веб-сайта отличаются от действий по созданию проекта Windows.

Выберите одно из следующих действий:

Настройка элементов управления ListBox для веб-сайта [стр. 312] Настройка элементов управления ListBox для проекта Windows [стр. 318] 1.5.1.5.4 Настройка элементов управления ListBox для веб-сайта Данный раздел содержит описание настройки элементов управления ListBox для веб-сайта. Для создания проекта Windows см. раздел Настройка элементов управления ListBox для проекта Windows [стр. 318].

Можно создать обработчик события click для элемента управления Button, а затем добавить код к этому обработчику. Обработчик событий присваивает различные логические значения свойствам панели управления класса CrystalReportViewer в зависимости от того, что выбирает пользователь в списке ListBox.

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

CeWebCRVReportOptions и CeWebCRVToolbarOptions.

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

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

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

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

Система может предложить поместить этот класс в каталог App_Code. Нажмите кнопку "Да".

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

В Visual Basic не забудьте поменять открывающую и закрывающую подписи класса на enum.

5. Поскольку теги не имеют конструктора, удалите метод-конструктор, предлагаемый в C#-версии кода по умолчанию.

6. В перечислении введите следующие значения:

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

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

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

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

Система может предложить поместить этот класс в каталог App_Code. Нажмите кнопку "Да".

4. В подписи класса замените слово class на enum, чтобы преобразовать класс в перечисление.

В Visual Basic не забудьте поменять открывающую и закрывающую подписи класса на enum.

5. Поскольку теги не имеют конструктора, удалите метод-конструктор, предлагаемый в C#-версии кода по умолчанию.

6. В перечислении введите следующие значения:

Group_Tree_Button Export_Button Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Print_Button View_List_Button Drill_Up_Button Page_Navigation_Button Go_to_Page_Button Search_Button Crystal_Logo Group_Tree_Button, Export_Button, Print_Button, View_List_Button, Drill_Up_Button, Page_Navigation_Button, Go_to_Page_Button, Search_Button, Zoom_Button, Crystal_Logo 7. В меню Файл выберите команду Сохранить все.

1.5.1.5.4.3 Заполнение элемента управления ListBox из перечисления Контекст Элементы управления ListBox заполняются значениями из перечисления, которые соответствуют свойствам, доступным на панели инструментов CrystalReportViewer.

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

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

3. В методе ConfigureCrystalReports() добавьте условный блок Not IsPostBack.

В ходе Настройка проекта [стр. 16] в начале данного пособия был создан метод ConfigureCrystalReports().

If Not IsPostBack Then if (!IsPostBack) © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 4. В условном блоке задайте для свойства DataSource элемента управления listCRVReportListBoxзначения из перечисления CeWebCRVReportOptions.

listCRVReport.DataSource = System.Enum.GetValues(GetType(CeWebCRVReportOptions)) listCRVReport.DataSource = System.Enum.GetValues(typeof(CeWebCRVReportOptions));

5. Воспользуйтесь методом DataBind() элемента listCRVReport ListBox, чтобы привязать значения к элементу управления.

listCRVReport.DataBind() listCRVReport.DataBind();

6. Далее задайте для свойства DataSource элемента listCRVToolbar ListBox значения из перечисления CeWebCRVToolbarOptions.

listCRVToolbar.DataSource = System.Enum.GetValues(GetType(CeWebCRVToolbarOptions)) listCRVToolbar.DataSource = System.Enum.GetValues(typeof(CeWebCRVToolbarOptions));

7. Теперь воспользуйтесь методом DataBind() элемента listCRVToolbar ListBox, чтобы привязать значения к элементу управления.

listCRVToolbar.DataBind() listCRVToolbar.DataBind();

8. За пределами условного блока Not IsPostBack установите связь между файлом Chart.rpt и свойством ReportSource элемента управления CrystalReportViewer.

Дополнительные сведения об образцах отчетов см. в разделе Каталог образцов отчетов [стр. 15].

myCrystalReportViewer.ReportSource = "C:\Program Files\Microsoft Visual Studio 9.0\Crystal Reports\Samples\En\Reports\Feature Examples\Chart.rpt" crystalReportViewer.ReportSource = "C:\\Program Files\\Microsoft Visual Studio 9.0\\Crystal Reports\\Samples\\En\\Reports\\Feature Examples\\Chart.rpt";

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.5.4.4 Кодирование элемента управления Button с именем redisplay для веб-сайта Контекст Теперь можно добавить код обработки события click для элемента управления Button. Метод click должен присваивать логические значения элементам отчета и панели инструментов класса CrystalReportViewer. При выборе элемента устанавливается логическое значение true, и отображается элемент отчета или панели инструментов. При отмене выбора свойства устанавливается логическое значение false, а элемент отчета или панели инструментов не отображается.

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

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

3. Дважды щелкните элемент управления Button с именем redisplay.

Отображается класс code-behind для отчета, указывая, что метод обработки события redisplay_Click() был создан автоматически.

4. Внутри метода обработки события redisplay_Click() вызовите свойство Selected для каждого элемента списков ListBox с именами listCRVReport и listCRVToolbar.

Свойство Selected возвращает логическое значение для установки свойств панели инструментов CrystalReportViewer.

Элементам отчета и панели инструментов CrystalReportViewer присваиваются соответствующие значения из перечислений CeWebCRVReportOptions и CeWebCRVToolbarOptions. Значения из класса перечисления возвращают строку, которую необходимо преобразовать в целое число.

myCrystalReportViewer.HasToggleGroupTreeButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Group_Tree_Button)).S myCrystalReportViewer.HasExportButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Export_Button)).Selec myCrystalReportViewer.HasPrintButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Print_Button)).Select myCrystalReportViewer.HasViewList = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.View_List_Button)).Se myCrystalReportViewer.HasDrillUpButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Drill_Up_Button)).Sel myCrystalReportViewer.HasPageNavigationButtons = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Page_Navigation_Butto n)).Selected myCrystalReportViewer.HasGotoPageButton = © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Go_to_Page_Button)).S myCrystalReportViewer.HasSearchButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Search_Button)).Selec myCrystalReportViewer.HasZoomFactorList = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Zoom_Button)).Selecte myCrystalReportViewer.HasCrystalLogo = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Crystal_Logo)).Select myCrystalReportViewer.DisplayToolbar = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Toolbar)).Selected myCrystalReportViewer.DisplayGroupTree = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Group_Tree)).Selected myCrystalReportViewer.DisplayPage = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Main_Page)).Selected myCrystalReportViewer.SeparatePages = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Enable_Separate_Pages)) crystalReportViewer.HasToggleGroupTreeButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Group_Tree_Button)].S crystalReportViewer.HasExportButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Export_Button)].Selec crystalReportViewer.HasPrintButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Print_Button)].Select crystalReportViewer.HasViewList = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.View_List_Button)].Se crystalReportViewer.HasDrillUpButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Drill_Up_Button)].Sel crystalReportViewer.HasPageNavigationButtons = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Page_Navigation_Butto n)].Selected;

crystalReportViewer.HasGotoPageButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Go_to_Page_Button)].S crystalReportViewer.HasSearchButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Search_Button)].Selec crystalReportViewer.HasZoomFactorList = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Zoom_Button)].Selecte crystalReportViewer.HasCrystalLogo = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Crystal_Logo)].Select crystalReportViewer.DisplayToolbar = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Toolbar)].Selected;

crystalReportViewer.DisplayGroupTree = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Group_Tree)].Selected;

crystalReportViewer.DisplayPage = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Main_Page)].Selected;

crystalReportViewer.SeparatePages = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Enable_Separate_Pages)] Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.5.4.5 Тестирование элемента управления Button с именем redisplay Контекст Теперь можно собрать и запустить проект для настройки панели инструментов CrystalReportViewer.

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

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

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

Элементы управления ListBox с именами listCRVReport и listCRVToolbar отображают полный список параметров отчета и панели инструментов CrystalReportViewer.

4. В списке ListBox с параметрами панели инструментов выберите элементы "Page_Navigation_Button", "Print_Button" и "Export_Button".

5. В списке ListBox с параметрами отчета выберите элементы "Toolbar", "Group_Tree" и "Main_Page".

6. Нажмите кнопку Повторно отображать отчет.

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

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

1.5.1.5.5 Настройка элементов управления ListBox для проекта Windows Данный раздел содержит описание процесса настройки элементов управления ListBox для проекта Windows. Для создания веб-сайта см. раздел Настройка элементов управления ListBox для веб-сайта [стр.

312].

Можно создать обработчик события click для элемента управления Button, а затем добавить код к этому обработчику. Обработчик событий присваивает различные логические значения свойствам панели управления класса CrystalReportViewer в зависимости от того, что выбирает пользователь в списке ListBox.

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

CeWinCRVReportOptions и CeWinCRVToolbarOptions.

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

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

2. В диалоговом окне Добавление нового элемента в поле Имя введите CeWinCRVReportOptions, а затем нажмите кнопку Добавить.

В Visual Studio вам может быть предложено поместить этот класс в каталог Аpp_Сode. Нажмите 3. В подписи класса замените слово class на enum, чтобы преобразовать класс в перечисление.

В Visual Basic не забудьте поменять открывающую и закрывающую подписи класса на enum.

4. Поскольку теги не имеют конструктора, удалите метод-конструктор, предлагаемый в C#-версии кода по умолчанию.

5. В перечислении введите следующие значения:

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

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

2. В диалоговом окне Добавление нового элемента в поле Имя введите "CeWinCRVToolbarOptions", а затем нажмите кнопку Добавить.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Система может предложить поместить этот класс в каталог App_Code. Нажмите кнопку "Да".

3. В подписи класса замените слово class на enum, чтобы преобразовать класс в перечисление.

В Visual Basic не забудьте поменять открывающую и закрывающую подписи класса на enum.

4. Поскольку теги не имеют конструктора, удалите метод-конструктор, предлагаемый в C#-версии кода по умолчанию.

5. В перечислении введите следующие значения:

Page_Navigation_Button Go_to_Page_Button Close_View_Button Print_Button Refresh_Button Export_Button Group_Tree_Button Search_Button Page_Navigation_Button, Go_to_Page_Button, Close_View_Button, Print_Button, Refresh_Button, Export_Button, Group_Tree_Button, Zoom_Button, Search_Button 6. В меню Файл выберите команду Сохранить все.

1.5.1.5.5.3 Заполнение элемента управления ListBox из перечисления Контекст Элементы управления ListBox заполняются значениями из перечисления, которые соответствуют свойствам, доступным на панели инструментов CrystalReportViewer.

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

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

3. Внутри метода ConfigureCrystalReports() задайте для свойства DataSource элемента listCRVReport ListBox значения из перечисления CeWinCRVReportOptions.

В ходе Настройка проекта [стр. 16] в начале данного пособия был создан метод ConfigureCrystalReports().

listCRVReport.DataSource = System.Enum.GetValues(GetType(CeWinCRVReportOptions)) listCRVReport.DataSource = System.Enum.GetValues(typeof(CeWinCRVReportOptions));

4. Задайте для свойства DataSource элемента управления listCRVToolbar ListBox значения из перечисления CeWinCRVToolbarOptions.

listCRVToolbar.DataSource = System.Enum.GetValues(GetType(CeWinCRVToolbarOptions)) listCRVToolbar.DataSource = System.Enum.GetValues(typeof(CeWinCRVToolbarOptions));

5. Установите связь между файлом Chart.rpt и свойством ReportSource объекта CrystalReportViewercontrol..

Дополнительные сведения об образцах отчетов см. в разделе Каталог образцов отчетов [стр. 15].

myCrystalReportViewer.ReportSource = "C:\Program Files\Microsoft Visual Studio 9.0\Crystal Reports\Samples\En\Reports\Feature Examples\Chart.rpt" crystalReportViewer.ReportSource = "C:\\Program Files\\Microsoft Visual Studio 9.0\\Crystal Reports\\Samples\\En\\Reports\\Feature Examples\\Chart.rpt";

1.5.1.5.5.4 Кодирование элемента управления Button с именем redisplay для Windows-проекта Контекст Теперь можно добавить код обработки события click для элемента управления Button. Метод click должен присваивать логические значения элементам отчета и панели инструментов класса CrystalReportViewer. При выборе элемента устанавливается логическое значение true, и отображается элемент отчета или панели инструментов. При отмене выбора свойства устанавливается логическое значение False, а элемент отчета или панели инструментов не отображается.

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

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

3. Дважды щелкните элемент управления Button с именем redisplay.

Отображается класс code-behind для отчета, указывая, что метод обработки события redisplay_Click() был создан автоматически.

4. Внутри метода обработки событий redisplay_Click() вызовите метод GetSelected()и передайте ему каждый элемент списка ListBox.

Метод GetSelected() возвращает логическое значение, которое присваивается свойствам отчета или панели инструментов CrystalReportViewer.

Элементам отчета и панели инструментов CrystalReportViewer присваиваются соответствующие значения из перечислений CeWinCRVReportOptions и CeWinCRVToolbarOptions.

myCrystalReportViewer.ShowPageNavigateButtons = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Page_Navigation_Button) myCrystalReportViewer.ShowGotoPageButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Go_to_Page_Button) myCrystalReportViewer.ShowCloseButton = listCRVToolbar.

GetSelected(CeWinCRVToolbarOptions.Close_View_Button) myCrystalReportViewer.ShowPrintButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Print_Button) myCrystalReportViewer.ShowRefreshButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Refresh_Button) myCrystalReportViewer.ShowExportButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Export_Button) myCrystalReportViewer.ShowGroupTreeButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Group_Tree_Button) myCrystalReportViewer.ShowZoomButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Zoom_Button) myCrystalReportViewer.ShowTextSearchButton = listCRVToolbar.GetSelected(CeWinCRVToolbarOptions.Search_Button) myCrystalReportViewer.DisplayToolbar = listCRVReport.GetSelected(CeWinCRVReportOptions.Toolbar) myCrystalReportViewer.DisplayGroupTree = listCRVReport.GetSelected(CeWinCRVReportOptions.Group_Tree) myCrystalReportViewer.DisplayStatusBar = listCRVReport.GetSelected(CeWinCRVReportOptions.Status_Bar) crystalReportViewer.ShowPageNavigateButtons = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Page_Navigation crystalReportViewer.ShowGotoPageButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Go_to_Page_Butt crystalReportViewer.ShowCloseButton = listCRVToolbar.

GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Close_View_Button));

crystalReportViewer.ShowPrintButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Print_Button));

crystalReportViewer.ShowRefreshButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Refresh_Button) © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide crystalReportViewer.ShowExportButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Export_Button)) crystalReportViewer.ShowGroupTreeButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Group_Tree_Butt crystalReportViewer.ShowZoomButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Zoom_Button));

crystalReportViewer.ShowTextSearchButton = listCRVToolbar.GetSelected(Convert.ToInt32(CeWinCRVToolbarOptions.Search_Button)) crystalReportViewer.DisplayToolbar = listCRVReport.GetSelected(Convert.ToInt32(CeWinCRVReportOptions.Toolbar));

crystalReportViewer.DisplayGroupTree = listCRVReport.GetSelected(Convert.ToInt32(CeWinCRVReportOptions.Group_Tree));

crystalReportViewer.DisplayStatusBar = listCRVReport.GetSelected(Convert.ToInt32(CeWinCRVReportOptions.Status_Bar));

1.5.1.5.5.5 Тестирование элемента управления Button с именем redisplay Контекст Теперь можно собрать и запустить проект для настройки панели инструментов CrystalReportViewer.

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

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

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

Элементы управления ListBox listCRVReport и listCRVToolbar отображают полный список параметров отчета CrystalReportViewer и панели инструментов.

4. В списке ListBox с параметрами панели инструментов выберите элементы "Page_Navigation_Button", "Print_Button" и "Export_Button".

5. В списке ListBox с параметрами отчета выберите элементы "Toolbar", "Group_Tree" и "Main_Page".

6. Нажмите кнопку Повторно отображать отчет.

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

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

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

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

1.5.1.5.6.1 Добавление элементов управления для изменения фонового цвета Процедура 1. Откройте веб-форму или форму Windows.

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

3. Из панели инструментов перетащите элемент управления Label в первый столбец второй строки 4. Выберите элемент управления Label, после чего в окне Свойства установите для Text значение Выберите фоновый цвет.

5. Из Панели инструментов перетащите элемент управления DropDownList (для веб-сайтов) или ComboBox (для проектов Windows) во второй столбец второй строки таблицы.

6. Выберите элемент управленияDropDownList/ComboBox, после чего в окне Свойства установите для ID/Name значение "selectBackColor".

1.5.1.5.6.2 Установка значений по умолчанию для элементов управления Контекст Теперь необходимо добавить код к методу ConfigureCrystalReports(), чтобы установить значения по умолчанию для списка фонового цвета и переключателей компонентов отчета.

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

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

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide При создании веб-сайта разместите эти строки кода в условном блоке Not IsPostBack. При создании проекта Windows разместите эти строки кода в главной области метода ConfigureCrystalReports().

3. Присвойте перечисление KnownColor свойству DataSource элемента selectBackColorDropDownList.

selectBackColor.DataSource = System.Enum.GetValues(GetType(KnownColor)) selectBackColor.DataSource = System.Enum.GetValues(typeof(KnownColor));

4. На веб-сайте установите связь между источником данных и selectBackColor DropDownList.

selectBackColor.DataBind() selectBackColor.DataBind();

1.5.1.5.6.3 Присвоение выбранного фонового цвета для веб-сайта Контекст Далее следует добавить код для события click элемента Button, чтобы отчет повторно отображался в зависимости от выбранного элемента списка DropDownList с именем selectBackColor.

Данный код для веб-сайта отличается от кода для проекта Windows. Ниже выберите соответствующую процедуру для веб-сайта или проекта Windows.

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

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

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

Imports System.Drawing using System.Drawing;

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 4. В обработчике событий redisplay_Click() добавьте следующий код. Из списка DropDownList с именем selectBackColor извлеките выбранный элемент как строку и передайте его в метод FromName() класса Color. Присвойте значение Color свойству BackColor элемента управления CrystalReportViewer.

myCrystalReportViewer.BackColor = Color.FromName(selectBackColor.SelectedItem.Text) crystalReportViewer.BackColor = Color.FromName(selectBackColor.SelectedItem.Text);

1.5.1.5.6.4 Присвоение выбранного фонового цвета в проекте Windows Контекст Теперь можно протестировать кнопку "Повторно отобразить отчет". Перейдите к разделу ниже.

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

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

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

Imports System.Drawing using System.Drawing;

4. В обработчике событий redisplay_Click() добавьте код для извлечения выбранного элемента из списка selectBackColor ComboBox и преобразования его в экземпляр KnownColor.

Dim mySelectedKnownColor As KnownColor = CType(selectBackColor.SelectedItem, KnownColor selectedKnownColor = (KnownColor)selectBackColor.SelectedItem;

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

If Not mySelectedKnownColor = KnownColor.Transparent Then © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide if (selectedKnownColor != KnownColor.Transparent) 6. В блоке If передайте экземпляр KnownColor в метод FromKnownName() класса System.Drawing.Color.

Присвойте значение Color свойству BackColor элемента управления CrystalReportViewer.

myCrystalReportViewer.BackColor = System.Drawing.Color.FromKnownColor(mySelectedKnownColor) crystalReportViewer.BackColor = System.Drawing.Color.FromKnownColor(selectedKnownColor);

1.5.1.5.6.5 Тестирование элемента управления Button с именем redisplay Контекст Теперь можно протестировать кнопку "Повторно отобразить отчет".

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

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

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

Отображается DropDownList/ComboBox вместе с элементами управления ListBox и Button, которые были добавлены в предыдущей процедуре.

4. В списке DropDownList с именем selectBackColor выберите "Blue".

Не забудьте выбрать элементы отчета, особенно Main_Page, чтобы они стали видимыми.

5. Нажмите кнопку Повторно отображать отчет.

Страница загрузится повторно, чтобы отобразить отчет на фоне синего цвета.

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

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

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

ShowFirstPage() ShowLastPage() ShowNextPage() ShowNthPage(int PageNumber) ShowPreviousPage() При использовании одного из этих методов выбранные страницы отображаются в текущем отчете.

1.5.1.5.7.1 Добавление элементов управления TextBox и Button для реализации функции перехода к странице Процедура 1. Откройте веб-форму или форму Windows в представлении Проект.

2. Из панели инструментов перетащите элемент управления TextBox в первый столбец четвертой строки 3. Выберите элемент управления TextBox, а затем в окнеСвойства выполните следующие действия:

a) Установите для свойства ID (или Name) значение "pageNumber".

b) Оставьте свойство Text пустым.

4. Из панели инструментов перетащите элемент управления Button во второй столбец четвертой строки 5. Выберите элемент управления Button, а затем в окнеСвойства выполните следующие действия:

a) Установите для свойства ID (или Name) значение "goToPage".

b) Установите для свойства Text значение "Перейти к странице".

1.5.1.5.7.2 Кодирование обработчика события Click() для элемента управления Button Процедура 1. Дважды щелкните элемент управления Button Перейти к странице.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Отображается класс code-behind для отчета, указывая, что обработчик событий goToPage_Click() был создан автоматически.

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

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

myCrystalReportViewer.ShowNthPage(Convert.ToInt32(pageNumber.Text)) crystalReportViewer.ShowNthPage(Convert.ToInt32(pageNumber.Text));

1.5.1.5.7.3 Тестирование элемента управления Button с именем goToPage Процедура 1. В меню Построение выберите команду Построение решения.

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

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

Отображаются отчет Chart и все добавленные элементы управления.

4. Введите 3 в поле TextBox с именем pageNumber, а затем нажмите кнопку Перейти к странице.

После перезагрузки отображается страница отчета с номером 3.

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

1.5.1.5.8 Изменение коэффициента масштабирования По умолчанию панель инструментов CrystalReportViewer позволяет выбирать коэффициент масштабирования от 25% до 400% с фиксированным шагом 25%, 50% или 100%. В данном разделе можно добавить код для установки произвольного коэффициента масштабирования.

Понадобится элемент управления TextBox для ввода желаемого коэффициента масштабирования, а также элемент Button для перезагрузки страницы.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.5.8.1 Добавление элементов управления TextBox и Button для реализации функции масштабирования Процедура 1. Откройте веб-форму или форму Windows в представлении Проект.

2. Из панели инструментов перетащите элемент управления TextBoxв третий столбец четвертой строки 3. Выберите элемент управления TextBox, а затем в окнеСвойства выполните следующие действия:

a) Установите для свойства ID (или Name) значение "zoomFactor".

b) Оставьте свойство Text пустым.

4. Из панели инструментов перетащите элемент управления Button в четвертый столбец четвертой строки таблицы.

5. Выберите элемент управления Button, а затем в окнеСвойства выполните следующие действия:

a) Установите для свойства ID (или Name) значение "updateZoomFactor".

b) Установите для свойства Text значение "Масштаб, %".

1.5.1.5.8.2 Кодирование обработчика события Click() для элемента управления Button Процедура 1. Дважды щелкните элемент управления Button с именем updateZoomFactor.

Отображается класс code-behind для отчета, указывая, что обработчик события updateZoomFactor_Click() был создан автоматически.

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

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

myCrystalReportViewer.Zoom(Convert.ToInt32(zoomFactor.Text)) crystalReportViewer.Zoom(Convert.ToInt32(zoomFactor.Text));

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

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

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

Отображаются отчет Chart и все добавленные элементы управления.

4. Введите "38" в поле TextBox zoomFactor, после чего нажмите кнопку Масштаб.

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

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

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

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

1.5.1.5.9.1 Добавление элементов управления TextBox, Button и Label для реализации функции поиска Процедура 1. Откройте веб-форму или форму Windows в представлении Проект.

2. Из панели инструментов перетащите элемент управления TextBox в первый столбец пятой строки таблицы.

3. Выберите элемент управления TextBox, а затем в окнеСвойства выполните следующие действия:

a) Установите для свойства ID (или Name) значение "searchText".

b) Оставьте свойство Text пустым.

4. Из панели инструментов перетащите элемент управления Button во второй столбец пятой строки таблицы.

5. Выберите элемент управления Button, а затем в окнеСвойства выполните следующие действия:

a) Установите для свойства ID (или Name) значение "search".

b) Установите для свойства Text значение "Поиск текста".

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 6. Из панели инструментов перетащите элемент управления Label в третий столбец пятой строки a) Установите для свойства ID (или Name) значение "message".

b) Оставьте свойство Text пустым.

c) Установите для свойства ForeColor значение Red.

7. Создайте класс MessageConstants для хранения стандартных ответов в виде строковых констант для 1.5.1.5.9.2 Кодирование обработчика события search_Click() для веб-сайта Контекст Далее необходимо вызвать метод SearchAndHighlightText() в элементе управления Button с именем search.

Поведение метода SearchAndHighlightText() на веб-сайте отличается от его поведения в проекте Windows.

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

Процедура 1. Дважды щелкните элемент управления Button с именем search.

Отображается класс code-behind для отчета, указывая, что обработчик событий search_Click() был создан автоматически.

2. Извлеките текст, введенный в элементе управления TextBox, а затем передайте это значение в метод SearchAndHighlightText() элемента управления CrystalReportViewer. Назначьте вызов метода логической переменной.

Чтобы класс SearchDirection был доступным, необходимо включить выражение "Imports" [Visual Basic] или "using" [C#] в верхней части класса code-behind для пространства имен CrystalDecisions.Shared. (Это объявление было добавлено в разделе Настройка проекта [стр. 16].) Dim mySearchResult As Boolean = myCrystalReportViewer.SearchAndHighlightText(searchText.Text, SearchDirection.Forward) © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide bool searchResult = crystalReportViewer.SearchAndHighlightText(searchText.Text, SearchDirection.Forward);

3. Создайте условный блок для проверки результативности поиска.

If Not mySearchResult Then if(!searchResult) 4. В блоке If присвойте константу MessageConstants.SUCCESS свойству Text элемента message Label.

message.Text = MessageConstants.SUCCESS message.Text = MessageConstants.SUCCESS;

5. В блоке Else присвойте константу MessageConstants.FAILURE свойству Text элемента message Label.

message.Text = MessageConstants.FAILURE message.Text = MessageConstants.FAILURE;

1.5.1.5.9.3 Кодирование обработчика события search_Click() для проекта Windows Контекст Пропустите следующую процедуру для проекта Windows и перейдите к следующей за ней процедуре тестирования.

Процедура 1. Дважды щелкните элемент управления Button с именем search.

Отображается класс code-behind для отчета, указывая, что обработчик событий search_Click() был создан автоматически.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 2. Извлеките текст, введенный в элементе управления TextBox, а затем передайте это значение в метод SearchAndHighlightText() элемента управления CrystalReportViewer. Назначьте вызов метода логической переменной.

Dim mySearchResult As Boolean = myCrystalReportViewer.SearchAndHighlightText(searchText.Text) bool searchResult = crystalReportViewer.SearchAndHighlightText(searchText.Text);

3. Создайте условный блок для проверки результативности поиска.

If mySearchResult Then if(searchResult) 4. В блоке If присвойте константу MessageConstants.SUCCESS свойству Text элемента message Label.

message.Text = MessageConstants.SUCCESS message.Text = MessageConstants.SUCCESS;

5. В блоке If присвойте константу MessageConstants.FAILURE свойству Text элемента message Label.

message.Text = MessageConstants.FAILURE message.Text = MessageConstants.FAILURE;

1.5.1.5.9.4 Тестирование элемента управления Button с именем search Процедура 1. В меню Построение выберите команду Построение решения.

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

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

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

4. Введите China в поле TextBox searchText, а затем нажмите кнопку Поиск.

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

5. Введите hello в поле TextBox searchText, а затем нажмите кнопку Поиск.

Страница перезагрузится с отображением сообщения о безрезультативности поиска.

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

Результаты Остальные параметры настройки доступны только для веб-версии элемента управления CrystalReportViewer. Поэтому при создании веб-сайта перейдите к разделу Добавление границы для отчета веб-сайта [стр. 335].

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

1.5.1.5.10 Добавление границы для отчета веб-сайта Данный раздел содержит описание настройки границы отчета Crystal для веб-сайта. При использовании проекта Windows свойства ширины, типа и цвета границы недоступны.

Типы границ содержатся в перечислении BorderStyle. Цвета содержатся в перечислении KnownColor.

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

Сначала необходимо добавить определенные элементы управления в веб-форму. Для построения границы потребуются один элемент TextBox, два элемента DropDownList и один элемент Button.

1.5.1.5.10.1 Добавление элементов управления для установления ширины, типа и цвета границ Процедура 1. Откройте веб-форму.

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

3. Из панели инструментов перетащите элемент управления Label в первый столбец шестой строки таблицы.

4. Выберите элемент управления Label, а затем в окне Свойства установите для свойства Text значение "Ширина границ".

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 5. Из панели инструментов перетащите элемент управления TextBox в ячейку, где находится элемент управления Label.

6. Выберите элемент управления TextBox, а затем в окне Свойства, установите для свойства ID (или Name) значение "borderWidth".

7. Из панели инструментов перетащите второй элемент управления Label во второй столбец шестой строки таблицы.

8. Выберите элемент управления Label, а затем в окне Свойства, установите для Text значение "Тип 9. Из панели инструментов перетащите элемент управления DropDownList в ячейку, где находится элемент управления Label.

10. Выберите элемент управления DropDownList, а затем в окне Свойства установите для свойства ID (или Name) значение "selectBorderStyle".

11. Из панели инструментов перетащите третий элемент управления Label в третий столбец шестой строки таблицы.

12. Выберите элемент управления Label, а затем в окне Свойства установите для Text значение "Цвет 13. Из панели инструментов перетащите элемент управления DropDownList в ячейку, где находится элемент управления Label.

14. Выберите элемент управления DropDownList, а затем в окне Свойства установите для свойства ID (или Name) значение "selectBorderColor".

15. Из панели инструментов перетащите элемент управления Button в четвертый столбец шестой строки таблицы.

16. Выберите элемент управления Button, а затем в окнеСвойства выполните следующие действия:

a) Установите для свойства ID (или Name) значение "drawBorder".

b) Установите для свойства Text значение "Построить границы".

1.5.1.5.10.2 Заполнение элементов управления DropDownList Контекст Теперь необходимо заполнить элементы управления DropDownList типами или цветами границ, доступными для элемента CrystalReportViewer. Элементы управления DropDownList заполняются в методе ConfigureCrystalReports().

Для веб-сайта типы границ сохраняются в виде перечисления System.Web.UI.WebControls.BorderStyle. Цвета границ извлекаются из перечисления System.Drawing.KnownColor.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Процедура 1. Над подписью класса добавьте объявление "Imports" [Visual Basic] или "using" [C#] в верхней части класса для System.Web.UI.WebControls и System.Drawing (если это пространство имен еще не объявлено).

Imports System.Web.UI.WebControls Imports System.Drawing using System.Web.UI.WebControls;

using System.Drawing;

2. Внутри метода ConfigureCrystalReports() в условном блоке Not IsPostBack присвойте перечисление BorderStyle свойству DataSource элемента DropDownList с именем selectBorderStyle.

selectBorderStyle.DataSource = System.Enum.GetValues(GetType(BorderStyle)) selectBorderStyle.DataSource = System.Enum.GetValues(typeof(BorderStyle));

3. Установите связь между источником данных и selectBorderStyle DropDownList.

selectBorderStyle.DataBind() selectBorderStyle.DataBind();

4. Находясь в условном блоке Not IsPostBack, присвойте перечисление KnownColor свойству DataSource элемента DropDownList с именем selectBorderColor.

selectBorderColor.DataSource = System.Enum.GetValues(GetType(KnownColor)) selectBorderColor.DataSource = System.Enum.GetValues(typeof(KnownColor));

5. Установите связь между источником данных и selectBorderColor DropDownList.

selectBorderColor.DataBind() selectBorderColor.DataBind();

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.1.5.10.3 Кодирование элемента управления Button "Построить границы" Контекст Далее следует присвоить значения свойствам BorderWidth, BorderStyle и BorderColor элемента управления CrystalReportViewer.

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

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

3. Дважды щелкните элемент Button Построить границы.

Отображается класс code-behind для отчета, указывая, что обработчик событий drawBorder_Click() был создан автоматически.

4. В обработчике событий drawBorder_Click() присвойте текст, введенный в borderWidthTextBox, свойству BorderWidth элемента управления CrystalReportViewer.

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

myCrystalReportViewer.BorderWidth = Unit.Parse(borderWidth.Text.ToString()) crystalReportViewer.BorderWidth = Convert.ToInt32(borderWidth.Text);

5. Из selectBorderStyle DropDownList извлеките выбранный индекс и преобразуйте его в значение BorderStyle. Присвойте значение BorderStyle свойству BorderStyle элемента управленияCrystalReportViewer.

myCrystalReportViewer.BorderStyle = CType(selectBorderStyle.SelectedIndex, BorderStyle) crystalReportViewer.BorderStyle = (BorderStyle)selectBorderStyle.SelectedIndex;

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 6. Из элемента DropDownList с именем selectBorderColor извлеките выбранный элемент в виде строки и передайте ее методу FromName() класса Color. Присвойте значение Color свойству BorderColor элемента управленияCrystalReportViewer.

myCrystalReportViewer.BorderColor = Color.FromName(selectBorderColor.SelectedItem.Text) crystalReportViewer.BorderColor = Color.FromName(selectBorderColor.SelectedItem.Text);

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

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

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

4. Присвойте параметру ширины границы значение 10.

5. Присвойте параметру типа границы значение Double.

6. Присвойте параметру цвета границы значение SteelBlue.

7. Нажмите кнопку Построить границы Страница перезагружается и отображает границы вокруг отчета Crystal.

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

1.5.1.5.11 Настройка сохранения сеанса для веб-сайта Данный раздел содержит описание настройки сохранения сеанса для событий click в кнопках.

При перезагрузке веб-страницы по нажатию кнопки изменения, внесенные в объектную модель CrystalReportViewer, теряются.

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

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

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

4. В списке selectBackColor DropDownList выберите "Blue".

5. Нажмите кнопку Повторно отображать отчет.

Страница загрузится повторно, чтобы отобразить отчет без панели инструментов на фоне синего 6. В качестве ширины границы выберите 10.

7. В качестве типа границы выберите Double.

8. В качестве цвета границы выберите SteelBlue.

9. Нажмите кнопку ПостроитьГраницы Страница перезагрузится и отобразит границу вокруг отчета Crystal, а фоновый цвет больше не будет 10. Введите для свойства pageNumber элемента управления TextBox значение "3", а затем нажмите кнопку Перейти к странице.

Страница перезагрузится, чтобы отобразить страницу 3 отчета, и граница вокруг отчета исчезнет.

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

1.5.1.5.11.2 Добавление кода назначения сеанса в обработчик события drawBorder_Click() Контекст Чтобы сохранять изменения, внесенные в объектную модель CrystalReportViewer, после перезагрузки вебстраницы, необходимо добавить в приложение код для их сохранения.

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

Процедура В обработчике события drawBorder_Click() после существующего кода добавьте 4 присваивания Session для BackColor, BorderColor, BorderStyle и BorderWidth.

Session("myBorderColor") = myCrystalReportViewer.BorderColor.ToString() Session("myBorderStyle") = myCrystalReportViewer.BorderStyle Session("myBorderWidth") = myCrystalReportViewer.BorderWidth Session["borderColor"] = © 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide crystalReportViewer.BorderColor.ToString();

Session["borderStyle"] = crystalReportViewer.BorderStyle;

Session["borderWidth"] = crystalReportViewer.BorderWidth;

1.5.1.5.11.3 Добавление кода извлечения сеанса в метод ConfigureCrystalReports() Контекст Теперь можно получить эти значения из сеанса в методе ConfigureCrystalReports().

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

Если отличается, в блоке If извлеките свойство BackColor из Session и приведите его к строковому типу. Передайте строку в метод FromName() класса Color и присвойте экземпляр Color свойству BackColor экземпляра CrystalReportViewer.

If Not IsNothing(Session("myBackColor")) Then myCrystalReportViewer.BackColor = Color.FromName(CType(Session("myBackColor"), String)) if (Session["backColor"] != null) crystalReportViewer.BackColor = Color.FromName((string)Session["backColor"]);

2. Создайте второй блок If, который проверяет, отличается ли значение переменной BorderColor Session от Null. Если отличается, в блоке If извлеките свойство BorderColor из Session и приведите его к строковому типу. Передайте строку в метод FromName() класса Color и присвойте экземпляр Color свойству BorderColor экземпляра CrystalReportViewer.

If Not IsNothing(Session("myBorderColor")) Then myCrystalReportViewer.BorderColor = Color.FromName(CType(Session("myBorderColor"), String)) if (Session["borderColor"] != null) crystalReportViewer.BorderColor = Color.FromName((string)Session["borderColor"]);

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 3. Создайте третий блок If, который проверяет, отличается ли значение переменной BorderStyle Session от Null. Если отличается, в блоке If извлеките свойство BorderStyle из Session и приведите его к типу BorderStyle.

myCrystalReportViewer.BorderStyle = CType(Session("myBorderStyle"), BorderStyle) if (Session["borderStyle"] != null) crystalReportViewer.BorderStyle = (BorderStyle)Session["borderStyle"];

4. Создайте четвертый блок If, который проверяет, отличается ли значение переменной сеанса BorderWidth от Null. Если отличается, в блоке If извлеките свойство BorderWidth из Session и преобразуйте его в целое число.

myCrystalReportViewer.BorderWidth = Convert.ToInt32(Session("myBorderWidth")) if (Session["borderStyle"] != null) crystalReportViewer.BorderWidth = Convert.ToInt32(Session["borderStyle"]);

1.5.1.5.11.4 Кодирование элемента управления Button с именем drawBorder Контекст Следующая процедура позволяет добавить сохранение сеанса в обработчик события click для элемента Button с именем drawBorder.

Процедура 1. В обработчике события redisplay_Click() присвойте выбранный элемент из списка DropDownList с именем selectBackColor объекту Session.

Session("myBackColor") = selectBackColor.SelectedItem.Text Session["backColor"] = selectBackColor.SelectedItem.Text;

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 2. В обработчике события drawBorder_Click() присвойте свойство Text элемента TextBox с именем borderWidth объекту Session.

Session("myBorderWidth") = borderWidth.Text Session["borderWidth"] = borderWidth.Text;

3. Присвойте объекту Session индекс, выбранный в selectBorderStyle DropDownList.

Session("myBorderStyle") = selectBorderStyle.SelectedIndex Session["borderStyle"] = selectBorderStyle.SelectedIndex;

4. Присвойте объекту Session элемент, выбранный в selectBorderColor DropDownList.

Session("myBorderColor") = selectBorderColor.SelectedItem.Text Session["borderColor"] = selectBorderColor.SelectedItem.Text;

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

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

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

1.5.2.1 Учебное пособие: сохранение объектной модели ReportDocument с использованием Session В этом учебном пособии используется объектная модель ReportDocument и вносятся программные изменения в отчет во время выполнения.

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Поскольку сохранение Session нужно только для веб-приложений, это учебное пособие не применимо к проектам под Windows.

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

Сперва вы строите проект без сохранения Session. Без сохранения можно видеть, что изменение в порядке сортировки длится не дольше, чем событие – нажатие кнопки.

Затем в проект добавляется сохранение Session. Экземпляр ReportDocument помещается в Session во время создания, а также в любой момент, где состояние экземпляра ReportDocument изменяется.

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

В этом учебном пособии используется объект Session, поскольку изменения сохраняются в объектной модели ReportDocument. Если планируется использовать только ограниченную объектную модель, содержащуюся в CrystalReportViewer, используйте исключительно ViewState.

При использовании Session для сохранения объекта ReportDocument, вовлечены ли другие модели сохранения?

При использовании Session для сохранения объекта ReportDocument, вовлечены ли другие модели сохранения?

Да. В веб-приложении ASP.NET объекты обычно используют Session для сохранения, в то время как вебсервер управляет использованием ViewState для сохранения. Поскольку веб-приложение версии SAP Crystal Reports для разработчика Microsoft Visual Studio использует объекты и элементы управления вебсервера для взаимодействия с отчетами, сохранение используется совместно Session и ViewState:

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

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

ViewState также сохраняет любые события (например zoom, NextPage), которые запускаются с кнопок на панели инструментов.

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

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

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

Веб-сайт C# : CS_Web_RDObjMod_ParametersSubrpt Веб-сайт Visual Basic: VB_Web_RDObjMod_ParametersSubrpt Связанные сведения Особенности использования различных методов сохранения в SAP Crystal Reports [стр. 54] Каталог образцов отчетов [стр. 15] 1.5.2.1.1 Конфигурирование кнопок в веб-форме Для начала добавьте две кнопки к веб-форме, назовите их и создайте для каждой события нажатия.

Процедура 1. Откройте страницуDefault.aspx.

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

3. Щелкните элемент управления CrystalReportViewer и нажмите клавишу СТРЕЛКА ВЛЕВО, чтобы появился мигающий курсор, затем нажмите клавишу ENTER.

Элемент управления CrystalReportViewer отображается на одной строке.

4. Из панели инструментов перетащите веб-серверный элемент управления Button сверху элемента управления CrystalReportViewer.

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

6. Из панели инструментов перетащите второй веб-серверный элемент управления Button справа от первого элемента Button.

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.2.1.1.2 Задание свойств Text и ID для каждого элемента управления Button Процедура 1. Щелкните первый веб-серверный элемент управления Button, чтобы выбрать его.

2. В окне Свойства выполните следующие действия:

Задайте для свойства ID значение sortOrderDescending.

Задайте для свойства Text значение "Сортировка по убыванию".

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

4. В окне Свойства выполните следующие действия:

Задайте для свойства ID значение sortOrderAscending.

Задайте для свойства Text значение "Сортировка по возрастанию".

1.5.2.1.1.3 Создание событий Button для каждого элемента управления Button Процедура 1. Дважды щелкните первый веб-серверный элемент управления Button.

Откроется класс code-behind и новый метод обработки событий, sortOrderDescending_Click(), созданный внизу этого класса.

2. Вернитесь в режим конструктора страницы Default.aspx.

3. Дважды щелкните второй веб-серверный элемент управления Button.

Откроется класс code-behind и новый метод обработки событий, sortOrderAscending_Click(), созданный внизу этого класса.

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

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.2.1.2.1 Программирование объектной модели ReportDocument в отчете метода обработки событий sortOrderDescending_Click Процедура 1. Откройте класс code-behind и найдите метод обработки событий sortOrderDescending_Click().

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

Dim mySortFields As SortFields = hierarchicalGroupingReport.DataDefinition.SortFields SortFields sortFields = hierarchicalGroupingReport.DataDefinition.SortFields;

3. Извлеките первый экземпляр SortField из индексированного класса SortFields и назначьте его переменной под именем firstSortField.

Индексированный класс SortFields основан на нуле.

Dim firstSortField As SortField = mySortFields(0) SortField firstSortField = sortFields[0];

4. Задайте свойству SortDirection из firstSortField значение по убыванию, выбрав DescendingOrder из перечисления SortDirection.

firstSortField.SortDirection = SortDirection.DescendingOrder firstSortField.SortDirection = SortDirection.DescendingOrder;

5. Теперь заново назначьте этот отчет (с сортировкой, исправленной в объектной модели ReportDocument) свойству ReportSource элемента управления CrystalReportViewer.

myCrystalReportViewer.ReportSource = hierarchicalGroupingReport crystalReportViewer.ReportSource = hierarchicalGroupingReport;

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide Результаты Затем следует ввести код метода обработки событий sortOrderAscending_Click(). Этот код идентичен, за исключением значения свойства SortDirection.

1.5.2.1.2.2 Программирование объектной модели ReportDocument в отчете метода обработки событий sortOrderAscending_Click Процедура 1. Откройте класс code-behind и найдите метод обработки событий sortOrderAscending_Click().

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

Dim mySortFields As SortFields = hierarchicalGroupingReport.DataDefinition.SortFields SortFields sortFields = hierarchicalGroupingReport.DataDefinition.SortFields;

3. Извлеките первый экземпляр SortField из индексированного класса SortFields и назначьте его переменной под именем firstSortField.

Индексированный класс SortFields основан на нуле.

Dim firstSortField As SortField = mySortFields(0) SortField firstSortField = sortFields[0];

4. Задайте свойству SortDirection из экземпляра firstSortField значение по возрастанию, выбрав AscendingOrder из перечисления SortDirection.

firstSortField.SortDirection = SortDirection.AscendingOrder firstSortField.SortDirection = SortDirection.AscendingOrder;

5. Теперь заново назначьте этот отчет (с сортировкой, исправленной в объектной модели ReportDocument) свойству ReportSource элемента управления CrystalReportViewer.

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

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

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

1.5.2.1.3.1 Проверка программных изменений порядка сортировки в проекте Процедура 1. В меню Построение выберите команду Построение решения.

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

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

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

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

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

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

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

Порядок сортировки возвращается к первоначальному (по возрастанию).

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

Процедура 1. Нажмите кнопку Сортировка по убыванию.

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

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

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

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

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

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

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

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

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

В этом разделе вы узнаете, как использовать Session для сохранения изменений порядка сортировки отчета. К методу ConfigureCrystalReports(), созданному при первичной настройке проекта (см.

Настройка проекта [стр. 16]), будет добавлен код, проверяющий Session и немедленно перезагружающий экземпляр отчета в Session, когда пользователь изменяет порядок сортировки.

© 2014 SAP AG или аффилированная компания SAP. Все права Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.2.1.4.1 Добавление кода проверки Session в метод ConfigureCrystalReports() Процедура 1. В методе ConfigureCrystalReports() перед существующим кодом создайте условный блок if/else, который проверяет, существует ли объект Session с именем hierarchicalGroupingReport.

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

If (Session("hierarchicalGroupingReport") Is Nothing) Then if(Session["hierarchicalGroupingReport"] == null) 2. При использовании встроенного отчета переместите строку кода, объявляющую и создающую экземпляр отчета, из текущего расположения в блок If.

If (Session("hierarchicalGroupingReport") Is Nothing) Then hierarchicalGroupingReport = New Hierarchical_Grouping() if (Session["hierarchicalGroupingReport"] == null) hierarchicalGroupingReport = new Hierarchical_Grouping();

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

Правильный путь к примерам отчетов см. в Каталог образцов отчетов [стр. 15].

If (Session("hierarchicalGroupingReport") Is Nothing) Then hierarchicalGroupingReport = New ReportDocument() hierarchicalGroupingReport.Load("C:\Program Files\Microsoft Visual Studio 9.0\Crystal Reports\Samples\En\Reports\Feature Examples\Hierarchical Grouping.rpt") Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide if(Session["hierarchicalGroupingReport"] == null) hierarchicalGroupingReport = new ReportDocument();

hierarchicalGroupingReport.Load("C:\Program Files\Microsoft Visual Studio 9.0\Crystal Reports\Samples\En\Reports\Feature Examples\Hierarchical Grouping.rpt");

4. В блоке If назначьте отчет в объект Session, используя имя переменной отчета как строку идентификатора Session.

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

Этим завершается блок If. Блок If выполняется, если отчет не существует в Session. Блок Else выполняется, если отчет найден в Session; таким образом, назначение блока Else — извлечь отчет из Session в экземпляр отчета.

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

hierarchicalGroupingReport = CType(Session("hierarchicalGroupingReport"), ReportDocument) hierarchicalGroupingReport = (ReportDocument)Session["hierarchicalGroupingReport"];

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

При использовании как встроенного, так и невстроенного отчета приведите извлеченный объект к типу ReportDocument.

За пределами и ниже условного блока оставшийся код связывает экземпляр отчета со свойством ReportSource элемента управления CrystalReportViewer.

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

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

После этого останется три строки кода, изменяющие направление порядка сортировки.

2. Под тремя строками кода, изменяющими направление сортировки, назначьте экземпляр hierarchicalGroupingReport (обновленный новым направлением порядка сортировки) в Session, используя тот же идентификатор, который использовался в методе ConfigureCrystalReports().

Для простоты скопируйте и вставьте эту строку кода из метода ConfigureCrystalReports().

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

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

ConfigureCrystalReports() ConfigureCrystalReports();

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

Руководство SAP Crystal Reports для Visual Studio.NET SDK Developer Guide 1.5.2.1.4.3 Обновление экземпляра отчета в Session для метода обработки событий sortOrderDescending_Click Процедура 1. В методе обработки событий sortOrderAscending_Click() удалите последнюю строку кода, которая связывает элемент управления CrystalReportViewer с отчетом.

После этого останется три строки кода, изменяющие направление порядка сортировки.

2. Под тремя строками кода, изменяющими направление сортировки, назначьте экземпляр hierarchicalGroupingReport (обновленный новым направлением порядка сортировки) в Session, используя тот же идентификатор, который использовался в методе ConfigureCrystalReports().

Для простоты скопируйте и вставьте эту строку кода из метода ConfigureCrystalReports().



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

«1 А. МОНАСТЫРСКИЙ, Н. ПАНИТКОВ, Г. КИЗЕВАЛЬТЕР, И. МАКАРЕВИЧ, Е. ЕЛАГИНА, С. РОМАШКО, С. ХЭНСГЕН ПОЕЗДКИ ЗА ГОРОД ( т. 5 ) Москва 1989 г. 2 0т авторов В пятом томе “Поездок за город” собраны документы акций, проведенных нами в 1987 годах. Так как два проекта акций, предложенные С. Хэнсген, были осуществлены группой (акции Е. Елагиной и С. Ромашко), С. Хэнсген включена в состав ее постоянных членов на данном этапе деятельности КД. Как и прежде, акции строились по принципу: автор проекта -...»

«Кеннет Бийр Суда-ловушки против подводных лодок - секретный проект Америки Бийр Кеннет Суда-ловушки против подводных лодок - секретный проект Америки Бийр, Кеннет М. Суда-ловушки против подводных лодок: секретный проект Америки 1Так помечены ссылки на примечания. Примечания в конце текста *1Так помечены ссылки на подстрочные примечания. Примечания в конце текста Аннотация издательства: Чтобы противостоять блицкригу германских подлодок у восточного побережья Америки в 1942 году, ВМС США было...»

«Фонд ЦСР Северо-Запад для Правительства Ленинградской области КОНЦЕПЦИЯ комплексного развития территорий Ленинградской области, прилегающих к границам Санкт-Петербурга (краткая версия) Санкт-Петербург 2014 Концепция комплексного развития территорий Ленинградской области, прилегающих к границам Санкт-Петербурга / Коллектив авторов. – СПб. – 114 стр. Концепция посвящена стратегии развития территорий Ленинградской области, прилегающих к границам Санкт-Петербурга до 2025 г. Концепция разработана в...»

«Проект КАЛЕНДАРНЫЙ ПЛАН мероприятий по подготовке и проведению муниципальных выборов в Иркутской области День голосования 2 декабря 2007 г. Сокращения: МО – муниципальное образование ИКМО – избирательная комиссия муниципального образования или ТИК в случае возложения на нее полномочий избирательной комиссии муниципального образования ОИК – окружная избирательная комиссия ТИК – территориальная избирательная комиссия УИК – участковая избирательная комиссия Закон - Закон Иркутской области О...»

«Исследования и Анализ Studies & Analyses Центр социальноэкономических исследований Center for Social and Economic Research 329 Шишкин Сергей Анатольевич, Дробышев Павел Юрьевич ГРАЖДАНСКИЙ И ХОЗЯЙСТВЕННЫЙ КОДЕКСЫ УКРАИНЫ: АНАЛИЗ ТЕКУЩЕГО СОСТОЯНИЯ И РЕКОМЕНДАЦИИ ПО СОВЕРШЕНСТВОВАНИЮ Варшава, Июнь 2006 Исследования и Анализ № 329 – Гражданский и хозяйственный кодексы Украины. Материалы, публикуемые в настоящей серии, имеют рабочий характер и могут быть включены в будущие издания. Авторы...»

«СН РК 1.04-26-2011 Реконструкция, капитальный и текущий ремонт жилых и общественных зданий Содержание Область применения 1. Основные термины и их определения 2. Общие положения 3. Реконструкция и капитальный ремонт зданий и объектов 3.1. Реконструкция зданий 3.2. Капитальный ремонт 3.3. Планировании и осуществление реконструкции и капитального ремонта здания 4. Требования, предъявляемые к работам по реконструкции и капитальному ремонту 4.1. Обследование конструкций фундаментов, подземных и...»

«№ 30, 29.04.2011 ОГЛАВЛЕНИЕ 1 РАЗДЕЛ ПЕРВЫЙ ПРАВОВЫЕ АКТЫ ПРАВОВЫЕ АКТЫ ГЛАВЫ ГОРОДА 26.04.2011 № 53 О назначении публичных слушаний по проекту межевания территории, ограниченной ул.Томской, ул.Адмирала Старикова, переулком Левшинским, ул.Делегатской, ул.Памирской, ул.Социалистической, ул.Цимлянской Орджоникидзевского района города Перми ПРАВОВЫЕ АКТЫ АДМИНИСТРАЦИИ ГОРОДА 25.04.2011 № 172 О мерах по охране городских лесов, расположенных в границах города Перми, от пожаров в пожароопасный сезон...»

«2 Оглавление Введение Текущее состояние дел в области экологического развития Российской 1. Федерации 9 Тенденции развития рынков и технологий в сфере экологического развития17 2. Оценка потенциала развития российских производственных предприятий и 2.1 научных организаций в сфере деятельности платформы в сопоставлении с зарубежными конкурентами Анализ текущей обеспеченности организаций-участников платформы 2.2 научными и инженерно-техническими кадрами. Прогноз развития рынков и технологий в...»

«ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ УЧРЕЖДЕНИЕ ЯРОСЛАВСКОЙ ОБЛАСТИ ИНФОРМАЦИОННОЕ АГЕНТСТВО ВЕРХНЯЯ ВОЛГА 150000, г. Ярославль, ул. Собинова, д.1. E-mail: [email protected] Тел./факс (4852) 30-57-39 17 декабря 2012г. Запрос цены на оказание услуг по сопровождению справочных систем семейства Консультант Плюс В настоящее время ГАУ ЯО Информационное агентство Верхняя Волга в целях выполнения государственного задания 2013 года осуществляется анализ предложений поставщиков для формирования представления...»

«МИНИСТЕРСТВО РЕГИОНАЛЬНОГО РАЗВИТИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ СВОД ПРАВИЛ СП хх.ххххх.2011 ПРОЕКТИРОВАНИЕ ЗДАНИЙ МЕДИЦИНСКИХ УЧРЕЖДЕНИЙ. Актуализированная редакция СНиП 2.08.02-89 Москва – 2011 Сведения о своде правил 1 РАЗРАБОТАН ЗАО Гипроздрав НПЦ по объектам здравоохранения и отдыха 2 ВНЕСЕН Техническим комитетом по стандартизации ТК 465 Строительство 3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Минрегионразвития России от.2011 г. № 4 ЗАРЕГИСТРИРОВАН Федеральным агентством по техническому...»

«НАША СТРАНА – РОДИНА КОСМОНАВТИКИ, СТАРТОВАЯ ПЛОЩАДКА КОСМИЧЕСКОЙ ЭРЫ Мы сделали мечту и сказку предков былью Грядущие века не скроют это пылью! Космическая эра человечества началась в нашей стране, называвшейся тогда Советским Союзом, на космодроме Байконур, откуда стартовали первая в мире межконтинентальная баллистическая ракета, первый в мире спутник, первый в мире лунник, первый космонавт Земли Юрий Алексеевич Гагарин, первые автоматические межпланетные станции к планетам Марс и Венера,...»

«FB2:, 05.06.2010, version 1.0 UUID: FBD-25319F-C5A6-9048-EE8B-D6D3-9905-170906 PDF: fb2pdf-j.20111230, 13.01.2012 СБОРНИК ЕСЛИ №3 ЗА 2006 ГОД Содержание #1 ЖАН-КЛОД ДЮНЬЯК ИСПАРЯЮЩЕЕСЯ ВРЕМЯ РОЛАН ВАГНЕР ДУХ КОММУНЫ ЖОРЖ ФЛИПО КАНУВШИЕ В ЛЕТУ СЕРЖ БРЮССОЛО ВИД БОЛЬНОГО ГОРОДА О РАЗРЕЗЕ 2. 3. ФАБРИС НЕЙРЕ НЕПРЕРЫВНОСТЬ СЕРЖ НЕМАН МЮЛАРИСЫ Игорь НАЙДЕНКОВ MOBILIS IN MOBILE Сергей ЛУКЬЯНЕНКО: ЛИШЬ БЫ КРОВЬ НЕ ПИЛИ ЗАТУРА: КОСМИЧЕСКОЕ ПРИКЛЮЧЕНИЕ КОСМИЧЕСКИЙ ДОЗОР. ЭПИЗОД НЕ СУЕТИТЕСЬ! Я ПРОСТО...»

«ЗАКЛЮЧЕНИЕ на отчет об исполнении бюджета Грузинского сельского поселения за 2012 год Заключение на отчет об исполнении бюджета Грузинского сельского поселения за 2012 год (далее – Заключение) подготовлено в соответствии с Бюджетным кодексом Российской Федерации. Заключение подготовлено на основании решения Думы Чудовского муниципального района от 29.11.2011 № 110 О Контрольно – счетной палате Чудовского муниципального района и Соглашения о передаче полномочий по осуществлению внешнего...»

«МОСКОВСКИЙ ДОМ ОБЩЕСТВЕННЫХ ОРГАНИЗАЦИЙ Добровольческие организации города Москвы Информационно-аналитический обзор подготовлен МГРЦГО ГБУ города Москвы МДОО с использованием собственных аналитических данных по НКО города Москвы Москва июнь 2013 СОДЕРЖАНИЕ I. ВВЕДЕНИЕ II. ПРАВОВЫЕ ОСНОВЫ РЕГУЛИРОВАНИЯ ДОБРОВОЛЬЧЕСКОЙ ДЕЯТЕЛЬНОСТИ III. ОБЩАЯ СТАТИСТИКА ПО ДОБРОВОЛЬЧЕСТВУ СТАТИСТИКА ПО РОССИИ МЕЖДУНАРОДНЫЕ СРАВНЕНИЯ СТАТИСТИКА ПО МОСКВЕ ПРИЛОЖЕНИЕ №1 АНАЛИЗ ОПФ И СФЕР ДЕЯТЕЛЬНОСТИ НКО РФ, В...»

«Закон Ульяновской области от 20 июля 2012 г. N 89-ЗО О противодействии коррупции в Ульяновской области Принят постановлением Законодательного Собрания Ульяновской области от 12 июля 2012 г. Глава 1. Общие положения Статья 1. Предмет регулирования настоящего Закона Настоящий Закон в случаях и пределах, установленных федеральными законами и иными нормативными правовыми актами Российской Федерации, регулирует отношения, связанные с участием государственных органов Ульяновской области и их...»

«Глава 2: Политика, нормативно-правовая база и административная практика URS-EIA-REP-204635 Содержаниe 2 Политика, нормативно-правовая база и административная практика 2-1 2.1 Введение 2.2 Корпоративная политика 2.2.1 Политика техники безопасности, охраны здоровья и окружающей среды. 2.2.2 Политика корпоративной социально-экологической ответственности. 2-4 2.3 Структура органов государственной власти Российской Федерации. 2-6 2.3.1 Структура федеральных органов исполнительной власти 2.3.2...»

«2011 Випуск 3. Підводні дослідження: Археологія. Історія. Дайвінг ТРАГЕДИЯ ТРАНСПОРТА ЗАЛЬЦБУРГ И ГИБЕЛЬ ПОДВОДНОЙ ЛОДКИ М-118 Буря С.П. председатель правления Общественной организации Украинский союз подводников Алексеев И.В. главный специалист исследовательского проектно-конструкторского института морского флота Украины В июле-сентябре 2011 года Украинский союз подводников проводил поиск советской подводной лодки М-118, которая атаковала в 1942 году транспорт Зальцбург. Погибло более 2000...»

«Группа компаний СГм 4 Группа компаний СГм СОДЕРЖАНИЕ Обращение Генерального директора [ 1. ] Группа компаний СГМ [ 2. ] Направления деятельности [ 3. ] Показатели производственной и финансовой деятельности [ 4. ] Строительная деятельность Строительство магистральных газопроводов 4.1. 4.2. Строительство наземных сооружений 4.3. Офшорное строительство 4.4. Газификация 4.5. Капитальный ремонт Группа компаний СГм [ 5. ] Производство [ 6. ] Техническая оснащенность [ 7. ] Качество, экология и...»

«ОАО Корпорация Развитие ДОКУМЕНТАЦИЯ о закупке у единственного поставщика автомобиля легкового MITSUBISHI PAJERO IV для нужд ОАО Корпорация Развитие Белгород 2012г. СОДЕРЖАНИЕ I. ИЗВЕЩЕНИЕ _ 3 II. ДОКУМЕНТАЦИЯ 4 III. ПРОЕКТ ДОГОВОРА _ 6 2 I. ИЗВЕЩЕНИЕ О ЗАКУПКЕ У ЕДИНСТВЕННОГО ПОСТАВЩИКА 1. Способ закупки - закупка у единственного поставщика; 2. Наименование, место нахождения, почтовый адрес, адрес электронной почты, номер контактного телефона заказчика – ОАО Корпорация Развитие, г.Белгород,...»

«ЗАВОД ПО ПРОИЗВОДСТВУ ШИН КОНТИНЕНТАЛ КАЛУГА (НОВОЕ СТРОИТЕЛЬСТВО. 1-Я ОЧЕРЕДЬ СТРОИТЕЛЬСТВА) ОЦЕНКА ВОЗДЕЙСТВИЯ НА ОКРУЖАЮЩУЮ СРЕДУ 134-ОВОС-АП/11 2011 ЗАВОД ПО ПРОИЗВОДСТВУ ШИН КОНТИНЕНТАЛ КАЛУГА (НОВОЕ СТРОИТЕЛЬСТВО. 1-Я ОЧЕРЕДЬ СТРОИТЕЛЬСТВА) ОЦЕНКА ВОЗДЕЙСТВИЯ НА ОКРУЖАЮЩУЮ СРЕДУ 134-ОВОС-АП/11 2011 Обозначение Наименование Стр. 134-ОВОС-АП/11 Состав проекта 134-ОВОС-АП/11 Содержание раздела 134-ОВОС-АП/11 Пояснительная записка ВВЕДЕНИЕ ОБЩИЕ ПОЛОЖЕНИЯ 1 ХАРАКТЕРИСТИКА ПРОЕКТИРУЕМОГО...»






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

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