Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic в примерах.docx
Скачиваний:
12
Добавлен:
18.08.2019
Размер:
1.1 Mб
Скачать

Сортировка и объединение данных с помощью элемента управления Hierarchical FlexGrid

Элемент Microsoft Hierarchical FlexGrid, сокращенно названный MS HFlexGrid, отображает данные в виде таблицы и позволяет манипулировать ими. Он хоро­шо подходит для сортировки, слияния и форматирования таблиц, содержащих как данные, так и картинки. Как было по­казано в предыдущей главе, сортировка и слияние производятся во время выпол­нения программы. К сожалению, будучи связан с элементом управления данными, MS HFlexGrid позволяет только отображать, но не изменять данные. Но даже при таком ограничении он остается отличным сред­ством для того, чтобы удобно представить большой объем информации, чего и ожидают от профессиональных программ.

Практикум - использование связанного элемента Hierarchical FlexGrid

  1. Начните новый проект. Убедитесь, что на панели инструментов присутствует ADO-элемент управления, и в дополнение к нему поместите туда же элемент Hierarchical FlexGrid (строка Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB) в диалоговом окне Components).

  2. Расположите на форме ADO-элемент управления данны­ми и элемент MS HFlexGrid.

  1. Установите свойство ConnectionString для элемента управления данными, как описывалось выше. Затем присвойте свойству CoimandType на странице свойств RecordSource значение 2 - adCmdTable, а свойству Table значение Titles. Устано­вите также значение свойства Visible в False. Это сделает ADO-элемент управле­ния данными невидимым во время выполнения программы. Навигация по набору записей будет осуществляться с помощью полос прокрутки. (Если вы забыли, как устанавливать все эти свойства, посмотрите предыдущие примеры.)

  2. Установите свойство DataSource равным Adodcl. Щелкните правой кнопкой мыши по таблице и из появившегося контекстного меню выберите пункт Retrieve Structure (Структура представления отобранных записей). В табличном поле будет показана структура таблицы базы данных. Поскольку в строке соединения элемента Adodcl вы указали таблицу Titles, именно ее структура и отображается

  3. Щелкните правой кнопкой мыши по элементу MS HFlexGrid и выберите из меню пункт Properties, чтобы открыть диалоговое окно Property Pages (Страницы свойств). На вкладке General задайте Fixed Cols равным 0. Это уберет самую левую пустую колонку из таблицы. Затем измените значение свойства AllowUserResizing на пункт 3 - Both (см. рис.), что позволит изменять ширину колонок во время ра­боты программы

  1. Далее откройте вкладку Bands. Вероятно, вы хотите сгруппировать некоторые поля, но если оставите колонку Title первой в таблице, никакого сведения не получит­ся. Причина в том, что это поле уникально. Необходимо подобрать такое поле, кото­рое позволит сгруппировать записи с одинаковыми значениями в нем. Выделите строку PubID в колонке Column Caption и с помощью кнопки со стрелкой вверх пе­реместите эту строку в первую позицию. Таблица будет выглядеть более привлека­тельно, если изменить значение свойства Gridlines (Линии сетки) на пункт 2 – Inset. Щелкните по кнопке ОК.

  1. Чтобы элемент управления действительно заработал, придется написать несколь­ко строк кода для установки дополнительных свойств. В обработчик события Form_Activate добавьте приведенный ниже код:

Private Sub Form_Activate()

Dim iIndex As Integer

With MSHFlexGrid1

.Row = 0

For iIndex = 0 To .Cols - 1

.Col = iIndex

.CellAlignment = 4

.MergeCol(iIndex) = True

Next

.Col = 0

.ColSel = .Cols - 1

.Sort = flexSortGenericAscending

.MergeCells = flexMergeRestrictColumns

End With

End Sub

  1. Приведенный выше код просто конфигури­рует первую строку в цикле For. . .Next. Сначала устанавливается индекс строки 0, а затем в цикле перебираются все колон­ки таблицы. Для каждой из них свойство CellAlignment (Выравнивание) устанав­ливается в 4, что означает «выравнива­ние по правой границе», После выхода из цикла вы устанавливаете свойство Sort в flexSortGenericAscending,что значит «сортировка общего вида (по возрастанию)». Затем поруча­ете элементу управления сводить записи, имеющие одно и то же значение поля в первой колонке.

  2. Запустите программу.

Как видите - это очень мощный элемент управления - для получения програм­мы достаточно пары щелчков мышью и нескольких строк кода. MS HFlexGrid иде­ально подходит для тех случаев, когда вам нужно только отобразить несколько записей одновременно. Поработав с примером, вы, вероятно, сами оценили его возможности. Свойства, управляющие сортировкой и слиянием, позволяют полу­чить весьма привлекательный интерфейс. Заметьте: сгруппированы все книги, опубликованные издательством, у которых совпадает PubID. Также видна группировка по году издания.

Связанный элемент управления MS HFlexGrid очень похож на стандартный элемент «таблица». Однако с помощью MS HFlexGrid допускается установить свойство DataSource, так что элемент управления данными будет автоматичес­ки наполнять «таблицу» информацией. К тому же, возможности, которые рас­сматриваемый элемент имеет для выполнения сортировки и объединения данных, делают его вполне профессиональным инструментом для отображения несколь­ких записей. Заголовки колонок автоматически устанавливаются в соответствии с именами полей в наборе записей. По сути элемент MS HFlexGrid представляет собой просто фиксированный набор колонок, каждая из которых имеет неопреде­ленное число строк.

Что общего у всех элементов управления

Познакомившись с некоторыми из связанных элементов управления, вы, на­верное, отметили общую для них характеристику: все они подчинены элементу управления данными. Элемент управления данными отвечает за соединение с ин­формационной базой и доступ к источнику записей. Затем вы ассоциируете (свя­зываете) элемент, который будет отображать сведения, с элементом управления данными. Этот сравнительно несложный процесс вкупе с богатым арсеналом эле­ментов управления в Visual Basic 6.0 дает программисту большие возможности для обработки и представления данных.

Резюме

Как вы теперь знае­те, есть два элемента управления данными: старый, хорошо зарекомендовавший себя DAO-элемент, встроенный в Visual Basic, и новый ADO-элемент, являю­щийся одной из ключевых концепций будущей стратегии доступа к данным из VB-программ. Вы поэкспериментировали и с тем, и с другим.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]