s$ = "<Код товара |<Дата зак.|<Код покуп.|>Кол-во |<Наименов. товара|<Цена "
MSFlexGrid1.FormatString = s$
Заголовки строк сетки определяются аналогичным образом, только в начало строки необходимо поместить символ “точка с запятой”, который укажет сетке, что это именно заголовки строк:
s$ = Имя|Адрес|Телефон"
MSFlexGridl1.FormatString = s$
Получить или установить содержимое произвольной ячейки позволяет свойство TextArray. Это свойство имеет синтаксис:
MSFlexGrid1.TextArray(cellindex) [= string]
где string — текстовое содержимое ячейки, определенной аргументом cellindex. Аргумент cellindex представляет собой индекс ячейки в сетке и рассчитывается следующим образом. К номеру колонки произвольной ячейки прибавляется произведение ее номера строки на общее количество колонок в сетке, определенное свойством Cols. Для расчета аргумента cellindex удобно использовать следующую функцию:
Function GetCellIndex(row As Integer, col As Integer) As Long GetCellIndex = row*MSFlexGrid1.Cols + col End Function
При операциях со строками и колонками объекта MSFIexGrid следует помнить, что отсчет строк и колонок ведется не с единицы, а с нуля. Таким образом, первая строка сетки, в которой обычно находятся заголовки, на самом деле является нулевой строкой.
Для демонстрации использования объекта MSFlexGrid создадим приложение, предназначенное для просмотра полей базы данных, содержащей информацию о покупателях, сделанных ими заказах и товарах.
База данных CASTOMER.MDB включает в себя три таблицы:
Структуры таблиц базы данных показаны в следующих таблицах.
Поле ∙ Описание
Поле ∙ Описание
Поле ∙ Описание
Связь между таблицами осуществляется на основании значений совпадающих полей idcust и Idprod.
Создайте новый проект и расположите на форме два объекта управления данными, пять меток, четыре текстовых окна, командную кнопку и объект управления MSFIexGrid. Размещение объектов показано на рис. 9.1.
Рис. 9.1.
В окне свойств первого объекта управления данными установите свойство DataBaseName как имя базы данных CASTOMER.MDB. Затем определите свойство RecordSource этого объекта как CASTOMER. У второго объекта Data установите свойство DataBaseName аналогичным образом, а его свойство RecordSource определим позднее в коде программы и оно будет устанавливаться должным образом во время выполнения приложения. Этот объект можно сделать невидимым, установив его свойство Visible в False.
Определите свойства меток, текстовых окон и объекта MSFIexGrid следующим образом:
Label1.Caption=Имя
Label2.Caption=Фамилия
Label3.Caption=Предприятие
Label4.Caption=Код покупателя
Label5.Caption=Заказы
Text1.DataSource=Data1
Text1.DataField=Name
Text2.DataSource=Data1
Text2.DataField=LastName
Text3.DataSource=Data1
Text3.DataField=Concern
Text4.DataSource=Data1
Text4.DataField=Id_Cust
DataSource=Data2
FixedCols=0
FixedRows=1
Cols=2
Rows=2
Теперь установите свойство Caption командной кнопки как “Просмотр заказов” и добавьте в процедуру обработки нажатия кнопки следующий код: