Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Программное управление информационной системой
В Visual Studio 2008 добавлять, удалять записи и перемещаться по ним можно как используя объект Navigator, так и используя обычные кнопки. Рассмотрим создание кнопок для управления записями. В Visual Studio 2008 отсутствует объект " RecordSet" все операции с записями осуществляются с использованием объекта " BindingSource". В Visual Basic 2008 для добавления новой записи из таблицы " Студенты" используется команда вида СтудентыBindingSource.AddNew. Вместо метода AddNew можно использовать методы:
У объекта BindingSource имеется свойство Filter. Оно аналогично Filter у объекта RecordSet в Visual Basic 6.0. Его использование ничем не отличается от исполнения такого же свойства в Visual Basic 6.0. То есть в свойстве Filter задаётся строка, определяющая условие отбора записей в динамических фильтрах, выполняемых на стороне клиента. Данная строка имеет следующий синтаксис: < Поле1> < Оператор1> < Выражение1> [AND|OR < Поле2> < Оператор2> < Выражение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. Модернизируем форму для таблицы " Студенты". Сначала программно продублируем кнопки панели навигации, расположенной в верхней части формы. Откройте проект " StudentsDB" и отобразите форму таблицы студенты ( Form4 ). В нижней части формы расположите семь кнопок, как это показано на рис. 1. Рис. 1. В качестве надписей на созданных кнопках (Свойство " Caption" ) задайте как: " Первая", " Предыдущая", " Добавить", " Последняя", " Следующая", " Удалить" и " Сохранить" (рис. 2). Рис. 2. Дважды щелкните ЛКМ по кнопке " Первая" и в появившемся окне кода формы " Form4" в процедуре " Button1_Click" наберите команду для перехода к первой записи " СтудентыBindingSource.MoveFirst()" (рис. 3). Рис. 3. Дважды щелкните ЛКМ по кнопке " Предыдущая" и в появившемся окне кода формы " Form4" в процедуре " Button2_Click" наберите команду для перехода к предыдущей записи " СтудентыBindingSource.MovePrevious()" (рис. 4). Рис. 20.4. Дважды щелкните ЛКМ по кнопке " Добавить" и в появившемся окне кода формы " Form4" в процедуре " Button3_Click" наберите команду для добавления новой записи " СтудентыBindingSource.AddNew()" (рис. 5). Рис. 5. Дважды щелкните ЛКМ по кнопке " Последняя" и в появившемся окне кода формы " Form4" в процедуре " Button4_Click" наберите команду для перехода к последней записи " СтудентыBindingSource.MoveLast()" (рис. 6). Рис. 6. Дважды щелкните ЛКМ по кнопке " Следующая" и в появившемся окне кода формы " Form4" в процедуре " Button5_Click" наберите команду для перехода к следующей записи " СтудентыBindingSource.MoveNext()" (рис. 7). Рис. 7. Дважды щелкните ЛКМ по кнопке " Удалить" и в появившемся окне кода формы " Form4" в процедуре " Button6_Click" наберите команду для удаления текущей записи " СтудентыBindingSource.RemoveCurrent()" (рис. 8). Рис. 8. Дважды щелкните ЛКМ по кнопке " Сохранить" и в появившемся окне кода формы " Form4" в процедуре " Button7_Click" наберите команду для сохранения изменений, отображенную на рис. 9. Рис. 9. Рассмотрим последнюю процедуру более подробно. Она содержит следующие команды:
Для проверки работы созданных кнопок запустите проект откройте форму " Таблица " Студенты" " и нажмите каждую из кнопок. Теперь изменим объекты, отображающие поля для более удобного ввода информации. Для начала удалите текстовые поля ввода ( TextBox ), отображающие следующие поля таблицы " Студенты": " Пол", " Родители", " Телефон", " Паспортные данные", " Номер зачетки", " Курс" и " Код специальности". После удаления, перечисленных полей форма, отображающая таблицу " Студенты" примет следующий вид (рис.10): Рис. 10. Для отображения полей " Телефон", " Паспортные данные" и " Номер зачетки" будем использовать текстовые поля ввода по маске ( MaskedTexBox ). Объект текстовое поле ввода по маске отсутствует в выпадающем списке объектов для отображения полей в окне " Источники данных", поэтому будем создавать данные объекты при помощи панели объектов ( Toolbox ), а затем подключать их к соответствующим полям вручную. Для создания текстовых полей ввода по маске на панели объектов используется кнопка
Создайте текстовые поля ввода по маске справа от надписей " Телефон", " Паспортные данные" и " Номер зачетки", как это показано на рис. 11. Рис. 11. Теперь у созданных объектов настроим маски ввода. Начнем с объекта, отображающего номер зачетки. На форме выделите соответствующее полю " Номер зачетки" текстовое поле ввода по маске. Для задания маски в меню действий с объектом выберите пункт " Set Mask…" (Установить маску…) (рис. 12). Рис. 12. После выбора пункта " Set Mask…" на экране появится окно задания маски " Input Mask" (Введите маску) (рис. 13). Рис. 13. В окне " Input Mask" выберите маску " Numeric (5-digits)" (Числовое (5-цифр)) и нажмите кнопку " Ok" (рис. 13). Для текстового поля ввода по маске для поля " Паспортные данные" задайте маску как показано на рис. 14. Рис. 14. Замечание: Обратите внимание, что паспортные данные отображаются как четыре числа, тире, шесть чисел. То есть в поле " Mask" (Маска) нужно задать " 0000-000000". Знак " 0" обозначает цифру. В поле " Preview" (Предварительный просмотр) отображается вид текстового поля ввода по маске на форме. После определения маски для поля " Паспортные данные" в окне " Input Mask" нажмите кнопку " Ok". Теперь зададим маску для текстового поля ввода по маске отображающего поле " Телефон". Задайте маску как показано на рис. 15. Рис. 15. Теперь нам необходимо подключить созданные текстовые поля ввода по маске к соответствующим полям. Для этого с панели " Источники данных" (DataSources) перетащите поле " Номер зачетки" на текстовое поле ввода по маске, расположенное справа от надписи " Номер зачетки". Проделайте такую же операцию с полями " Паспортные данные" и " Телефон", перетащив их на соответствующие им текстовые поля ввода по маске. На этом мы заканчиваем работу с текстовыми полями ввода по маске и переходим к отображению поля " Курс" при помощи числового счетчика (объект NumericUpDown ). Для этого, на панели " Источники данных" нажмите кнопку, расположенную справа от поля " Курс" и в выпадающем списке выберите объект для отображения данного поля как " NumericUpDown" (рис. 16). Рис. 16. Затем перетащите поле на форму мышью, расположив, его справа от надписи " Курс". Замечание: После перетаскивания поля " Курс" на форму слева от него появится еще одна надпись " Курс". Удалите ее, щелкнув по ней ЛКМ, а затем нажав кнопку " Delete" на клавиатуре. Отобразим поля " Пол" и " Родители" в виде выпадающих списков (Объект ComboBox ). Для этого, на панели " Источники данных" нажмите кнопку, расположенную справа от поля " Пол" и в выпадающем списке выберите объект для отображения данного поля как " ComboBox" (рис. 17). Рис. 17. Такую же операцию проделайте с полем " Родители". Затем перетащите мышью поля на форму, расположив их напротив соответствующих надписей. Удалите лишние надписи. Теперь заполним выпадающие списки. Выделите выпадающий список, отображающий поле " Пол". На панели свойств ( Properties ) и нажмите кнопку в свойстве " Items" (Элементы списка). Появится окно " String Collection Editor" (Редактор строковых коллекций) (рис. 18). Рис. 18. В появившемся окне в отдельных строках наберите элементы выпадающего списка: " Мужской" и " Женский" (рис. 18). Затем нажмите кнопку " Ok". Для выпадающего списка, отображающего поле " Родители", проделайте аналогичную операцию, только в качестве пунктов списка задайте: " Отец и Мать", " Мать", " Отец" и " Нет" (рис. 19). Рис. 19. В заключение отобразим вместо поля " Код специальности" специальность соответствующую заданному коду, при помощи выпадающего списка. При этом сам выпадающий список будет заполнен специальностями из таблицы " Специальности" и при выборе специальности ее код будет автоматически подставляться в поле " Код специальности" таблицы " Студенты". Поместите справа от надписи " Код специальности", неподключенный ни к каким полям выпадающий список. Для создания выпадающего списка на панели объектов воспользуйтесь кнопкой
После создание выпадающего списка подключим его к полю " Код специальности" из таблицы " Студенты" и настроим заполнение списка значениями поля " Наименование специальности" из таблицы студенты. Для этого выделите вновь созданный выпадающий список, отобразите меню действий и в меню действий включите опцию " Use data bound items" (Использовать связанные с данными элементы списка) (рис. 20). Рис. 20. В панели действий под опцией " Use data bound items" расположены следующие параметры:
Для изменения параметров необходимо нажать кнопку
в нутрии поля параметра. Появится древовидная структура выбора источника данных (рис. 21). Рис. 21. В нашем случае зададим вышеперечисленные параметры следующим образом: · Параметр " DataSource" задайте как " Other Data Sources\Project Data Sources\StudentsDataSet\Специальности"; · Параметр " DataMember" задайте как " Наименование специальности"; · Параметр " Value Member" задайте как " Код специальности"; · Параметр " Selected Value" задайте как " СтудентыBindingSource\Код специальности". После задания всех вышеперечисленных параметров панель действий выпадающего списка примет вид (рис. 22): Рис. 22.
Обратите внимание на то, что на панели невидимых объектов, расположенной в нижней части рабочей области среды разработки, появилось два новых объекта: " СпециальностиBindingSource" и " СпециальностиTableAdapter" (рис. 23). Рис. 23. Данные объекты предназначены для заполнения выпадающего списка значениями поля " Наименование специальности" таблицы " Специальности". После всех вышеперечисленных действий форма, отображающая таблицу " Студенты" примет вид, представленный на рис. 24.
Рис. 24. Проверим работу формы, отображающей таблицу " Студенты". Запустите проект и на главной кнопочной форме нажмите кнопку " Таблица " Студенты" ". Появится форма, имеющая следующий вид (рис. 25): Рис. 25. На этом мы заканчиваем работу с формой, отображающей таблицу " Студенты" и переходим к реализации вычислимых полей. Для этого рассмотрим форму, отображающую таблицу " Оценки" (Form5). Рассмотрим вычисление поля " Средний балл" на основе среднего трех полей: Отобразите форму для таблицы " Оценки", щелкнув ЛКМ по ее вкладке в верхней части рабочей области среды разработки. На форму, справа от поля " Средний балл" поместите кнопку (рис. 26). Рис. 26. Задайте свойство " Text" у вновь созданной кнопки как " Вычислить" (рис. 27). Рис. 27. Теперь дважды щелкните ЛКМ по кнопке " Вычислить" и в появившемся коде процедуры " Button1_Click" наберите код, представленный на рис. 28, вычисляющий среднее оценок.
Теперь проверим, как работает наша вновь созданная кнопка для вычисления поля " Средний балл". Запустите проект и на главной кнопочной форме нажмите кнопку " Таблица " Оценки" ". Появится форма, отображающая таблицу " Оценки", на форме нажмите кнопку " Вычислить". Будет вычислен средний балл по оценкам. Если нажать кнопку сохранения на панели инструментов формы
то средний балл будет сохранен в таблицу " Оценки" (рис. 29). Рис. 29.
Популярное:
|
Последнее изменение этой страницы: 2016-08-31; Просмотров: 747; Нарушение авторского права страницы