Дата и MSHFlexGrid

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

Дата и MSHFlexGrid

Сообщение Чудик » 29.04.2005 (Пт) 14:33

Такая ситуация -
Один из столбцов Grid заполняется датами. Как можно их отсортировать? Проблема в том, что в таблице они рассматриваются контролом как текстовая информация и, соответственно, сортировка происходит не корректно. Заранее сортировать даты в БД нету возможности, так как даты берутся из нескольких таблиц.
Подкиньте идейку!
Век живи - век учись!
www.detal-plast.narod.ru

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

Сообщение Dzhon » 29.04.2005 (Пт) 14:43

Отсортировать RECORDSET, а потом заполнить GRID.
Ми..и...и...и..р Вашему дому.............

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 29.04.2005 (Пт) 14:51

даты берутся из нескольких рекодсетов.
Век живи - век учись!
www.detal-plast.narod.ru

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.04.2005 (Пт) 15:00

У грида есть событие Sort, советую обратить внимание на него.
Lasciate ogni speranza, voi ch'entrate.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 29.04.2005 (Пт) 15:05

alibek
Событие?
Скорее метод.
...
Гмм, проверил, действительно событие. Как же оно работает? :?
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.04.2005 (Пт) 15:10

В событии есть ByRef-аргумент с кодом возврата и два ByVal-аргумента с номерами сравниваемых строк. В коде надо сравнить и указать, какая больше, какая меньше. Все остальное делает грид.
Lasciate ogni speranza, voi ch'entrate.

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 29.04.2005 (Пт) 15:20

Alibek, чего-то не допонял. Можно на пальцах? С примером?
Век живи - век учись!
www.detal-plast.narod.ru

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.04.2005 (Пт) 15:29

Вначале надо сделать
Код: Выделить всё
MSHFlexGrid1.Sort = 9 'flexSortCustom

А затем вставить этот код:
Код: Выделить всё

Private Sub MSHFlexGrid1_Compare(ByVal Row1 As Long, ByVal Row2 As Long, Cmp As Integer)
Dim V1 As Variant, V2 As Variant
V1 = MSHFlexGrid1.TextMatrix(Row1, 1)
V2 = MSHFlexGrid1.TextMatrix(Row2, 1)
If V1 = V2 Then
  Cmp = 0
Else
  If V1 < V2 Then
    Cmp = -1
  Else
    Cmp = 1
  End If
End If
End Sub
Lasciate ogni speranza, voi ch'entrate.

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 29.04.2005 (Пт) 15:36

Соответственно V1 и V2 необходимо преобразовывать в тип даты, чтоб сравнивать? Или все и так работает хорошо?
Век живи - век учись!
www.detal-plast.narod.ru

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 29.04.2005 (Пт) 15:37

DateDiff(...) заюзай

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.04.2005 (Пт) 15:40

Можно DateDiff, можно привести к типу Date, как удобнее.
Lasciate ogni speranza, voi ch'entrate.

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 29.04.2005 (Пт) 15:45

Все! Спасибо за обрисовку всей картины.
Век живи - век учись!
www.detal-plast.narod.ru

АндрейБ
Бывалый
Бывалый
 
Сообщения: 276
Зарегистрирован: 18.12.2004 (Сб) 17:00
Откуда: Санкт-Петербург

Сообщение АндрейБ » 30.04.2005 (Сб) 12:17

Попробуй заполнять новую таблицу со своей сортировкой, а из нее заполнять MSFlexGrid. Мне это помогло организовать вывод не только сорировки, но и группировки!
Кто ищет, тот всегда найдет ...


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

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

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

    TopList