Что это за зверь и с чем его едят? Что говорит по этому поводу MSDN?
Элемент управления Microsoft Hierarchical FlexGrid (MSHFlexGrid) отображает табличные данные и оперирует с ними. Он предоставляет совершенную гибкость в сортировке, слиянии и форматирования таблиц, содержащих символьные строки и картинки. Когда его связывают с источником данных, MSHFlexGrid отображает данные с признаком "только для чтения". Главной особенностью элемента управления MSHFlexGrid является его способность отображать иерархические, связанные по наборам данных, таблицы в виде иерархий.
Судя по некоторым вопросам в форумах, элемент этот интересен многим. Для многих остается только не совсем понятным, как с ним работать... Поэтому я постараюсь показать все его мощь, расскажу о его свойствах,методах и событиях и дам базовые примеры обращения с этим интресеным ActiveX.
Начнем с простого. Если он еще не выбран у вас в качестве элемента, используемого по умолчанию в панели элементов ActiveX, выберите в основном меню Visual FoxPro пункт Tools и, затем, Options.
Отметьте чек-бокс слева от Microsoft Hierarchical FlexGrid и щелкните по командной кнопке "Set As Default".
Теперь откройте новую форму в Конструкторе форм (Form Designer). В панели инструментов конструктора форм щелкните по кнопке библиотек классов, выберите ActiveX и когда доступные элементы появятся в панели, выберите кнопку Microsoft Hierarchical FlexGrid
и перетащите его на форму, одновременно устанавливая пока произвольный размер. В итоге вы получите на форме объект Olecontrol1, который сразу переименуйте в ole_MSHFlexGrid, чтобы не путать с другими ActiveX.
Итак,что мы имеем. Визуально это контейнер с четырьмя ячейками (по умолчанию), три из которых окрашены в серый цвет. Те, что окрашены в серый цвет представляют собой фиксированные строки и колонки. Фиксированные строки и колонки замечательны тем, что они остаются на своем месте при прокрутке самой решетки (здесь и далее решеткой я буду называть внутреннюю часть, которая представляет собой grid, что дословно переводится как решетка). Выберем наш ole_MSHFlexGrid и в методе, ассоциированном с его событием Init установим значение для двух свойств:
With This
.Rows=4
.Cols=4
Endwith
Пока более ничего не добавляя в форму сохраним ее, скажем с именем файла mshfg_learning.scx и запустим:
Отметим, что выбрана первая ячейка, которая не принадлежит к фиксированным строкам и колонкам. Похожа на рабочий лист Excel, не так ли? Сделаем его еще более похожим, дописав несколько строк в Init
Ну это так, шалости. Этот ActiveX обладает фантастическими возможностями и, впервые использовав его несколько лет назад, я уже не могу отказаться от его использования для отображения, к примеру, перекрестных таблиц, что особенно удобно для вывода информации, например, о бюджете, когда он
распределен на множество организаций и многого, многого другого. Он заслуживает того, чтобы быть с ним на ты!
|