Чтение онлайн

на главную - закладки

Жанры

Интернет-журнал "Домашняя лаборатория", 2007 №4
Шрифт:

ListField • Имя поля в наборе записей, определенном свойством RowSource, которое используется для заполнения списка.

DataSource • Имя объекта управления данными, с которым связывается список.

DataField • Имя поля в наборе записей, определенном свойством DataSource. Это поле используется для определения, какой элемента списка выбран. После выбора элемента списка и перемещения указателя текущей записи на другую запись это поле будет обновлено.

BoundColumn • Имя поля в наборе записей,

определенном свойством RowSource, значение которого будет скопировано.

Поля определяемые свойствами DataField и BoundColumn, должны быть одного типа.

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

Будем использовать базу данных FRIENDS.MDB, которая была создана ранее при демонстрации некоторых возможностей приложения VisData в первой главе. Эта база данных состоит из двух таблиц: PERSON, в которой находится персональная информация о ваших знакомых, и WORKPLACE, содержащая сведения об их местах работы или учебы. Связь между таблицами осуществляется на основании содержимого совпадающих полей Id work.

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

Создайте новый проект и расположите на экранной форме два объекта управления данными, связанный список, связанное комбинированное окно, четыре метки и три текстовых окна, как показано на рис. 8.11.

Рис. 8.11. Расположение элементов управления на форме

В окне свойств первого объекта управления данными установите свойство DataBaseName как имя базы данных FRIENDS.MDB с указанием полного пути к файлу. Затем установите свойство RecordSource как PERSON. Использование кнопок со стрелками этого объекта управления даст возможность пользователю перемещаться от записи к записи в таблице PERSON. У второго объекта управления данными установите свойство DataBaseName аналогичным образом и определите источник записей как следующий SQL-запрос:

SELECT Idwork, Office FROM WORKPLACE ORDER BY Id_work.

В результате выполнения этого запроса будет создан набор записей, содержащий значения полей Id work и Office, и упорядоченный по полю Id work. В принципе, второй объект управления данными можно сделать невидимым, установив его свойство Visible в False, так как для работы нам потребуется только созданный им набор записей.

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

Label1.Caption=Имя

Label2.Caption=Фамилия

Label3.Caption=Идентификатор места работы

Label4.Caption=Обновление места работы

Text1.DataSource=Data1

Text1.DataField=Name

Text2.DataSource=Data1

Text2.DataField=LastName

Text3.DataSource=Data1

Text3.DataField= Idwork

DBList1.RowSource=Data2

DBList1.ListField=Office

DBList1.DataSource=Data1

DBList1.DataField=Id_work

DBList1.BoundColumn=ID_work

DBCombo1.RowSource=Data2

DBCombo1.ListField=Office

DBCombo1.DataSource=Data1

DBCombo1.DataField= Idwork

DBCombo1.BoundColumn=ID_work

Сохраните

и запустите проект (рис. 8.12). В связанных текстовых окнах на экранной форме будет отображаться содержимое полей Name, LastName и Id work из таблицы PERSON. Список и комбинированное окно заполнятся названиями мест работы из таблицы WORKPLACE, причем место работы человека, определенного содержимым текстовых окон, будет выделено в списке подсветкой. Перемещением по набору записей с помощью первого объекта управления данными установите указатель на запись, где вы хотите обновить место работы. Из списка или комбинированного окна выберите требуемое значение и нажмите какую-либо кнопку на первом объекте управления данными, чтобы переместить указатель текущей записи и произвести обновление данных. Теперь верните указатель на ту же запись и убедитесь что информация о месте работы изменена в соответствие со сделанным выбором.

Рис. 8.12. Результат работы приложения

Урок 9

Сетка (MSFIexGrid) и улучшенное текстовое окно (RichTextBox)

MSFIexGrid

ActiveX объект MSFIexGrid может применяться для отображения на экранной форме данных, представленных в табличном виде. Если сетка MSFIexGrid связана с базой данных, то данные используются в режиме только для чтения. Это значит, что вы можете проводить операции над содержимым ячеек таблицы, например, сложение, умножение, сравнение, слияние строк, вывод результатов в ячейки, но не можете обновить данные в базе данных. Для установки связи сетки MSFIexGrid с данными используется свойство DataSource, которое определяется как имя соответствующего объекта управления данными.

Чтобы добавить объект MSFIexGrid на панель инструментов, выполните команду меню Project — > Components и выберите из списка элементов управления (Controls) Microsoft FlexGrid Control и затем нажмите кнопку ОК.

После этого на панели инструментов появится новая пиктограмма -.

Свойства Row и Col объекта MSFIexGrid определяют положение текущей ячейки. Содержимое текущей ячейки доступно через свойство Text, то есть данные в таблице хранятся в текстовом виде. Этот факт не доставляет много хлопот, так как в Visual Basic есть функции преобразования строки в число и обратно. Если в ячейку требуется занести число, то необходимо использовать функцию преобразования числа в строку CStr, например:

MSFlexGrid1.Text=CStr(sum).

С другой стороны, при извлечении числа из текстового содержимого ячейки можно использовать функцию Val, например:

sum=sum + Val(MSFlexGrid1.Тext)

Свойства Rows и Cols позволяют определить количество строк и столбцов в сетке. Наличие заголовков у строк и столбцов можно установить с помощью свойств FixedRows и FixedCols. Содержимое заголовков определяется свойством FormatString. Например, следующей пример показывает, как установить заголовки столбцов сетки:

Поделиться:
Популярные книги

Темный Лекарь 7

Токсик Саша
7. Темный Лекарь
Фантастика:
попаданцы
аниме
фэнтези
5.75
рейтинг книги
Темный Лекарь 7

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

70 Рублей - 2. Здравствуй S-T-I-K-S

Кожевников Павел
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
постапокалипсис
5.00
рейтинг книги
70 Рублей - 2. Здравствуй S-T-I-K-S

Темный Лекарь 4

Токсик Саша
4. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 4

Камень. Книга шестая

Минин Станислав
6. Камень
Фантастика:
боевая фантастика
7.64
рейтинг книги
Камень. Книга шестая

Неверный

Тоцка Тала
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Неверный

Корсар

Русич Антон
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
6.29
рейтинг книги
Корсар

Орден Багровой бури. Книга 6

Ермоленков Алексей
6. Орден Багровой бури
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Орден Багровой бури. Книга 6

Венецианский купец

Распопов Дмитрий Викторович
1. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
7.31
рейтинг книги
Венецианский купец

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Плохая невеста

Шторм Елена
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Плохая невеста

Предопределение

Осадчук Алексей Витальевич
9. Последняя жизнь
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Предопределение