Спонсор: Microsoft
Опубликован: 22.11.2010 | Доступ: свободный | Студентов: 4098 / 1007 | Оценка: 4.44 / 4.34 | Длительность: 09:23:00
Лекция 10:

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

Аннотация: Рассматривает стандартные объекты для отображения данных и программное управление информационной системой

Цели:

  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" .

Татьяна Казакова
Татьяна Казакова
Олег Андриевский
Олег Андриевский

Также весьма интересен фильтр данных, вводимый вручную:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If Trim(TextBox1.Text) = "" Then
            Me.СтудентыBindingSource.RemoveFilter()
        Else
            Me.СтудентыBindingSource.Filter = String.Format("{0} LIKE '{1}%'", "ФИО", Trim(TextBox1.Text))
        End If
    End Sub

Андрей Ерохин
Андрей Ерохин
Россия, Москва
Александр Мельников
Александр Мельников
Россия