XpressQuantumGrid. Вопрос.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
sniff
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 24.02.2004 (Вт) 11:04

XpressQuantumGrid. Вопрос.

Сообщение sniff » 16.03.2004 (Вт) 16:01

Кто-нибудь работал с этой штукой?

Как к ней прикрутить в качестве данных рекордсет?
Я делаю запрос на SQL сервер, получаю рекордсет и ни как не могу совладать с этим контролом!

Помогите, кто может!

Dzhon
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 236
Зарегистрирован: 09.12.2003 (Вт) 13:30
Откуда: Россия, Омск

Сообщение Dzhon » 18.03.2004 (Чт) 10:02

Вообще-то с ним идет Help и куча примеров на VB, у меня он правда на диске с подборкой ActiveX компанентов т.е. не с Инета скачанный!

sniff
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 24.02.2004 (Вт) 11:04

Сообщение sniff » 18.03.2004 (Чт) 10:23

Если с сайта качать, то хелп есть, но куцый. :(

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: XpressQuantumGrid. Вопрос.

Сообщение codemaster » 19.03.2004 (Пт) 0:42

sniff писал(а):Кто-нибудь работал с этой штукой?

Как к ней прикрутить в качестве данных рекордсет?
Я делаю запрос на SQL сервер, получаю рекордсет и ни как не могу совладать с этим контролом!

Помогите, кто может!


В чем проблем?
естьвстроенный в грид ADODataset

dxDBGrid1.Dataset.ADODataset.......

или
через стандартный рекордсет

Dim RS As New Recordset
RS.Open ................................
Set dxDBGrid1.DataSource = RS

sniff
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 24.02.2004 (Вт) 11:04

Сообщение sniff » 19.03.2004 (Пт) 11:16

Вот-вот.. Через стандартный!

Супер! Спасибо большое. Я правда "допер" уже сам, но остаются неясными некоторые вопросы:

Предположим:

Dim RS As New ADODB.Recordset
Dim strKeyFieldName as String 'Название ключевого поля
RS.Open ................................
dxDBGrid1.DatasetType=dtADODataset
dxDBGrid1.Options.Set egoLoadAllRecords
Set dxDBGrid1.DataSource = RS
dxDBGrid1.KeyField=strKeyFieldName
dxDBGrid1.M.RetrieveFields

И все работает. А теперь вопрос:
1. Будет ли работать сортировка?
2. Как заставить группировать строки?
3. Такой грид связан с рекордсетом, но не связан с базой. И у меня он почему то ReadOnly. Как отловить событие редактирование ячейки и обработать его соответствующим образом, чтобы передать изменения в базу?

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 19.03.2004 (Пт) 12:51

sniff писал(а):И все работает. А теперь вопрос:
1. Будет ли работать сортировка?

включи egoAutoSort option или придется сортировать вручную

sniff писал(а):2. Как заставить группировать строки?


Что ты под этим понимаеш опиши подробнее

sniff писал(а):3. Такой грид связан с рекордсетом, но не связан с базой. И у меня он почему то ReadOnly.


Смотри как открыт рекордсет .
Options грида

sniff писал(а):Как отловить событие редактирование ячейки и обработать его соответствующим образом, чтобы передать изменения в базу?


смотри события грида Data Editing events
OnEdited Occurs after data editing within an in-place editor completes.
OnEditing Occurs before the state of the XpressQuantumGrid control changes to tsEditing.
OnGetEditText Occurs when activating an in-place editor.

sniff
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 24.02.2004 (Вт) 11:04

Сообщение sniff » 19.03.2004 (Пт) 13:43

2 Codemaster: Огромное спасибо! Только еще разбираюсь с контролом, а над душой стоят, требуют чтобы уже все было вчера. Поэтому такие тупые вопросы задаю:))

С группировкой разобрался.

С рекордсетом:
открываю его rst.CursorType=adOpenDynamic.
Но в гриде, в самой ячейке ничего не могу поменять, хотя
dxDBGrid1.Options.Set egoEditing

C редактированием ячеек:
по событию OnEditing передается Node, но как в нем понять, что за строка и что за столбец редактируется?

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 19.03.2004 (Пт) 14:29

sniff писал(а):С рекордсетом:
открываю его rst.CursorType=adOpenDynamic.
Но в гриде, в самой ячейке ничего не могу поменять, хотя
dxDBGrid1.Options.Set egoEditing


смотри пример Add Records из поставки Грида
простенько и со вкусом


sniff писал(а):
C редактированием ячеек:
по событию OnEditing передается Node, но как в нем понять, что за строка и что за столбец редактируется?


к примеру такDim ColumnHeader As dxGridColumn ' текущий ColumnHeader
Dim ColumnNodeFooter As dxGridColumn



Private Sub dxDBGrid1_OnMouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Single, ByVal y As Single)

Set ColumnHeader = dxDBGrid1.M.GetColumnAt(x, y)
Set ColumnNodeFooter = dxDBGrid1.M.GetNodeFooterColumnAt(x, y)
.....

End Sub

Ну а далее пользуй полученное в OnEditing

P.S. у меня есть вопрос к тебе см. личные
:wink:

sniff
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 24.02.2004 (Вт) 11:04

Сообщение sniff » 19.03.2004 (Пт) 18:58

Не могу справиться с проблемой редактирования:(((

Код: Выделить всё
xg.DatasetType = dtADODataset
Set xg.DataSource = rst
xg.KeyField = "Ключевое поле"
xg.Options.Set egoEditing
xg.M.RetrieveFields


Если я пытаюсь в коде изменить значение ячейки, поднимается ошибка, мол Dataset is read-only :evil:

И в run-time'е в ячейку ничего не внести.

Помогите, плззз!!! Горюююю!!!

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 22.03.2004 (Пн) 11:57

sniff писал(а):Не могу справиться с проблемой редактирования:(((

Код: Выделить всё
xg.DatasetType = dtADODataset
Set xg.DataSource = rst
xg.KeyField = "Ключевое поле"
xg.Options.Set egoEditing
xg.M.RetrieveFields


Помогите, плззз!!! Горюююю!!!


см свойство
rst.CursorLocation

sniff
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 24.02.2004 (Вт) 11:04

Сообщение sniff » 22.03.2004 (Пн) 13:16

Код: Выделить всё
rst.CursorLocation=adUseClient
rst.Open SQL_STRING,conn

xg.DatasetType = dtADODataset
Set xg.DataSource = rst
xg.KeyField = "Ключевое поле"
xg.Options.Set egoEditing
xg.M.RetrieveFields


Правда, в SQL_STRING запрос, типа "exec MyStoredProc param1, param2", может в этом дело?
Запрос, типа "select * from MyTable" и "exec MyNoParamsProcedure" проходят прекрасно, и редактировать я могу в гриде. Но если у процедуры (любой) есть параметры, то редактировать ячейки не могу. Фокус в них передается, но ввести что-либо невозможно.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

    TopList