Проектирование информационных систем в Microsoft SQL Server 2008 и Visual Studio 2008

Создание табличных форм

Разбить на страницы
Показывать лекцию целиком

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

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

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

  • четыре надписи ( Label ),
  • пять кнопок ( Button ),
  • выпадающий список ( ComboBox ),
  • текстовое поле ввода ( TextBox ),
  • группирующую рамку ( GroupBox ),
  • список ( ListBox ),
  • два переключателя ( RadioButton ).
  • Расположите объекты как показано на рис 22.1.

    (рис 22.1)

    Добавим на форму таблицу для отображения данных ( расположенную справа от таблицы ).

    (рис 22.2)

    Перетащите таблицу ):

    (рис 22.3)

    Обратите внимание на то, что на форме появилась таблица для отображения данных, подключенная к таблице ).

    (рис 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 (Истина).

    Заполните список ( , а затем нажмите кнопку "Ok".

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

    (рис 22.6)

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

    (рис 22.7)

    В окне . Для закрытия окна редактирования полей, и сохранения изменений нажмите кнопку "Ok".

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

    (рис 22.8)

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

    (рис 22.9)

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

    (рис 22.10)

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

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

    (рис 22.11)

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

    (рис 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" наберите код: ).

    (рис 22.13)

    ), которое определяет условие фильтрации. Условие фильтрации имеет синтаксис: ).

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

    (рис 22.14)

    Заметим, что если присвоить свойству ).

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

    (рис 22.15)

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

  • Первый блок For i=0…..Next i. перебирает все ячейки таблицы и устанавливает в них белый цвет фона и черный цвет текста. То есть, отменяет результаты предыдущего поиска;
  • Второй блок For i=0…..Next i. перебирает все ячейки таблицы и если они содержат текст, введенный в поле ввода ( TextBox1 ), то устанавливает в них голубой цвет фона и синий цвет текста, чем выделяет искомые ячейки.
  • Наконец рассмотрим код для кнопки "Закрыть". Дважды щелкните ЛКМ по этой кнопке и в появившейся процедуре "Button5_Click" наберите команду ).

    (рис 22.16)

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

    (рис 22.17)

    Задайте надпись у новой кнопки (свойство ):

    (рис 22.18)

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

    (рис 22.19)

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

    (рис 22.20)

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

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

    (рис 22.21)

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

    Страницы:

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

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

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

  • четыре надписи ( Label ),
  • пять кнопок ( Button ),
  • выпадающий список ( ComboBox ),
  • текстовое поле ввода ( TextBox ),
  • группирующую рамку ( GroupBox ),
  • список ( ListBox ),
  • два переключателя ( RadioButton ).
  • Расположите объекты как показано на рис 22.1.

    (рис 22.1)

    Добавим на форму таблицу для отображения данных ( расположенную справа от таблицы ).

    (рис 22.2)

    Перетащите таблицу ):

    (рис 22.3)

    Обратите внимание на то, что на форме появилась таблица для отображения данных, подключенная к таблице ).

    (рис 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 (Истина).

    Заполните список ( , а затем нажмите кнопку "Ok".

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

    (рис 22.6)

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

    (рис 22.7)

    В окне . Для закрытия окна редактирования полей, и сохранения изменений нажмите кнопку "Ok".

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

    (рис 22.8)

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

    (рис 22.9)

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

    (рис 22.10)

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

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

    (рис 22.11)

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

    (рис 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" наберите код: ).

    (рис 22.13)

    ), которое определяет условие фильтрации. Условие фильтрации имеет синтаксис: ).

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

    (рис 22.14)

    Заметим, что если присвоить свойству ).

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

    (рис 22.15)

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

  • Первый блок For i=0…..Next i. перебирает все ячейки таблицы и устанавливает в них белый цвет фона и черный цвет текста. То есть, отменяет результаты предыдущего поиска;
  • Второй блок For i=0…..Next i. перебирает все ячейки таблицы и если они содержат текст, введенный в поле ввода ( TextBox1 ), то устанавливает в них голубой цвет фона и синий цвет текста, чем выделяет искомые ячейки.
  • Наконец рассмотрим код для кнопки "Закрыть". Дважды щелкните ЛКМ по этой кнопке и в появившейся процедуре "Button5_Click" наберите команду ).

    (рис 22.16)

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

    (рис 22.17)

    Задайте надпись у новой кнопки (свойство ):

    (рис 22.18)

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

    (рис 22.19)

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

    (рис 22.20)

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

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

    (рис 22.21)

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

    Вернуться к учебному плану