Сортировка в FlexGrid

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

Сортировка в FlexGrid

Сообщение Чудик » 08.03.2005 (Вт) 10:10

Допустим, есть два столбца. В первом - наименование продукции, во-втором - ед.изм. Наименование каждой продукции записывается в таблицу два раза (т.е для каждого наименования отводится две строки таблицы - так надо), при этом ед.изм. есть только у первого записанного наименования продукции.
При сортировке нужно, чтобы то наименование, которое без ед.изм. распологалось ниже наименования с ед.изм. У меня получается по разному - то продукция с ед.изм с верху, то с низу по отношению к к другой записи.
Как добиться требуемого?
Выручайте, завтра прогу на презентацию вести.
Век живи - век учись!
www.detal-plast.narod.ru

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

Сообщение Чудик » 08.03.2005 (Вт) 10:53

Тема закрыта, догнал.
Век живи - век учись!
www.detal-plast.narod.ru

Андрей Васюта
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 91
Зарегистрирован: 20.07.2004 (Вт) 19:40

Сообщение Андрей Васюта » 08.03.2005 (Вт) 14:52

Нашел ответ на вопрос, так поделись с другими.Чтобы лишний раз не спрашивали. :P
Большой программе - большие глюки.

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

Сообщение Чудик » 09.03.2005 (Ср) 13:13

Хорошо!
Во-первых организовал сортировку в FlexGrid по двум столбцам установкой свойства Col (с какого столбца) и ColSel (по какой столбец сортировать). Сортировка производится поочередно слева направо.
Так сортировало чуть не так как хотел - строки без ед.изм. были выше строк с ед.изм. (не надо забывать, что общий список должен был быть в алфавитном порядке, а парные строки наоборот в противоположном порядке алфавитному). Поэтому пришлось на место, где отсутствовали ед.изм. поставить несколько "яяя", что гарантировало постановку строки всегда ниже парной. паралельно "яяя" сделал цветом фона.
Подразумеваю, что данный выход не лучший, но меня он устроил.
Век живи - век учись!
www.detal-plast.narod.ru

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

Сообщение alibek » 09.03.2005 (Ср) 13:30

У грида есть событие Compare. Проводишь в нем сравнение двух элементов, а сортировку грид делает сам.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Чудик » 09.03.2005 (Ср) 14:09

А поподробнее про Compare? Я это событие никогда не пользовал. Как с ним обращаться? Лучше, конечно с небольшим примером.
Век живи - век учись!
www.detal-plast.narod.ru

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

Сообщение alibek » 09.03.2005 (Ср) 14:36

В процедуру _Compare пишешь такой код:
If Row1 < Row2 Then Cmp = -1 Else Cmp = 1
И грид всегда будет сортироваться по номерам строк.

Твоя процедура будет сравнивать строки Row1 и Row2 и выдавать результат в Cmp. Если Cmp=0, значит строки не меняются, если Cmp=-1, значит строку Row1 надо поместить перед Row2 и если Cmp=1, значит строку Row1 надо поместить после Row2.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Чудик » 09.03.2005 (Ср) 14:52

Спасибо, все доходчиво.
Век живи - век учись!
www.detal-plast.narod.ru


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

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

Сейчас этот форум просматривают: Google-бот и гости: 71

    TopList  
cron