Juri Shutenko Personal Homepage. Visual FoxPro.

Microsoft Hierarchical FlexGrid. Первое знакомство.

Что это за зверь и с чем его едят? Что говорит по этому поводу MSDN? Элемент управления Microsoft Hierarchical FlexGrid (MSHFlexGrid) отображает табличные данные и оперирует с ними. Он предоставляет совершенную гибкость в сортировке, слиянии и форматирования таблиц, содержащих символьные строки и картинки. Когда его связывают с источником данных, MSHFlexGrid отображает данные с признаком "только для чтения". Главной особенностью элемента управления MSHFlexGrid является его способность отображать иерархические, связанные по наборам данных, таблицы в виде иерархий.

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

Начнем с простого. Если он еще не выбран у вас в качестве элемента, используемого по умолчанию в панели элементов ActiveX, выберите в основном меню Visual FoxPro пункт Tools и, затем, Options.

Options dialog box

Отметьте чек-бокс слева от Microsoft Hierarchical FlexGrid и щелкните по командной кнопке "Set As Default".

Теперь откройте новую форму в Конструкторе форм (Form Designer). В панели инструментов конструктора форм щелкните по кнопке библиотек классов, выберите ActiveX и когда доступные элементы появятся в панели, выберите кнопку Microsoft Hierarchical FlexGrid

Form Designer Toolbar

и перетащите его на форму, одновременно устанавливая пока произвольный размер. В итоге вы получите на форме объект Olecontrol1, который сразу переименуйте в ole_MSHFlexGrid, чтобы не путать с другими ActiveX.

Form with Microsoft Hierarchical FlexGrid

Итак,что мы имеем. Визуально это контейнер с четырьмя ячейками (по умолчанию), три из которых окрашены в серый цвет. Те, что окрашены в серый цвет представляют собой фиксированные строки и колонки. Фиксированные строки и колонки замечательны тем, что они остаются на своем месте при прокрутке самой решетки (здесь и далее решеткой я буду называть внутреннюю часть, которая представляет собой grid, что дословно переводится как решетка). Выберем наш ole_MSHFlexGrid и в методе, ассоциированном с его событием Init установим значение для двух свойств:

With This
   .Rows=4
   .Cols=4
Endwith

Пока более ничего не добавляя в форму сохраним ее, скажем с именем файла mshfg_learning.scx и запустим:

Rinning Form with Microsoft Hierarchical FlexGrid

Отметим, что выбрана первая ячейка, которая не принадлежит к фиксированным строкам и колонкам. Похожа на рабочий лист Excel, не так ли? Сделаем его еще более похожим, дописав несколько строк в Init

Excel Like

Ну это так, шалости. Этот ActiveX обладает фантастическими возможностями и, впервые использовав его несколько лет назад, я уже не могу отказаться от его использования для отображения, к примеру, перекрестных таблиц, что особенно удобно для вывода информации, например, о бюджете, когда он распределен на множество организаций и многого, многого другого. Он заслуживает того, чтобы быть с ним на ты!

Cелектор для быстрого перехода на сайты, связанные с Visual FoxPro.