Страница: 1 |
Страница: 1 |
Вопрос: "Пример с использованием FlexGridPlus?"
Добавлено: 02.07.07 18:26
Автор вопроса: Sadhak | ICQ: 193242193
"Добрый день All. Очень заманчивый мануал к творению Ковалева Сергея,
а вот примерчик бы, для быстрого освоения?
Многое из того что применял к MSFlexGrid для него не подходит.
Желательно примерчкик с использованием этих процедур:
SaveToDatabase(DataBaseName, TableName)
SaveColumnToDatabase(DataBaseName, TableName,Column)
LoadFromDatabase(DataBaseName, TableName)
LoadColumnFromDatabase(DataBaseName, TableName, ColumnName, Column)
Вообще казалось бы, - тут всё ясно, но не работает...
Может вообще, что не так делал...
Кто подружился с этим контролом, - помогите пожалуйста примерчиком! Очень уж надо. Заранее благодарен."
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #1
Добавлено: 03.07.07 13:19
У меня вот ридми с ним был:
Итак что нового:
TextEdit=true позволяет вводить текст в ячейки
Свойство FormatString позволяет задать формат вводимого текста. Если FormatString=1, то в ячейки можно вводить только числа и десятичные точки.
Свойство Scrool определяет будет ли сетка прокручиваться, если запрашиваемая ячейка не попадает в поле видимости. Например если строка 10 в данный момент не видна на экране (скажем последняя видимая строка 8), то написав Row=10 сетка прокрутиться и последней видимой строкой станет 10.
Свойство MouseRowColChange=1 позволяет осуществлять переход между ячейками не только при щелчке левой кнопки мыши, но и правой.
Функция Eval позволяет вычислять текстовые выражения. Например Eval("5+5"=10.
Теперь по поводу свойств отдельных ячеек
Раньше, чтобы установить свойство отдельной ячейки (например цвет фона у ячейки (1,1)) нужно было сделать так
With MSFlexGrid1
.Row=1
.Col=1
.CellBackColor = vbRed
End With
Теперь я добавил набор Cells и это можно сделать так:
FlexGridPlus1.Cells(1,1).BackColor=vbRed
Также я добавил набор Selection, чтобы работать с выделенной областью ячеек
Пользователь может выделить область мышкой или это можно сделать программно:
With FlexGridPlus1
' выделяем набор ячеек
.SelectRC 1, 1, 10, 10
' присваиваем цвет фона этим ячейкам
.Selection.BackColor=vbRed
' Возвращаем фокус в прежнее состояние
.EndSelect
End With
Также в набор Selection я добавил процедуры CopyToClipboard (скопировать в буфер), PasteFromClipboard (вставить из буфера, причем, если выделена только одна ячейка, то таблица вставляется полностью) и функцию Sum (возвращает сумму значений выделенных ячеек).
Ну а теперь по поводу баз данных:
В свойство DataColSize(index) записывается размер колонки (в символах) в базе данных. По умолчанию он принимается равным 20.
Свойство DataColName(index) содержит название колонок в базе данных. По умолчанию принимается "Поле1", "Поле 2" и т.д. Если сетка содержит фиксированную строку, то значение этого свойства будет приниматься из текста соответствующих колонок этой строки (конечно если эти колонки заполнены). Например, если FixedRows=1 и мы вводим TextMatrix (0,1)="Колонка", то и DataColName(1) автоматически примет значение "Колонка".
Функция IsTableExist(DataBaseName, TableName) определят существует ли указанная таблица в указанной базе данных. Если такой базы данных нет или нет такой таблицы, то возвращается false.
Процедура SaveToDatabase(DataBaseName, TableName) записывает всю таблицу в базу данных. Если указанной базы данных или таблицы не существует, то она их создает. Если таблица существует, но не существует некоторых колонок, то она просто их добавляет.
Процедура SaveColumnToDatabase(DataBaseName, TableName,Column) записывает в базу данных указанную колонку из FlexGridPlus.
Процедура LoadFromDatabase(DataBaseName, TableName) считывает таблицу из базы данных.
Процедура LoadColumnFromDatabase(DataBaseName, TableName, ColumnName, Column) считывает колонку из базы данных, где ColumnName - название колонки в базе данных, Column - номер колонки в FlexGridPlus.
Номер ответа: 2
Автор ответа:
Sadhak
ICQ: 193242193
Вопросов: 2
Ответов: 10
Профиль | | #2
Добавлено: 04.07.07 09:21
Эта хелпа и у меня есть. Я вот например немогу понять в каком формате в процедуру LoadFromDatabase(DataBaseName, TableName) DataBaseName - подать... Если например так:
LoadFromDatabase(db , "tblMain"
не лезет... Говорит несоответствие типов, елси вот так:
LoadFromDatabase(App.Path & "\accessBD.mdb", "tblMain"
анологично...
Вот и хотел бы посмотреть как это в реал?...
Номер ответа: 3
Автор ответа:
Sadhak
ICQ: 193242193
Вопросов: 2
Ответов: 10
Профиль | | #3
Добавлено: 04.07.07 09:49
Эта хелпа и у меня есть. Непонятно в каком виде в процедуру LoadFromDatabase(DataBaseName, TableName) DataBaseName - подать... Если например так:
LoadFromDatabase(db , "tblMain"
Вот и хотел бы посмотреть как это в реальности выглядит?...
Номер ответа: 4
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #4
Добавлено: 04.07.07 10:31
Прекрасно все сохраняет.
Надо только убрать скобки - это не функция
Номер ответа: 5
Автор ответа:
Sadhak
ICQ: 193242193
Вопросов: 2
Ответов: 10
Профиль | | #5
Добавлено: 04.07.07 10:56
Ок. А с какой DB дружит? C *.mdb Access2000 не хочет - говорит нераспознанный формат...
Примерчика, всё-таки нет? Есть тут нюансы ешо, не могу например в AddItem загнать так как в MSFlexGrid, мож что сменилось (может разделитель там был vbTab)...
Номер ответа: 6
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #6
Добавлено: 04.07.07 12:08
Я открывал из 2003, формат там вроде 97
Примерчика нет, я не пользуюсь этим гридом.
Номер ответа: 7
Автор ответа:
Sadhak
ICQ: 193242193
Вопросов: 2
Ответов: 10
Профиль | | #7
Добавлено: 04.07.07 12:14
Аналогично, но у меня не открывает... . "Нераспознанный формат
данных"...
Номер ответа: 8
Автор ответа:
Sadhak
ICQ: 193242193
Вопросов: 2
Ответов: 10
Профиль | | #8
Добавлено: 10.07.07 09:24
Всем спасибо. Решение найдено. Тема закрыта.