Вы находитесь на странице: 1из 74

Приложение для БД в Visual Basic 2008.

Цели:

1. Изучить общую характеристику языка, историю создания и системные требования


2. Рассмотреть объекты связи
3. Освоить работу мастера подключений

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

Язык программирования Visual Basic 2008 входит в состав пакета Microsoft Visual Studio
2008. Он позволяет создавать приложения для ОС Windows 2000, XP, VISTA и ОС
Windows Mobile, Windows Pocket PC.

Microsoft Visual Basic 2008 обладает следующими особенностями:

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


установлена библиотека Microsoft .NET Framework 2.0.
2. Возможность создавать различные части проекта на различных языках
программирования, входящих в Visual Studio.
3. Возможность использования новых визуальных эффектов доступных Windows XP.
4. Возможность конвертации проектов Visual Basic более ранних версий.
5. Большая ориентация на сетевые технологии.
6. Более упрощенная работа с БД. Ориентация на язык форматирования XML. В
состав Visual Studio входит SQL Server Express - урезанная клиентская версия SQL
Server 2008.
7. Автоматическое подключение всех доступных компонентов.

По сравнению с Visual Basic6.0, Visual Basic 5.0 и Visual Basic2005, Visual Basic 2008
обладает большими системными требованиями. Для его работы необходим компьютер,
имеющий следующую конфигурацию:

1. Процессор Pentium 600 МГерц и выше.


2. 256 Мб памяти.
3. Для установки только Visual Basic необходим 1Гб свободного места на диске, а для
установки всего пакета Visual Studio необходимо 4Гб .

Visual Basic 2008 основывается на ядре Visual Basic 6.0, который входит в состав Visual
Studio 6.0. И был создан в 1998. После создания Visual Studio 6.0, он получил большое
распространение в мире. В 2003г была создана новая версия Visual Basic Net. Его главным
отличием была большая ориентация на компоненты сети, использования библиотеки
Microsoft Frame Work 1.0. улучшились графические спецэффекты программы. В 2005 году
на основе Visual Basic Net создается Visual Basic 2005, а в 2008 году создаётся улучшенная
версия языка Visual Basic 2008.

Создание интерфейса клиентского приложения в Visual Basic происходит несколько


этапов:

1. Создаётся проект;
2. В проекте создаются объекты связи, которые подключаются к файлу данных;
3. Создаются формы;
4. Создаются отчёты.

Создание нового проекта рассматривается в лабораторной работе и литературе


посвящённой Visual Basic. Остановимся более подробно на объектах связи.

Объекты связи

Объекты связи - это объекты проекта, осуществляющие обмен информацией между


интерфейсом БД и файлом данных.

Объекты связи всегда находятся на клиентской машине. Они осуществляют доступ к


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

Замечание: Объекты связи также могут ограничивать доступ к информации и


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

Существует три технологии используемых в объектах связи:

 технология ADO;
 технология RDC;
 технология ADO.Net.

ADO является более старой технологией. Её суть заключается в следующем: подключение


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

Согласно технологии RDC файлы данных рассматриваются в качестве устройств, т.е. для
работ с БД нам необходим драйвер. Объект связи, работающий по технологии RDC, при
работе с файлом данных сначала обращается к драйверу БД, который в свою очередь
обращается к файлу данных.

Технология ADO.Net является смесью технологий ADO и RDC. Объекты связи


работающие по этой технологии работают аналогично объектам работающим по
технологии ADO, однако, объекты связи входят в состав пакета Microsoft Net Framework,
и автоматически обновляются вместе с этим пакетом.

Плюсы и минусы технологии Плюсы и минусы Плюсы и минусы


ADO: технологии RDC: технологии ADO.Net:
+ независимость от драйверов + возможность работать с + возможность работать с
БД, установленных в современными БД современными БД
операционной системе
+ простое программирование + возможность добавлять + возможность добавлять
новые виды БД новые виды БД
- невозможность работать с - зависимость от - зависимость от пакета
новыми типами БД драйверов, Microsoft Net Framework
установленных в системе
- невозможность обновлять - более сложное - более сложное
список поддерживаемых БД программирование программирование
Замечание: Мы можем создавать динамические запросы и запросы, выполненные на
стороне сервера только в технологии RDC и ADO.Net.

Мастер подключений

В Visual Basic 2008 по сравнению с Visual Basic 6.0 подключение проекта к файлу БД
можно произвести двумя способами: при помощи мастера подключений и вручную,
создавая объекты связи и настраивая их свойства. Начнем рассмотрение создания
подключения с помощью мастера.

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

 DataSet (Набор данных) - обеспечивает подключение формы к конкретной БД на


сервере (в нашем случае это БД Students);
 BindingSource (Источник связи) - обеспечивает подключение к конкретной
таблице (в нашем случае к таблице специальности), а также позволяет управлять
таблицей;
 TableAdapter (Адаптер таблиц) - обеспечивает передачу данных с формы в
таблицу и наоборот.
 TableAdapterManager (Менеджер адаптера таблиц) - управляет работой объекта
TableAdapter;
 BindingNavigator (Панель управления таблицей) - голубая панель с кнопками
управления таблицей, расположенная в верхней части формы.

Можно создать и подключить все эти объекты вручную, но удобнее воспользоваться


мастером. Работа с мастером подключений состоит из нескольких этапов:

1. Запуск мастера;
2. Выбор типа источника данных: БД, сетевой источник или объект;
3. Настройка строки подключения "Connection String". Настройка заключается в
выборе вида БД (либо Access, либо SQL Server), а также в выборе сервера и файла
данных. В случае необходимости можно задать логин и пароль;
4. Сохранение строки подключения. При ее сохранении можно менять параметры
подключения без использования Visual Basic. Но при сохранении строки
подключения в файл велика вероятность несанкционированного подключения к
БД;
5. Выбор таблиц или запросов включённых в соединение. Также можно выбрать их
отдельные поля;
6. Завершение работы мастера подключений.

Более подробные инструкции по работе с мастером подключений можно найти в


лабораторной работе.

Замечание: После окончания работы мастера подключений. В обозревателе в "Solution


Explorer" появится дополнительный файл набора данных с расширением xsd. Этот файл
содержит в себе схему данных из источника данных, а также позволяет редактировать
источник данных (при открытии этого файла появляется окно похожее на конструктор
запросов в Access или SQL Server), в этом окне также можно редактировать поля таблиц.

Замечание: В одном проекте может быть несколько наборов данных, то есть можно
запускать мастер подключений сколько угодно раз. Новые наборы данных добавляются на
вкладку "Data Sources" и появляется новые данные с расширением xsd.

Настройка связи подключение вручную

В Visual Basic 2008, как и в Visual Basic 6.0 мы можем создавать объекты связи вручную и
их настраивать. Для связи Visual Basic 2008 использует три объекта связи, причем они
работают все вместе, плюс к этому был и существует объект BindingNavigatior (Панель
навигации) - эта панель обеспечивает полное управление источником данных
(добавление, удаление, перемещение по записям).

Рассмотрим создание и настройки соответствующих объектов связи в порядке


очередности:

1. Создание подключения начинается с создания объекта DataSet. Объект DataSet не


может сам подключится к источнику данных перед его созданием необходимо
настроить "Data Sources" (оконное меню Data \ Add Data Sources). После
создания объекта DataSet появляется окно "Add DataSet". В нем необходимо в
выпадающем списке "Typed DatSet" выбрать источник данных из "Data Sources".
Фактически "DataSet" аналогичен Connection из Visual Basic 6.0. После выбора
источника данных в списке "Typed DataSet" появится строка Windows
Application <имя источника>. После этого в окне можно нажать кнопку "Ok".
Имя источника данных будет записана в свойство DataSetName объекта DataSet.
2. После создания объекта DataSet создается объект BindingSource. Этот объект
играет ту же роль, что и Command в Visual Basic 6.0, он позволяет подключится к
таблицам, запросам и фильтрам из файла данных. После его создания необходимо
настроить следующие свойства:
o DataSource - указанный объект DataSet;
o DataMember - указывает таблицу, запрос или фильтр, которые будут
отображаться на форме.

Следующие свойства необязательны для настройки:

o Filter - свойство для фильтрации данных, в нем записывается условие


отбора для какого-то поля;
o Sort - сортировка информации
o Allow New - позволяет добавлять новые записи.
3. После добавления DataSet и BindingSource автоматически будет добавлен объект
TableAdaper. После чего уже можно добавлять объекты для отображения данных,
однако, при этом нельзя будет управлять информацией.
4. Для управления источником данных создаётся объект BindingNavigatior. Затем его
необходимо подключить к объекту BindingSource. Для этого в свойстве
BindingSource объекта BindingNavigatior необходимо указать созданный ранее
объект BindingSource.

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

 AddNewItem - отображает кнопку для добавления новой записи;


 DeleteItem - отображает кнопку для удаления текущей записи;
 AddNextItem - отображает кнопку для добавления новой записи после текущей;
 MoveFirstItem - отображает кнопку для перехода к первой записи;
 MoveNextItem - отображает кнопку для перехода к следующей записи;
 MovePreviousItem - отображает кнопку для перехода к предыдущей записи;
 MoveLastItem - отображает кнопку для перехода к последней записи;
 CountItem - отображает общее количество записей;
 Position Item - отображает номер текущей записи.

На этом мы заканчиваем рассмотрение подключение источника данных к проекту.


Дополнительную информацию можно найти в лабораторной работе №8.

Лабораторная работа: Создание проекта. Подключение файла


данных к проекту
Содержит начальные сведения об интерфейсе среды разработки "Microsoft Visual Studio
2008", информацию по созданию пустого проекта и его подключению к базе данных,
расположенную в "Microsoft SQL Server 2008".

Цель:

1. Научиться создавать проекты.


2. Научиться подключать файлы данных к проекту

Теперь рассмотрим создание пользовательского интерфейса нашей БД в "Microsoft Visual


Studio 2008".

Прежде чем создавать новый проект в "Microsoft Visual Studio 2008", необходимо
запустить "SQL Server Browser" (Обозреватель SQL серверов) сервис, обеспечивающий
доступ сторонним приложениям к "Microsoft SQL Server 2008". Для запуска данного
сервиса необходимо запустить утилиту "SQL Server Configuration Manager" (Менеджер
настроек SQL сервера), входящую в состав "Microsoft SQL Server 2008". Для запуска
данной утилиты в меню "Пуск" выберите пункт "Программы/Microsoft SQL Server
2008/Configuration Tools/ SQL Server Configuration Manager" как это представлено на
рис. 16.1.

увеличить изображение
Рис. 16.1.

Появится окно менеджера настроек SQL сервера имеющее следующий вид (рис. 16.2):
увеличить изображение
Рис. 16.2.

В правой части окна менеджера настроек SQL сервера, в списке сервисов "Microsoft SQL
Server 2008" выделите сервис "SQL Server Browser", затем на панели инструментов
нажмите кнопку "Start Service" (Запустить сервис)

(рис. 16.2). После запуска вышеуказанного сервиса окно менеджера настроек SQL сервера
можно закрыть.

Теперь перейдем непосредственно к созданию пользовательского интерфейса нашей БД


"Students" в "Microsoft Visual Studio 2008". Для начала необходимо создать новый
проект. Для этого запустите "Microsoft Visual Studio 2008", выбрав в меню "Пуск" пункт
"Программы/ Microsoft Visual Studio 2008/ Microsoft Visual Studio 2008" (рис. 16.3).
увеличить изображение
Рис. 16.3.

Появится окно со стартовой страницей "Microsoft Visual Studio 2008 (Start Page)" (рис.
16.4).

Рис. 16.4.

Для создания нового проекта на стартовой странице в области "Recent Projects"


(Недавние проекты) необходимо щелкнуть ЛКМ по ссылке "Create: Project…" (Создать:
проект…) (рис. 16.4). Появится окно выбора типа создаваемого проекта, и используемого
языка программирования "New Project" (Новый проект) (рис. 16.5).

Рис. 16.5.
В нашем случае на дереве типов проекта "Project types:" (Типы проектов) выберите
"Visual Basic\Windows", а в качестве шаблона проекта (Область Templates:) выберите
"Windows Forms Application" (Приложение Windows). В качестве имени проекта (Поле
ввода Name:) задайте "StudentsDB" и нажмите кнопку "Ok" (рис. 16.5).

Появится стандартное окно разработки языка "Microsoft Visual Basic 2008" (рис. 16.6).

увеличить изображение
Рис. 16.6.

Окно разработки языка "Microsoft Visual Basic 2008" имеет следующую структуру (рис.
16.6):

1. Оконное меню - содержит полный набор команд для управления средой


разработки;
2. Панель инструментов - содержит кнопки с наиболее часто используемыми
командами среды разработки;
3. Панель объектов (Toolbox) - содержит кнопки классов для создания различных
объектов (Элементов управления);
4. Обозреватель проекта/Источники данных (Solution Explorer/Data Sources) - в
зависимости от активизированной в нижней части данной панели вкладки,
отображает обозреватель проекта или источники данных, подключенные к проекту.
Обозреватель проекта (Solution Explorer) отображает все файлы, входящие в проект
и позволяет переключаться между ними. Источники данных это базы данных,
службы или объекты из которых поступают данные в проект;
5. Панель свойств (Properties) - отображает и позволяет изменять свойства
выбранного объекта;
6. Рабочая область - в зависимости от выбранной вкладки, расположенной в верхней
части области, отображает область дизайна формы, код формы или стартовую
страницу.

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


"Microsoft SQL Server 2008" БД "Students". Для подключения БД к проекту в оконном
меню среды разработки выберите пункт "Data\Add New Data Source…". Появится окно
мастера подключения к новому источнику данных "Data Source Configuration Wizard"
(рис. 16.7).

Рис. 16.7.

В данном окне можно выбрать один из трех видов источников данных (Choose a Data
Source Type):

 БД (Database);
 Служба (Service);
 Объект (Object).

Интерфейс информационных систем. Создание интерфейса


пользователя
Цели:

1. Рассмотреть интерфейс информационных систем


2. Изучить порядок создания интерфейса пользователя
3. Освоить подключение объектов к источнику данных при помощи окна свойств

Интерфейс информационных систем

В системах построенных по технологии клиент-сервер существует два вида интерфейса:


 Интерфейс, реализуемый при помощи клиентского приложения;
 Web -интерфейс.

Интерфейс, реализуемый при помощи клиентского приложения - это компьютерная


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

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


набором свойств, событий и методов.

 Свойства объекта - это его характеристики (высота, ширина и т.д.);


 События объекта - это события операционных систем или события инициируемые
пользователем, на которые может реагировать объект (нажатие кнопки);
 Методы объекта - действия, которые можно производить с объектом в ходе
выполнения программ.

В БД все объекты форм делятся на два класса:

 Объекты управления - объекты, осуществляющие управление БД (Например:


Кнопка или Выпадающий список);
 Объекты для отображения информации - элементы, отображающие содержимое
таблиц, запросов или фильтров, позволяющие добавлять изменять и удалять
информацию, и проводить ее анализ.

Все формы в клиентском приложении делятся на три группы:

1. Формы для работы с данными - формы, содержащие как объекты управления,


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

Замечание: Кнопочная форма, которая появляется первой после запуска


программы, называется, главной кнопочной формой.

3. Информационные и служебные формы - формы, содержащие только элементы


управления, предназначены для отображения служебной информации (справки),
несвязанной с таблицами, запросами и фильтрами, либо для выполнения
служебных операций не связанных с данными (Например: форма с калькулятором)

Замечание: Существует два вида дизайна форм:

1. Ленточные формы - формы, выводящие информацию по одной записи;


2. Табличные формы - формы выводящие информацию в виде таблицы.

Замечание: Объекты связи используются только в клиентском интерфейсе. В web-


интерфейса функции объекта связи выполняет сервер.

Основой web-интерфейса являются страницы (файл с расширенным htm или html). Работа
со страницами осуществляется с помощью программы - браузера. Изначально страницы
находятся на сервере, пользователь сначала загружает их на свой компьютер с сервера, а
затем с помощью страниц пользователь работает с файлом данных.

Замечание: В web- интерфейсе отсутствуют отчёты, их роль выполняют сами страницы.

Создание интерфейса пользователя

Создание интерфейса при помощи окна "Data Sources"

Visual Basic 2008 позволяет создавать не сложный интерфейс БД, без помощи панели
объектов и окна свойств, лишь используя окно "Data Sources". В окне "Data Sources"
после подключения источника данных отображается все таблицы, запросы, фильтры
данных и их поля. В Visual Basic 2008 как и в Visual Basic 6.0 можно перетаскивать
источники данных, соответственно таблицы, запросы, фильтры прямо из окна "Data
Sources" на форму (в Visual Basic 6.0 окно "Data Sources" заменено на окно "Data
Environment"). Главное отличие Visual Basic 2008 является то, что при перетаскивании
можно выбирать для каждого поля источника данных объект, который будет отображать
его содержимое.

Замечание: Таким способом можно создавать только определённые объекты для


отображения данных поля, и набор этих объектов зависит от типа данных поля.

Создание объектов для отображения данных перетаскиванием состоит из двух шагов:

 Для каждого поля таблицы, запроса, или фильтра выбирается объект, который
будет отображать его содержимое. Для этого необходимо щелкнуть мышью по
полю в окне "Data Sources", рядом с именем поля появится кнопка, со стрелкой,
щелкнув мышью по стрелке, отобразится выпадающее меню с объектами, которые
могут отображать информацию, содержащуюся в поле. Для полей стандартными
объектами являются: TextBox, ComboBox, Label, LinkLabel, ListBox. Для полей
типа данных Дата Время (DateTime) возможно использования объекта
DataTimePicker. Для полей логических типов данных возможно использование
объекта CheckBox. Для отображения таблиц, запросов или фильтров целиком
возможно два варианта отображения:
o При помощи объекта DataGridView - информация из таблицы, запроса или
фильтра отображается в виде таблицы;
o DetalledView - отображение всех полей источника данных в TextBox по
отдельности

Замечание: В выпадающем меню с вариантами выбора объектов имеется пункт


"Customize" (Настройки), который позволяет выбрать дополнительные
допустимые объекты для отображения информации.

 после выбора объектов для отображения необходимо их поместить на форму,


перетаскивая мышью с панели "Data Sources" в нужное место на форме.

Замечание: При помещении первого объекта на форму на ней автоматически создаются


объекты для связей с файлом данных и объекты по навигациям по источникам данных
(DataSet, BindingSource, TableAdapter, BindingNavigator).

Замечание: По умолчанию панель навигации располагается в верхней части формы. Эту


панель можно прикрепить около различных краев формы. Для этого необходимо
воспользоваться меню действий объектов. Это меню схоже с окном "Property Pages" из
Visual Basic 6.0, но кроме основных свойств объектов оно содержит и действия, которые
можно производить с объектами. Чтобы вызвать это меню, необходимо выделить объект.
В его правом верхнем углу появится кнопка (квадратик со стрелочкой), при нажатии этой
кнопки появляется выпадающее меню с настройками и действия с объектом. Нап ример,
чтобы поменять местоположение навигации панели - надо в этом меню выбрать настройку
Docking.

Замечание: При перетаскивании на форму полей источников данных автоматически


создаются подписи к ним (Label).

Замечание: После перетаскивания с созданным объектом можно работать как и с


обычным объектом Visual Basic.

Подключение объектов к источнику данных при помощи окна свойств

Visual Basic 2008 позволяет подключать источники данных к объектам без использования
перетаскивания, то есть вручную, с использованием панели свойств, как в Visual Basic 6.0.
Для этого на форму помещается объект, который будет подключаться к источнику
данных. Его выделяют, затем на панели свойств разворачивается группа свойств
"DataBindings" она содержит два свойства:

 Text - определяет таблицу, запрос или фильтр, из которого выводятся данные в


объект;
 Tag - определяет поле, выбранного в свойстве Text источника данных, которое
отображается в объекте.

На этом мы заканчиваем рассмотрение простых ленточных форм для работы с данными.


Дополнительную информацию можно найти в лабораторной работе №9.

Лабораторная работа: Главная кнопочная форма. Создание простых


ленточных форм для работы с данными
Цель: научиться создавать пользовательский интерфейс (главная кнопочная форма,
простые ленточные формы для работы с данными)

Перейдем теперь к созданию пользовательского интерфейса. Его создание начнем с


создания главной кнопочной формы. Запустите "Microsoft Visual Studio 2008" и откройте
созданный ранее проект "StudentsDB", щелкнув по его значку в области "Recent Projects"
стартовой страницы "Start Page" (рис. 18.1).
увеличить изображение
Рис. 18.1.

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


поместите надпись (Label) и четыре кнопки (Button) как показано на рис. 18.2.

Рис. 18.2.

Замечание: Для создания надписи на панели объектов необходимо нажать кнопку


а затем нарисовать прямоугольник мышью на форме, удерживая ЛКМ. Кнопки создаются
таким же образом, только на панели объектов нажмите кнопку

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


формы. Выделите форму, щелкнув ЛКМ в пустом месте формы. На панели свойств
задайте свойства формы как представлено ниже:

 FormBorderStyle (Стиль границы формы): Fixed3D;


 MaximizeBox (Кнопка развертывания формы во весь экран): False;
 MinimizeBox (Кнопка свертывания формы на панель задач): False;
 Text (Текст надписи в заголовке формы): База данных "Студент".

На форме выделите надпись, щелкнув по ней ЛКМ и на панели свойств, задайте свойства
надписи следующим образом:

 AutoSize (Авторазмер): False;


 Font (Шрифт): Microsoft Sans Serif, размер 14;
 ForeColor (Цвет текста): Темно синий;
 Text (Текст надписи): База данных "Студент";
 TextAlign (Выравнивание текста): MiddleCenter.

У кнопок задайте надписи (свойство "Text") как показано на рис. 18.3.

Рис. 18.3.

После настройки свойств вышеперечисленных объектов форма примет вид


представленный на рис. 18.3.

Теперь перейдем к созданию простых ленточных форм для работы с данными. Для начала
создадим ленточную форму, отображающую таблицу "Специальности". Добавим в
проект новую пустую форму. Для этого в оконном меню выберите пункт "Project/Add
Windows Form". Появится окно "Add New Item - StudentsDB" (Добавить новый
компонент) (рис. 18.4).

увеличить изображение
Рис. 18.4.

В данном окне в разделе "Categories:" (Категории) выберите "Windows Forms" (Формы


Windows), затем в разделе "Templates:" (Шаблоны) выберите "Windows Form" (Форма
Windows) и нажмите кнопку "Add" (Добавить). Новая пустая форма появится в рабочей
области среды разработки.

В верхней части новой формы создайте надпись (Label), как это показано на рис. 18.5.
Рис. 18.5.

Перейдем к настройке свойств формы и надписи. Выделите форму, щелкнув ЛКМ в


пустом месте формы. На панели свойств задайте свойства формы следующим образом:

 FormBorderStyle (Стиль границы формы): Fixed3D;


 MaximizeBox (Кнопка развертывания формы во весь экран): False;
 MinimizeBox (Кнопка свертывания формы на панель задач): False;
 Text (Текст надписи в заголовке формы): Таблица "Специальности".

На форме выделите надпись, щелкнув по ней ЛКМ и на панели свойств, задайте свойства
надписи как показано ниже:

 AutoSize (Авторазмер): False;


 Font (Шрифт): Microsoft Sans Serif, размер 14;
 ForeColor (Цвет текста): Темно синий;
 Text (Текст надписи): Таблица "Специальности";
 TextAlign (Выравнивание текста): MiddleCenter.

После настройки всех вышеперечисленных свойств форма будет выглядеть следующим


образом (рис. 18.6):
Рис. 18.6.

Теперь поместим на форму поля таблицы "Специальности". Сначала откройте панель


"Источники данных" (Data Sources), щелкнув по ее вкладке в правой части окна среды
разработки (смотри рис. 18.6). На панели "Источники данных" отобразите поля таблицы
"Специальности", щелкнув по значку "+", расположенному слева от имени таблицы
(рис. 18.7).

Рис. 18.7.

Панель "Источники данных" примет вид, представленный на рис. 18.7.

Замечание: Под полями таблицы специальности в виде подтаблицы располагается


таблица "Студенты" (рис. 18.7). Подтаблица показывает, что таблица "Студенты"
является вторичной по отношению к таблице специальности.

Замечание: При выделении, какого либо поля таблицы, оно будет отображаться в виде
выпадающего списка (рис. 18.7), позволяющего выбирать объект, отображающий
содержимое выделенного поля (рис. 18.8).

Рис. 18.8.

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

увеличить изображение
Рис. 18.9.
Замечание: Мы не помещаем поле "Код специальности" на нашу форму, так как данное
поле является первичным полем связи и заполняется автоматически. Конечный
пользователь не должен видеть такие поля.

Замечание: Обратите внимание, что после перетаскивания полей с панели "Источники


данных" на форму в верхней части формы появилась навигационная панель, а в нижней
части рабочей области среды разработки появились пять невидимых объектов. Эти
объекты предназначены для связи нашей формы с таблицей "Специальности",
расположенной на сервере. Рассмотрим функции этих объектов:

 StudentDataSet (Набор данных Student) - обеспечивает подключение формы к


конкретной БД на сервере (в нашем случае это БД Students);
 СпециальностиBindingSource (Источник связи для таблицы "Специальности") -
обеспечивает подключение к конкретной таблице (в нашем случае к таблице
специальности), а также позволяет управлять таблицей;
 СпециальностиTableAdapter (Адаптер таблиц для таблицы "Специальности") -
обеспечивает передачу данных с формы в таблицу и наоборот.
 TableAdapterManager (Менеджер адаптера таблиц) - управляет работой объекта
СпециальностиTableAdapter;
 СпециальностиBindingNavigator (Панель управления таблицей
"Специальности") - голубая панель с кнопками управления таблицей,
расположенная в верхней части формы

Теперь нам необходимо проверить работоспособность новой формы. Для отображения


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

Отобразите главную кнопочную форму в рабочей области среды разработки, щелкнув по


вкладке "Form1.vb [Design]" в верхней части рабочей области. Для подключения новой
формы "Специальности" к главной кнопочной форме дважды щелкните ЛКМ по кнопке
"Таблица "Специальности"", расположенной на главной кнопочной форме (рис. 18.3).
В появившемся окне кода формы в процедуре "Button1_Click" наберите команду
"Form2.Show()", предназначенную для открытия формы "Таблица "Специальности""
(Form2), как это показано на рис. 18.10.

увеличить изображение
Рис. 18.10.

Теперь запустим проект, нажав на панели инструментов кнопку

На экране появится главная кнопочная форма. Для открытия формы, отображающей


таблицу "Специальности" на главной кнопочной форме нажмите кнопку "Таблица
"Специальности"". Появится форма с соответствующей таблицей (рис. 18.11).
Рис. 18.11.

Проверьте работу панели навигации, расположенной в верхней части формы, понажимав


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

Теперь создадим форму для просмотра таблицы предметы. Добавьте в проект новую
форму. На форму добавьте надпись. Настройте свойства формы и надписи, как это было
сделано для формы таблицы "Специальности". Затем из таблицы "Предметы" на новую
форму поместите поля "Наименование предмета" и "Описание предмета". После
выполнения всех вышеописанных действий форма для таблицы предметы будет
выглядеть следующим образом (рис. 18.12):

Рис. 18.12.

На главной кнопочной форме дважды щелкните ЛКМ по кнопке "Таблица


"Предметы"" и в появившемся окне кода в процедуре "Button2_Click" наберите
"Form3.Show()" (рис. 18.13).
увеличить изображение
Рис. 18.13.

Проверим работу новой формы, отображающей таблицу "Предметы". Запустите проект и


на главной кнопочной форме нажмите кнопку "Таблица "Предметы"". Отобразится
таблица предметы имеющая следующий вид (рис. 18.14):

Рис. 18.14.

Проверьте работу панели навигации, нажатием на кнопки на данной панели в верхней


части формы. Для возвращения в среду разработки закройте форму таблицы "Предметы"
и главную кнопочную форму.

Теперь создадим простую ленточную форму для отображения таблицы "Студенты". Для
начала отобразите поля таблицы "Студенты" на панели "Источники данных", щелкнув
ЛКМ по знаку "+", расположенному слева от названия таблицы. Отобразятся все поля
таблицы "Студенты" (рис. 18.15).
Рис. 18.15.

Замечание: Обратите внимание на тот факт, что поля "Дата рождения" и "Дата
поступления" отображаются объектом "Выбор даты" (DataPicker), так как данные поля
содержат значения дат. Поле "Очная форма обучения" является логическим,
следовательно, для его отображения используется объект "Переключатель" (CheckBox).
Остальные поля отображаются при помощи текстовых полей ввода (TextBox) (рис. 18.15).

Создайте новую форму и поместите в ее верхнюю часть надпись. Задайте заголовок


формы как "Таблица "Студенты"". В верхнюю часть формы поместите надпись. В
качестве текста надписи задайте тот же самый текст, что был задан в качестве заголовка
формы. Настройте свойства формы и надписи, аналогично формам созданным ранее. На
форму с панели "Источники данных" переместите все поля кроме поля "Код студента".
Так как данное поле является первичным полем связи. Новая форма примет вид (рис.
18.16):
Рис. 18.16.

Обратите внимание на объекты, отображающие поля "Дата рождения", "Дата


поступления" и "Очная форма обучения".

Подключим форму, отображающую таблицу "Студенты" к главной кнопочной форме.


Отобразите главную кнопочную форму и на ней дважды щелкните ЛКМ по кнопке
"Таблица "Студенты"". В появившемся окне кода, в процедуре "Button3_Click"
наберите следующую команду для открытия формы таблицы "Студенты" -
"Form4.Show" (рис. 18.17).

увеличить изображение
Рис. 18.17.

Теперь запустим проект. На экране появится главная кнопочная форма. Для открытия
формы, отображающей таблицу "Студенты" на главной кнопочной форме нажмите
кнопку "Таблица "Студенты"". Появится форма с соответствующей таблицей (рис.
18.18).
Рис. 18.18.

Проверьте работу формы нажатием кнопок на панели навигации, расположенной в


верхней части формы. Закройте форму, отображающую таблицу "Студенты" и главную
кнопочную форму.

Аналогичным образом создайте форму для отображения таблицы "Оценки". Добавьте на


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

Подключите вновь созданную форму таблицы "Оценки" к главной кнопочной форме.


Для этого отобразите главную кнопочную форму и на ней дважды щелкните ЛКМ по
кнопке "Таблица "Оценки"". В появившемся окне с кодом, в процедуре
"Button4_Click" наберите команду "Form5.Show" (рис. 18.20).

увеличить изображение
Рис. 18.20.

Проверьте работу формы таблицы "Оценки", запустив проект, и на главной кнопочной


форме нажмите кнопку "Таблица "Оценки"". Появится вновь созданная форма (рис.
18.21).
Рис. 18.21.

В заключение, откройте обозреватель проекта (Solution Explorer) щелкнув по его вкладке


в правой части окна среды разработки. На данной панели должны отобразиться все выше
созданные формы (рис. 18.22).

Рис. 18.22.
19. Лекция: Стандартные объекты для отображения данных. Программное
управление информационной системой

Цели:

1. Изучить стандартные объекты для отображения данных


2. Рассмотреть программное управление информационной системой

Стандартные объекты для отображения данных

Способ создания объектов для отображения данных описанный ранее, позволяет


создавать только ограниченный набор объектов. Однако, Visual Basic 2008 позволяет
подключать источники данных практически к любому объекту, который может быть
создан на форме. Это можно сделать при помощи перетаскивания поля источника данных
из окна "Data Sources" на объект на форме.

Операция состоит из двух шагов:

 При помощи панели объектов (слева) на форме создается какой-то объект.


Объекты несвязанные с источником данных называют несвязанными объектами;
 Вновь созданный объект связывается с источником данных. Для этого на объект
нужно перетащить поле таблицы запроса или фильтра из окна "Data Sources".

Замечание: При перетаскивании поля из окна "Data Sources" необходимо учитывать его
тип данных. Объект на форме должен поддерживать тип данных подключаемого к нему
поля.

Замечание: В случае подключения объекта к источнику данных, способом, описанным


выше, подпись к объекту не создаётся автоматически и её надо создавать вручную с
помощью объекта Label.

Наиболее часто в БД используются следующие объекты для отображения информации:

1. Текстовое поле (TextBox)


2. Надпись (Label)
3. Надпись со ссылкой (LinkLabel)
4. Календарь (DataPicker)
5. Переключатель (CheckBox)
6. Таблица (DataGridView)
7. Список (ListBox)
8. Выпадающий список (ComboBox)
9. Текстовое поле с маской ввода (MaskedTextBox)

TextBox - отображает текст и числовые поля, это наиболее часто употребляемый объект
для отображения данных. Его можно создавать либо перетаскиванием из окна "Data
Sources", либо подключить вручную. Создание этого объекта, перетаскиванием возможно
почти у полей любых типов данных.

Label - полностью аналогичен объекту TextBox, но не позволяет изменить данные. Этот


объект используется для отображения заблокированных неизменяемых полей.
LinkLabel - специальный объект для отображения ссылок на адреса в Интернете. Его
используют для отображения текстовых полей, если в них хранятся адреса Интернета или
какой-то компьютерной сети. Это новый объект, ему не было аналога в Visual Basic 6.0.

DataPicker - специальный объект, предназначенный для отображения полей типа данных


"Дата/Время" в виде календаря.

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

DataGridView - объект, отображающий источник данных (таблицу, запрос или фильтр) в


виде таблицы.

ListBox - список отображающий значения полей и позволяющий выбирать значения полей


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

ComboBox - объект подобный объекту ListBox, однако информация отображается не в


списке, а выпадающем списке.

MaskedTextBox - нестандартный объект, предназначенный для отображения и ввода


информации по заранее заданному шаблону (маске). Этот объект может быть создан
только при помощи панели объектов и его подключение осуществляется либо
перетаскиванием на него поля из окна "Data Sources", либо заданием его свойств
вручную. По своим свойствам он ничем не отличается от объекта TextBox. Единственное
дополнительное свойство у этого объекта это свойство Mask. Для этого нужно щелкнуть
по кнопке действий объекта в верхнем правом углу объекта. Затем в списке действий
выбрать пункт "Edit Mask". В появившемся окне выбрать шаблон ввода, то есть маску
(Mask).

Замечание: Тип данных отображаемой информации должен совпадать с типом данных


маски.

Замечание: Объекты ListBox и ComboBox могут использоваться для заполнения полей с


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

 Установить галочку "Use Data Bound Items",


 В выпадающем списке "Data Source" выбрать пункт "Other Data Source" и там
выбрать нужную таблицу.
 В выпадающем списке "Display Member" и указываем поле, которое отображается
в списке.
 В выпадающем списке "Value Member" указываем поле, которое подставляем при
выборе пункта списка.
 В выпадающем списке "Selected Value" указываем поле, куда подставляется
выбранное в "Value Member" значение.

Программное управление информационной системой

В Visual Studio 2008 добавлять, удалять записи и перемещаться по ним можно как
используя объект Navigator, так и используя обычные кнопки. Рассмотрим создание
кнопок для управления записями. В Visual Studio 2008 отсутствует объект "RecordSet"
все операции с записями осуществляются с использованием объекта "BindingSource".

В Visual Basic 2008 для добавления новой записи из таблицы "Студенты" используется
команда вида СтудентыBindingSource.AddNew. Вместо метода AddNew можно
использовать методы:

 MoveNext (перейти к следующей);


 MoveFirst (Перейти к первой);
 Move Previous (Перейти к предыдущей);
 Move Last (Перейти к последней);
 Delete (Удалить запись).

У объекта BindingSource имеется свойство Filter. Оно аналогично Filter у объекта


RecordSet в Visual Basic 6.0. Его использование ничем не отличается от исполнения
такого же свойства в Visual Basic 6.0. То есть в свойстве Filter задаётся строка,
определяющая условие отбора записей в динамических фильтрах, выполняемых на
стороне клиента. Данная строка имеет следующий синтаксис:

<Поле1><Оператор1><Выражение1>
[AND|OR <Поле2><Оператор2><Выражение2>…]

Здесь:

 <Поле1>, <Поле2> ... - поля на которые накладываются условия;


 <Оператор1>, <Опрераторы2> - операторы сравнения, участвующие в условиях;
 <Выражение1>, <Выражение2> - выражения с которыми сравниваются поля. Под
выражениями понимаются, константы, переменные, формулы, функции и свойства
объектов

Пример: Из таблицы "Студенты" необходимо отобразить студента, у которого значение


поля ФИО равно "Петров".

СтудентыBindingSource.Filter = "ФИО = 'Петров'"

Обычно при формировании запроса при помощи свойства Filter задания условий отбора
используют либо списки ListBox, либо выпадающие списки ComboBox.

Замечание: Если мы используем ComboBox для создания динамического фильтра, то в


меню действий параметры "Value Member" и "Selected Value" настраивать не надо.

Пример: Имеется таблица "Студенты", которая отображается на форме в DataGridView.


Необходимо на форме поместить ComboBox с фамилиями студентов. При выборе ФИО и
нажатием на кнопку отобразить данные только по выбранному студенту.

В этом случае в меню действий ComboBox в параметре "Data Source" указываем "Other
Data Source/Студенты". Затем в "Display Member" выбираем ФИО. В коде кнопки
прописываем следующую команду:

СтудентыBindingSource.Filter = "ФИО='" & ComboBox1.Text & "'"


После нажатия кнопки в DataGridView отображаются данные по студенту, выбранному в
выпадающем списке ComboBox1.

Дополнительную информацию можно найти в лабораторной работе №10.

20. Лабораторная работа: Создание сложных ленточных форм для работы с данными

Цель: научиться создавать сложные ленточные формы для работы с данными

Модернизируем форму для таблицы "Студенты". Сначала программно продублируем


кнопки панели навигации, расположенной в верхней части формы. Откройте проект
"StudentsDB" и отобразите форму таблицы студенты (Form4). В нижней части формы
расположите семь кнопок, как это показано на рис. 20.1.

Рис. 20.1.

В качестве надписей на созданных кнопках (Свойство "Caption") задайте как: "Первая",


"Предыдущая", "Добавить", "Последняя", "Следующая", "Удалить" и
"Сохранить" (рис. 20.2).
Рис. 20.2.

Дважды щелкните ЛКМ по кнопке "Первая" и в появившемся окне кода формы


"Form4" в процедуре "Button1_Click" наберите команду для перехода к первой записи
"СтудентыBindingSource.MoveFirst()" (рис. 20.3).

увеличить изображение
Рис. 20.3.

Дважды щелкните ЛКМ по кнопке "Предыдущая" и в появившемся окне кода формы


"Form4" в процедуре "Button2_Click" наберите команду для перехода к предыдущей
записи "СтудентыBindingSource.MovePrevious()" (рис. 20.4).
увеличить изображение
Рис. 20.4.

Дважды щелкните ЛКМ по кнопке "Добавить" и в появившемся окне кода формы


"Form4" в процедуре "Button3_Click" наберите команду для добавления новой записи
"СтудентыBindingSource.AddNew()" (рис. 20.5).

увеличить изображение
Рис. 20.5.

Дважды щелкните ЛКМ по кнопке "Последняя" и в появившемся окне кода формы


"Form4" в процедуре "Button4_Click" наберите команду для перехода к последней
записи "СтудентыBindingSource.MoveLast()" (рис. 20.6).

увеличить изображение
Рис. 20.6.

Дважды щелкните ЛКМ по кнопке "Следующая" и в появившемся окне кода формы


"Form4" в процедуре "Button5_Click" наберите команду для перехода к следующей
записи "СтудентыBindingSource.MoveNext()" (рис. 20.7).

увеличить изображение
Рис. 20.7.

Дважды щелкните ЛКМ по кнопке "Удалить" и в появившемся окне кода формы


"Form4" в процедуре "Button6_Click" наберите команду для удаления текущей записи
"СтудентыBindingSource.RemoveCurrent()" (рис. 20.8).

увеличить изображение
Рис. 20.8.

Дважды щелкните ЛКМ по кнопке "Сохранить" и в появившемся окне кода формы


"Form4" в процедуре "Button7_Click" наберите команду для сохранения изменений,
отображенную на рис. 20.9.
увеличить изображение
Рис. 20.9.

Рассмотрим последнюю процедуру более подробно. Она содержит следующие команды:

 Me.Validate() - проверяет введенные в поля данные на соответствие типам данных


полей;
 Me.СтудентыBindingSource.EndEdit() - закрывает подключение с сервером;
 Me.TableAdapterManager.UpdateAll(Me.StudentsDataSet) - обновляет данные на
сервере.

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

Теперь изменим объекты, отображающие поля для более удобного ввода информации.
Для начала удалите текстовые поля ввода (TextBox), отображающие следующие поля
таблицы "Студенты": "Пол", "Родители", "Телефон", "Паспортные данные",
"Номер зачетки", "Курс" и "Код специальности". После удаления, перечисленных
полей форма, отображающая таблицу "Студенты" примет следующий вид (рис. 20.10):
Рис. 20.10.

Для отображения полей "Телефон", "Паспортные данные" и "Номер зачетки" будем


использовать текстовые поля ввода по маске (MaskedTextBox). Объект текстовое поле
ввода по маске отсутствует в выпадающем списке объектов для отображения полей в окне
"Источники данных", поэтому будем создавать данные объекты при помощи панели
объектов (Toolbox), а затем подключать их к соответствующим полям вручную. Для
создания текстовых полей ввода по маске на панели объектов используется кнопка

Создайте текстовые поля ввода по маске справа от надписей "Телефон", "Паспортные


данные" и "Номер зачетки", как это показано на рис. 20.11.
Рис. 20.11.

Теперь у созданных объектов настроим маски ввода. Начнем с объекта, отображающего


номер зачетки. На форме выделите соответствующее полю "Номер зачетки" текстовое
поле ввода по маске. Для задания маски в меню действий с объектом выберите пункт "Set
Mask…" (Установить маску…) (рис. 20.12).
Рис. 20.12.

Замечание: Для отображения меню действий в верхнем правом углу объекта необходимо
нажать кнопку

(рис. 20.12).

После выбора пункта "Set Mask…" на экране появится окно задания маски "Input Mask"
(Введите маску) (рис. 20.13).
Рис. 20.13.

В окне "Input Mask" выберите маску "Numeric (5-digits)" (Числовое (5-цифр)) и


нажмите кнопку "Ok" (рис. 20.13).

Для текстового поля ввода по маске для поля "Паспортные данные" задайте маску как
показано на рис. 20.14.

Рис. 20.14.
Замечание: Обратите внимание, что паспортные данные отображаются как четыре числа,
тире, шесть чисел. То есть в поле "Mask" (Маска) нужно задать "0000-000000". Знак "0"
обозначает цифру. В поле "Preview" (Предварительный просмотр) отображается вид
текстового поля ввода по маске на форме.

После определения маски для поля "Паспортные данные" в окне "Input Mask" нажмите
кнопку "Ok".

Теперь зададим маску для текстового поля ввода по маске отображающего поле
"Телефон". Задайте маску как показано на рис. 20.15.

Рис. 20.15.

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


соответствующим полям. Для этого с панели "Источники данных" (DataSources)
перетащите поле "Номер зачетки" на текстовое поле ввода по маске, расположенное
справа от надписи "Номер зачетки". Проделайте такую же операцию с полями
"Паспортные данные" и "Телефон", перетащив их на соответствующие им текстовые
поля ввода по маске.

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


отображению поля "Курс" при помощи числового счетчика (объект NumericUpDown).
Для этого, на панели "Источники данных" нажмите кнопку, расположенную справа от
поля "Курс" и в выпадающем списке выберите объект для отображения данного поля как
"NumericUpDown" (рис. 20.16).
Рис. 20.16.

Затем перетащите поле на форму мышью, расположив, его справа от надписи "Курс".

Замечание: После перетаскивания поля "Курс" на форму слева от него появится еще
одна надпись "Курс". Удалите ее, щелкнув по ней ЛКМ, а затем нажав кнопку "Delete"
на клавиатуре.

Отобразим поля "Пол" и "Родители" в виде выпадающих списков (Объект ComboBox).


Для этого, на панели "Источники данных" нажмите кнопку, расположенную справа от
поля "Пол" и в выпадающем списке выберите объект для отображения данного поля как
"ComboBox" (рис. 20.17).

Рис. 20.17.

Такую же операцию проделайте с полем "Родители". Затем перетащите мышью поля на


форму, расположив их напротив соответствующих надписей. Удалите лишние надписи.

Теперь заполним выпадающие списки. Выделите выпадающий список, отображающий


поле "Пол". На панели свойств (Properties) и нажмите кнопку в свойстве "Items"
(Элементы списка). Появится окно "String Collection Editor" (Редактор строковых
коллекций) (рис. 20.18).
Рис. 20.18.

В появившемся окне в отдельных строках наберите элементы выпадающего списка:


"Мужской" и "Женский" (рис. 20.18). Затем нажмите кнопку "Ok".

Для выпадающего списка, отображающего поле "Родители", проделайте аналогичную


операцию, только в качестве пунктов списка задайте: "Отец и Мать", "Мать", "Отец" и
"Нет" (рис. 20.19).

Рис. 20.19.

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


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

Поместите справа от надписи "Код специальности", неподключенный ни к каким полям


выпадающий список. Для создания выпадающего списка на панели объектов
воспользуйтесь кнопкой

После создание выпадающего списка подключим его к полю "Код специальности" из


таблицы "Студенты" и настроим заполнение списка значениями поля "Наименование
специальности" из таблицы студенты. Для этого выделите вновь созданный
выпадающий список, отобразите меню действий и в меню действий включите опцию "Use
data bound items" (Использовать связанные с данными элементы списка) (рис. 20.20).

Рис. 20.20.

В панели действий под опцией "Use data bound items" расположены следующие
параметры:

 Data Source (Источник данных) - определяет таблицу или запрос из которого


заполняется список;
 Display Member (Член отображения) - определяет поле значениями которого
заполняется список;
 Value Member (Член значений) - определяет значения какого поля подставляются
в связанное с выпадающим списком поле;
 Selected Value (Выбранное значение) - определяет связанное с выпадающим
списком поле.

Для изменения параметров необходимо нажать кнопку

внутрии поля параметра. Появится древовидная структура выбора источника данных (рис.
20.21).
Рис. 20.21.

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

 Параметр "DataSource" задайте как "Other Data Sources\Project Data


Sources\StudentsDataSet\Специальности";
 Параметр "DataMember" задайте как "Наименование специальности";
 Параметр "Value Member" задайте как "Код специальности";
 Параметр "Selected Value" задайте как "СтудентыBindingSource\Код
специальности".
 После задания всех вышеперечисленных параметров панель действий
выпадающего списка примет вид (рис. 20.22):



Рис. 20.22.
 Обратите внимание на то, что на панели невидимых объектов, расположенной в
нижней части рабочей области среды разработки, появилось два новых объекта:
"СпециальностиBindingSource" и "СпециальностиTableAdapter" (рис. 20.23).



увеличить изображение
Рис. 20.23.
 Данные объекты предназначены для заполнения выпадающего списка значениями
поля "Наименование специальности" таблицы "Специальности".
 После всех вышеперечисленных действий форма, отображающая таблицу
"Студенты" примет вид, представленный на рис. 20.24.



Рис. 20.24.
 Проверим работу формы, отображающей таблицу "Студенты". Запустите проект и
на главной кнопочной форме нажмите кнопку "Таблица "Студенты"". Появится
форма, имеющая следующий вид (рис. 20.25):


Рис. 20.25.
 На этом мы заканчиваем работу с формой, отображающей таблицу "Студенты" и
переходим к реализации вычислимых полей. Для этого рассмотрим форму,
отображающую таблицу "Оценки" (Form5). Рассмотрим вычисление поля
"Средний балл" на основе среднего трех полей:
 Отобразите форму для таблицы "Оценки", щелкнув ЛКМ по ее вкладке в верхней
части рабочей области среды разработки. На форму, справа от поля "Средний
балл" поместите кнопку (рис. 20.26).


Рис. 20.26.
 Задайте свойство "Text" у вновь созданной кнопки как "Вычислить" (рис. 20.27).



Рис. 20.27.
 Теперь дважды щелкните ЛКМ по кнопке "Вычислить" и в появившемся коде
процедуры "Button1_Click" наберите код, представленный на рис. 20.28,
вычисляющий среднее оценок.



увеличить изображение
Рис. 20.28.
 Теперь проверим, как работает наша вновь созданная кнопка для вычисления поля
"Средний балл". Запустите проект и на главной кнопочной форме нажмите
кнопку "Таблица "Оценки"". Появится форма, отображающая таблицу
"Оценки", на форме нажмите кнопку "Вычислить". Будет вычислен средний
балл по оценкам. Если нажать кнопку сохранения на панели инструментов формы



 то средний балл будет сохранен в таблицу "Оценки" (рис. 20.29).



Рис. 20.29.
 На этом мы заканчиваем рассмотрение ленточных форм и переходим к
рассмотрению табличных форм.

21. Лекция: Объект для отображения табличной информации DataGridView. Настройка


свойств столбцов в DataGridView

Цели:

1. Изучить объекты для отображения табличной информации DataGridView


2. Рассмотреть настройка свойств столбцов в DataGridView

Объект для отображения табличной информации DataGridView

Объект DataGridView предназначен для отображения всей информации из таблиц,


запросов или фильтров на форме в виде таблицы. Этот объект может быть создан как
вручную (с последующим его подключением), так и перетаскиванием всего источника
данных из окна "Data Sources". Однако наиболее часто его создают перетаскиванием
всей таблицы, запроса или фильтра из окна "Data Sources" на форму.

При перетаскивании этого объекта на форму, как и в случае с другими объектами


появляется панель навигации. Она выполняет функции: перемещение по записям,
добавление, удаление и сохранение записей. После создания объекта DataGridView
можно настраивать как свойства всего объекта, так и свойства отдельных столбцов.
Начнём с настройки свойств всего объекта. Настройка данных свойств осуществляется в
основном через меню действий. Возможны следующие настройки:

 Chose Data Source - источник данных, отображаемый в таблице;


 Enable Adding - добавлять записи;
 Enable Deleting - разрешается пользователям удалять записи;
 Enable Editing - разрешается пользователям изменять значения полей таблицы;
 Enable Column Reordering - разрешается пользователям изменять порядок
столбцов, просто перетаскивая их мышью.

Также в меню действий возможны следующее действия с таблицей:

 Dock in parent container - вписать объект в форму;


 Preview Data - появляется окно с предварительным просмотром таблицы;
 Add Query - добавляет SQL - запрос, который выполняется на стороне клиента;
 Add Column - добавление нового столбца в таблицу;
 Edit Columns - настройка свойств отдельных столбцов таблицы.

Теперь перейдём к настройке отдельных столбцов таблицы.

Настройка свойств столбцов в DataGridView

Если в меню действий выбрать пункт "Edit Columns", то появляется окно, где можно
добавлять, удалять и редактировать столбцы. Для этого в списке столбцов левой части
окна выбираем столбец, а в правой - настраиваем его свойства. Наиболее часто
настраиваются следующие свойства:

1. Name - имя столбца;


2. AutoSizeMode - подгонка ширины столбца по его содержимому;
3. ColumnType - определяет внешний вид ячеек столбца (какой объект для
отображения информации находится в ячейках столбца);
4. DataPropertyName - имя, отображающего в столбце поля;
5. Frozen - фиксация столбца (столбец не передвигается при прокручивании
таблицы);
6. HeaderText - текст заголовка столбца;
7. Width - ширина поля;
8. MaxInputLength - максимально вводимая длина текста;
9. MinimumWidth - минимальная ширина столбца;
10. ReadOnly - блокировка столбца для редактирования данных;
11. Resizable - разрешает менять ширину столбца;
12. SortMode - сортировка данных в таблице по этому столбцу;
13. ToolTipText - всплывающая подсказка для столбца;
14. Visible - делает столбец невидимым.

Замечание: Для добавления новых столбцов в окне "Edit Columns" необходимо нажать
кнопку Add, а для удаления кнопку Remove.

Замечание: Если необходимо настроить внешний вид всех ячеек таблицы, то для этого
необходимо выделить объект DataGridView и на панели свойств зайти в свойство
DefaultCellStyle. Появится окно со свойствами всех ячеек таблицы.

Замечание: В объекте DataGridView имеется возможность сортировки данных. Для этого


используется метод Sort, имеющий следующий синтаксис:

DataGridView.Sort(<Имя столбца>, <Порядок сортировки>)

где DataGridView - это имя объекта, <Имя столбца> - это имя столбца (свойство Name) по
которому происходит сортировка записей в таблице, параметр <Порядок сортировки>
определяет порядок сортировки и может принимать два значения:

 System.ComponentModel.ListSortDirection.Ascending - сортировка по возрастанию;


 System.ComponentModel.ListSortDirection.Descending - сортировка по убыванию.

Замечание: Доступ к отдельным ячейкам таблицы можно получить через подобъект Item.
Обращение к нему осуществляется следующим образом:

DataGridView.Item(i, j).<Свойство>

Здесь DataGridView - это имя объекта, i - горизонтальная координата ячейки, а j -


вертикальная, <Свойство> - это настраиваемое свойство ячейки.

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

DataGridView.Item(0, 0).Value = "Привет"


DataGridView.Item(0, 0).Style.ForeColor = Color.Red

Здесь DataGridView - это имя объекта, свойство Value определяет содержимое ячейки
таблицы, свойство Style.ForeColor определяет цвет текста в ячейке. Нумерация столбцов и
строк в таблице начинается с нуля.

На этом мы заканчиваем рассмотрение табличных форм для работы с данными.


Дополнительную информацию можно найти в лабораторной работе №11.

22. Лабораторная работа: Создание табличных форм

Цель: научиться создавать табличные формы


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

Рассмотрим создание табличной формы на примере формы, отображающей таблицу


"Студенты". Добавьте в проект новую форму и на нее поместите следующие объекты:

 четыре надписи (Label),


 пять кнопок (Button),
 выпадающий список (ComboBox),
 текстовое поле ввода (TextBox),
 группирующую рамку (GroupBox),
 список (ListBox),
 два переключателя (RadioButton).

Расположите объекты как показано на рис. 22.1.

увеличить изображение
Рис. 22.1.

Замечание: Для создания объекта группирующая рамка используется кнопка ### на


панели объектов (Toolbox), а для создания переключателя - кнопка ###.

Добавим на форму таблицу для отображения данных (DataGridView) из таблицы


"Студенты". Для этого на панели "Источники данных" (Data Sources), нажмите кнопку
расположенную справа от таблицы "Студенты". В появившемся списке объектов для
отображения всей таблицы выберите "DataGridView" (рис. 22.2).

Рис. 22.2.

Перетащите таблицу "Студенты" из панели "Источники данных" на форму. Форма


примет следующий вид (рис. 22.3):

увеличить изображение
Рис. 22.3.

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

увеличить изображение
Рис. 22.4.

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


Задайте свойства формы следующим образом:
 FormBorderStyle (Стиль границы формы): Fixed3D;
 MaximizeBox (Кнопка развертывания формы во весь экран): False;
 MinimizeBox (Кнопка свертывания формы на панель задач): False;
 Text (Текст надписи в заголовке формы): Таблица "Студенты" (Табличный вид).

Задайте свойства надписей (Label1, Label2, Label3 и Label4) как:

 AutoSize (Авторазмер): False;


 Text (Текст надписи): "Таблица "Студенты" (Табличный вид)", "Поле для
сортировки", "ФИО:" и "Критерий" (Соответственно для Label1, Label2, Label3 и
Label4).

Для надписи Label1 задайте:

 Font (Шрифт): Microsoft Sans Serif, размер 14;


 ForeColor (Цвет текста): Темно синий;
 TextAlign (Выравнивание текста): MiddleCenter.

Задайте надписи на кнопках как: "Сортировать", "Фильтровать", "Показать все",


"Найти" и "Закрыть" (Соответственно для кнопок Button1, Button2, Button3, Button4 и
Button5). Для того чтобы нельзя было произвести сортировку не выбрав поля изначально
заблокируем кнопку "Сортировать" (Button1).

У группирующей рамки задайте заголовок (Свойство Text) равным "Сортировка". У


переключателей (Объекты RadioButton1 и RadioButton2) задайте надписи как
"Сортировка по возрастанию" и "Сортировка по убыванию", а у переключателя
"Сортировка по возрастанию" (RadioButton1) задайте свойство Checked (Включен)
равное True (Истина).

Заполните список (ListBox1) значениями, представленными на рис. 22.5, а затем нажмите


кнопку "Ok".

Рис. 22.5.
Настроим таблицу для отображения данных, удалив из нее поля с кодами. Выделите
таблицу на форме и отобразите ее меню действий, щелкнув ЛКМ по кнопке

расположенной в верхнем правом углу таблицы. В меню действий выберите пункт "Edit
columns…" (рис. 22.6).

Рис. 22.6.

Появится окно настройки свойств полей таблицы "Edit Columns" (рис. 22.7).

Рис. 22.7.

В окне "Edit Columns" из списка полей удалите поля "Код студента" и "Код
специальности", выделив их и нажав кнопку "Remove" (Удалить). Список полей примет
вид показанный на рис. 22.7. Для закрытия окна редактирования полей, и сохранения
изменений нажмите кнопку "Ok".

Настроим заполнение выпадающего списка именами студентов из таблицы студенты.


Отобразите меню действий выпадающего списка. Включите опцию "Use Data Bound
Items". Установите параметр "Data Source" равным "Other Data Sources\Project Data
Sources\StudentsDataSet\Студенты", а параметр "Display Member" равным "ФИО".
Остальные параметры оставьте без изменений (рис. 22.8).

Рис. 22.8.

Закройте окно действий выпадающего списка. На панели невидимых объектов появится


дополнительный объект связи "СтудентыBindingSource1", предназначенный для
заполнения выпадающего списка (рис. 22.9).

увеличить изображение
Рис. 22.9.

После настройки всех вышеперечисленных свойств объектов новая форма примет вид
(рис. 22.10):
увеличить изображение
Рис. 22.10.

На этом мы заканчиваем настройку свойств объектов и переходим к написанию кода


обработчиков событий объектов.

Работу с кодом начнем с написания кода для разблокирования кнопки "Сортировать",


при выборе пункта списка (ListBox1). Для создания процедуры события дважды щелкните
ЛКМ по списку. Появится процедура обработки события, происходящего при выборе
пункта списка (ListBox1_SelectedIndexChanged). В процедуре наберите команду
разблокировки кнопки "Сортировать" (Button1): Button1.Enabled = True (рис. 22.11).

увеличить изображение
Рис. 22.11.

Теперь перейдем к созданию кода сортирующего нашу таблицу в зависимости от


выбранного поля и порядка сортировки при нажатии кнопки "Сортировать". Дважды
щелкните ЛКМ по кнопке "Сортировать". Появится процедура "Button1_Click",
выполняемая при щелчке ЛКМ по кнопке. В процедуре наберите код, представленный на
рис. 22.12.
увеличить изображение
Рис. 22.12.

Рассмотрим код более подробно:

 Команда Dim Col As System.Windows.Forms.DataGridViewColumn создает


переменную Col для хранения имени выбранного столбца таблицы;
 Затем следует блок Select Case…End Select, присваивающий в переменную Col имя
выбранного столбца таблицы в зависимости от номера выбранного пункта списка
(ListBox1.SelectedIndex). Если выбран первый пункт списка, то в переменную Col
записывается столбец DataGridViewTextBoxColumn2, если второй, то -
DataGridViewTextBoxColumn3 и так далее. Хотелось бы отметить тот факт, что
нумерация пунктов списка начинается с нуля, а нумерация столбцов с единицы.
Первый столбец "ФИО" носит имя DataGridViewTextBoxColumn2, так как имя
DataGridViewTextBoxColumn1 имеет столбец заголовков строк;
 Блок If…End If выполняет следующую операцию: если включен переключатель
"Сортировка по возрастанию" (RadioButton1), то отсортировать таблицу по
полю заданному в переменной Col по возрастанию (СтудентыDataGridView.Sort
(Col, System.ComponentModel.ListSortDirection. Ascending)), иначе по убыванию
(СтудентыDataGridView.Sort (Col, System. ComponentModel.ListSortDirection.
Descending)).

Рассмотрим код обработчика события нажатия кнопки "Фильтровать" (Button2).


Дважды щелкните по кнопке "Фильтровать" и в процедуре обработки события
"Button2_Click" наберите код: СтудентыBindingSource.Filter = "ФИО='" &
ComboBox1.Text & "'" (рис. 22.13).
увеличить изображение
Рис. 22.13.

Замечание: У объекта СтудентыBindingSource имеется текстовое свойство Filter (рис.


22.13), которое определяет условие фильтрации. Условие фильтрации имеет синтаксис:
"<Имя поля><Оператор>'<Значение>'".В нашем случае значение поля "ФИО"
приравнивается к значению, выбранному в выпадающем списке (ComboBox1.Text) (рис.
22.13).

Теперь перейдем к кнопке "Показать все", отменяющей фильтрацию записей. Дважды


щелкните по вышеперечисленной кнопке. Появится процедура Button2_Click. В
появившейся процедуре наберите команду СтудентыBindingSource.Filter = "" (рис. 22.14).

увеличить изображение
Рис. 22.14.

Заметим, что если присвоить свойству "Filter" значение пустой строки (""), то его
действие будет отменено (рис. 22.14).

Далее рассмотрим реализацию поиска информации в таблице. Дважды щелкните по


кнопке "Найти". В появившейся процедуре обработки нажатия кнопки "Button4_Click"
наберите следующий код (рис. 22.15).

увеличить изображение
Рис. 22.15.

Рассмотрим более подробно код вышеприведенной процедуры. Данная процедура состоит


из двух частей:

 Первый блок For i=0…..Next i. перебирает все ячейки таблицы и устанавливает в


них белый цвет фона и черный цвет текста. То есть, отменяет результаты
предыдущего поиска;
 Второй блок For i=0…..Next i. перебирает все ячейки таблицы и если они содержат
текст, введенный в поле ввода (TextBox1), то устанавливает в них голубой цвет
фона и синий цвет текста, чем выделяет искомые ячейки.

Наконец рассмотрим код для кнопки "Закрыть". Дважды щелкните ЛКМ по этой кнопке
и в появившейся процедуре "Button5_Click" наберите команду "Me.Close()",
закрывающую выше рассматриваемую форму (рис. 22.16).

увеличить изображение
Рис. 22.16.

В заключение создадим кнопку на ленточной форме, отображающей таблицу


"Студенты", для отображения соответствующей табличной формы. Откройте ленточную
форму для таблицы "Студенты" (Form4) и поместите на нее новую кнопку, как это
показано на рис. 22.17.
Рис. 22.17.

Задайте надпись у новой кнопки (свойство Text), как "Таблица". Форма примет
следующий вид (рис. 22.18):

Рис. 22.18.

Подключим к кнопке "Таблица" созданную ранее табличную форму (Form6). Для этого
дважды щелкните ЛКМ по кнопке "Таблица" и в появившейся процедуре
"Button8_Click" наберите команду "Form6.Show" (рис. 22.19).

увеличить изображение
Рис. 22.19.
Теперь проверим работоспособность созданной табличной формы. Запустите проект и на
главной кнопочной форме нажмите кнопку "Таблица "Студенты"". На появившейся
ленточной форме, отображающей таблицу "Студенты" нажмите кнопку "Таблица".
Появится новая табличная форма (рис. 22.20).

увеличить изображение
Рис. 22.20.

Проверьте, как работает поиск, фильтрация и сортировка записей в таблице, нажимая на


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

Хотелось бы отметить тот факт, что после проведения всех вышеописанных действий
панель обозревателя проекта (Solution Explorer) примет вид (рис. 22.21):
Рис. 22.21.

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

23. Лекция: Отчеты. Объекты для работы с отчетами

Цели:

1. Изучить порядок создания отчетов


2. Рассмотреть объекты для работы с отчетами

Отчёты

Клиентские приложения осуществляют вывод информации на печать с помощью отчетов.


Отчеты так же, как и формы состоят из объектов и сами являются объектами, но между
отчетами и формами есть отличия:

1. Отчёты содержат только объекты для отображения информации (Например,


подписи, рисунки, текстовые поля, геометрические фигуры и линии), но не
содержат объекты для управления системой (Например, кнопки или выпадающие
списки);
2. В отчётах сразу же выводятся все записи из источника данных (таблицы, запроса
или фильтра) и вывод производится на листы;
3. Отчёт нельзя создать без наличия в системе принтера, так как настройки внешнего
вида отчёта берутся из настроек драйвера принтера;
4. В отличие от форм отчёты состоят из пяти разделов:
o Заголовок - верхняя часть первого листа отчёта. В заголовке располагают
название отчёта и некоторую служебную информацию. Например, герб и
юридический адрес фирмы или имя автора отчёта.
o Примечание - нижняя часть последнего листа отчёта. В примечание
помещают итоговую информацию по отчёту (Например, общий объём
продаж, всех сделок представленных в отчёте) и место для печати и подписи
руководителя.
o Верхний колонтитул - верхняя часть каждого листа отчёта. В данный раздел
помещают номера листов отчёта и дополнительную служебную
информацию. Например, дату и время создания отчёта.
o Нижний колонтитул - нижняя часть каждого листа отчёта. В данном разделе
располагается та же информация что и в верхнем колонтитуле, но не
дублирует информацию из верхнего колонтитула.
o Область данных - средняя часть каждого листа отчёта.

Замечание: Существует два вида дизайна отчетов:

 Ленточный дизайн - выводит информацию по каждой записи отдельно. То есть для


каждого поля каждой записи отображается название поля и его значение;
 Табличный дизайн - выводит информацию в виде таблицы. То есть в заголовок
отчёта помещают названия полей, а в области данных под названием полей
отображаются их значения.

Объекты для работы с отчётами

Работа с отчётами в Visual Basic2008 состоит из нескольких этапов:

1. Создаётся пустой отчёт;


2. В отчёт помещают объекты для отображения информации;
3. Создаётся форма для отображения отчёта;
4. На форму помещают объект Reportvewer, отображающий отчёты;
5. К объекту Reportvewer подключают созданный ранее отчёт.

Создание отчётов и отображающих их форм подробно рассмотрено в лабораторной


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

Для создания пустого отчёта в оконном меню необходимо выбрать пункт "Project\Add
New Item…" и в появившемся окне в разделе "Reporting" дважды щёлкнуть ЛКМ по
пункту "Report" появится вкладка с пустым отчётом. Теперь в отчёт необходимо
добавить объекты для отображения данных.

Замечание: Работа с объектами в отчёте полностью аналогична работе с объектами на


форме. То есть мы можем перетаскивать поля в отчёт из окна "Data Sources" либо можем
создать объекты в отчёте вручную, а затем подключить их к полям через панель свойств.

Замечание: В отчётах все объекты делятся на объекты контейнеры, объекты для


отображения данных и объекты оформления.

 Объекты контейнеры - это объекты, содержащие объекты для отображения данных


и определяющие дизайн отчёта.
 Объекты для отображения данных - это объекты, отображающие значения полей
источника данных или дополнительную служебную информацию.
 Объекты оформления - объекты, применяемые только для оформления отчёта.

Рассмотрим объекты для отображения данных, к ним относятся:


 TextBox - текстовое поле ввода, предназначено для отображения значений полей и
любой текстовой информации. Если объект TextBox используется для отображения
информации из источника данных, и он находится вне объекта контейнера, то в
нём будет отображено значение выбранного поля только первой записи из
источника данных;
 Image - объект отображающий содержимое полей с графической информацией
либо отображающий рисунки (графические файлы);
 Chart - объект, отображающий график или гистограмму построенную по
информации из источника данных.

Теперь рассмотрим объекты контейнеры. В отчёт можно поместить следующие объекты


контейнеры:

 Table - таблица выводит информацию в виде таблицы с ограниченным


количеством столбцов и неограниченным количеством строк. То есть в количество
строк в таблице зависит от объёма выводимых данных;
 Matrix - таблица выводит информацию в виде таблицы с неограниченным
количеством столбцов и строк. То есть в количество строк и столбцов в таблице
зависит от объёма выводимых данных;
 List - объект выводящий информацию в виде списков;
 Subreport - объект содержащий внутри себя дополнительный отчёт, созданный
ранее.

Наконец, рассмотрим объекты оформления. К ним относятся:

 Line - отображает линию;


 Rectangle - отображает прямоугольник, используется для группировки полей.

Замечание: Работа со строками, столбцами или ячейками объектов Table, Matrix и List
осуществляется как в программе "Microsoft Excel".

Замечание: В ячейках объектов Table, Matrix и List можно печатать текст, как и в
ячейках таблиц "Microsoft Excel". Чтобы поместить в ячейку значение поля его можно
перетащить из окна "Data Sources" в ячейку, либо в ячейке написать код, имеющий
следующий синтаксис: = Fields!<Имя поля>.Value, где Имя поля - это имя отображаемого
поля. Аналогично можно производить вычисления в ячейках.

Пример: В ячейке отобразить средний бал трёх полей: Оценка1, Оценка2 и Оценка3.
для решения этой задачи в ячейке необходимо набрать код:

= (Fields!Оценка1.Value+Fields!Оценка2.Value+ Fields!Оценка3.Value)/3

На этом мы заканчиваем рассмотрение отчётов. Дополнительную информацию можно


найти в лабораторной работе №12.

24. Лабораторная работа: Отчеты


Показывает создание ленточных отчетов.

Цель: научить создавать отчеты


Начнем рассмотрение отчетов с создания ленточного отчета, отображающего таблицу
"Студенты". Для начала добавим в проект новый пустой отчет. Для этого в оконном
меню выберите пункт "Project\Add New Item…" (рис. 24.1).

Рис. 24.1.

Появится окно "Add New Item-StudentsDB" (Добавить новый элемент - StudentsDB). В


данном окне в списке "Categories" (Категории) выберите пункт "Reporting" (Отчеты),
затем в области "Templates" (Шаблоны) выберите шаблон "Report" (Отчет) и нажмите
кнопку "Add" (Добавить) (рис. 24.2).
увеличить изображение
Рис. 24.2.

В рабочей области среды разработки появится пустой отчет. Новый отчет также
отобразится и на панели обозревателя проекта (Solution Explorer) (рис. 24.3).

Рис. 24.3.

Для того чтобы в отчет поместить поля таблицы "Студенты" в него необходимо добавить
объект "Table" (Таблица). Для этого на панели объектов (Toolbox) нажмите кнопку

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


24.4.

увеличить изображение
Рис. 24.4.

Замечание: Объект таблица имеет три строки:


 Header (заголовок) - верхняя часть первой страницы отчета, содержит заголовок
отчета;
 Detail (область данных) - средняя часть каждой страницы отчета, содержит поля
отображаемой таблицы;
 Footer (примечание) - нижняя часть последней страницы отчета, содержит
итоговую информацию по отчету.

Добавим в таблицу в область данных дополнительные строки для отображения полей


таблицы "Студенты". Выделите область данных, как это показано на рис. 24.5, щелкнув
ЛКМ по заголовку строки области данных

Рис. 24.5.

Для вставки новой строки щелкните ПКМ по заголовку выделенной строки

и в появившемся меню выберите пункт "Insert Row Below" (Вставить строку ниже) (рис.
24.6).
Рис. 24.6.

Проделайте эту операцию одиннадцать раз. Таблица примет вид (рис. 24.7)

Рис. 24.7.

Наша таблица имеет три столбца. Один столбец является лишним, так как нам
необходимо всего два столбца: один для отображения полей таблицы "Студенты", а
другой для подписей к ним. Поэтому удалим первый столбец таблицы. Щелкните ПКМ
по заголовку первого столбца таблицы и в появившемся меню выберите пункт "Delete
Columns" (Удалить строки) (рис. 24.8).

Рис. 24.8.

Теперь объединим ячейки в заголовке и примечании таблицы. Выделите ячейки заголовка


таблицы, обведя их курсором мыши удерживая ЛКМ. Затем щелкните по выделению
ПКМ и в появившемся меню выберите пункт "Merge Cells" (Объединить ячейки) (рис.
24.9).

Рис. 24.9.

Проделайте аналогичную операцию с ячейками примечания. После выполнения


вышеперечисленных операций таблица примет вид (рис. 24.10):
Рис. 24.10.

Поместим в таблицу поля таблицы "Студенты". Для этого перетащите поля таблицы
"Студенты" с панели "Источники данных" (Data Sources) в ячейки правого столбца
таблицы, расположенные под заголовком, как показано на рис. 24.11. В одну ячейку
перетаскивается одно поле Поля связи, имеющие в своем имени слово "Код"
перетаскивать не нужно.

Рис. 24.11.
В левом столбце таблицы наберите имена полей и установите их выравнивание по
правому краю (Свойство TextAlign). В заголовке наберите заголовок отчета "Отчет
таблицы "Студенты"" и сделайте выравнивание текста в нем по центру (рис. 24.12).

Рис. 24.12.

Теперь выделим ячейки, отображающие поле "ФИО" серым цветом для логического
отделения одного студента от другого. Выделите вторую строку таблицы и на панели
свойств (Properties) в свойстве "BackColor" (Цвет фона) выберите серый цвет. Таблица
примет следующий вид (рис. 24.13).

Рис. 24.13.
Заключительным шагом в настройке таблицы будет включение отображения границ
ячеек. Выделите все ячейки с полями и подписями к ним. Затем на панели и нструментов
при помощи кнопки

включите границы выделенных ячеек таблицы (рис. 24.14).

Замечание: Если кнопка

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


границ отчетов (Report borders). Для этого щелкните ПКМ по панели инструментов и в
появившемся меню выберите пункт "Report borders".

Рис. 24.14.

Теперь создадим форму отображающую созданный отчет. Добавьте в проект новую


форму (Form7). Определите заголовок формы (Свойство Text) как "Отчет таблицы
"Студенты"".

Поместите на форму специальный объект, отображающий отчеты


"MicrosoftReportViewer", используя кнопку

расположенную на панели объектов (Toolbox). К объекту, отображающему отчеты


подключите, созданный ранее отчет. Для этого в меню действий в выпадающем списке
"Choose report" (Выберите отчет) выберите отчет "StudentsDB.Report1.rdlc".
Разверните объект, отображающий отчеты во всю форму. Для этого в меню действий
объекта выберите пункт "Dock in Parent Container" (Развернуть в родительский
контейнер). Меню действий примет вид (рис. 24.15):

Рис. 24.15.

Замечание: Обратите внимание на тот факт, что после подключения отчета к объекту,
отображающему отчеты, на панели невидимых объектов появились объекты связи,
подключающие отчет к таблице "Студенты" (рис. 24.16).

Рис. 24.16.

После выполнения всех вышеперечисленных действий форма, отображающая отчет


примет вид, представленный на рис. 24.17.
увеличить изображение
Рис. 24.17.

Проверим работоспособность нового отчета, подключив форму для его отображения к


кнопке на форме "Таблица "Студенты"". На форме, отображающей таблицу
"Студенты" создайте кнопку (Button9) (рис. 24.18).

Рис. 24.18.

Задайте надпись на кнопке (Свойство Text) равную "Отчет" (рис. 24.19).


Рис. 24.19.

Теперь определим код обработчика события нажатия кнопки. Дважды щелкните ЛКМ по
кнопке "Отчет" и в появившейся процедуре "Button9_Click" наберите команду
"Form7.Show()" (рис. 24.20).

увеличить изображение
Рис. 24.20.

Запустите проект и на главной кнопочной форме нажмите кнопку "Таблица


"Студенты"". На появившейся ленточной форме, отображающей таблицу "Студенты"
нажмите кнопку "Отчет". Появится новая форма с отчетом, построенным по таблице
"Студенты" (рис. 24.21).
увеличить изображение
Рис. 24.21.

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

На этом мы завершаем разработку нашей БД "Студент".

Вам также может понравиться