Малък куесчън за MSFlexGrid...

3 отговора 0 прегледа
#1

Малък куесчън за MSFlexGrid...

Използвам контрола MSFlexGrid като монитор за извадки от прости бази данни

Работата е там, че ми се филтрират данните и се изплюват както филтър при Ексел, а аз искам и да ми се сортират автоматично по едно допълнително поле! Полето по което ще сортирам няма нищо общо с критериите за сортиране. Полето представлява просто допълнителна оценка за близоста на записите към нов запис, който не е добавен още в базата!



Въпроса ми е някой знае ли как да го направя автоматично без да се налага да щракам с мишката върху полето, та после да сортирам по маркирана област?

Вариант който мога да намеря като подобен код е да симулирам движение на мишката върху колоната и щракване, ама нещо не ме кефи - трябва да има по-бърз и елегантен начин и предполагам не сложен.

В ексела да речем има Columns("B:B").Select тук няма ли нещо подобно?

Отговор
в отговор на msafinx #2

Re: Малък куесчън за MSFlexGrid...

Може.

Първо си дефинираш две константи за сортирането във възходящ или нисходящ ред, например:

Public Enum enumGridSort
sortAscending = 0
sortDescending = 1
End Enum


след това в кода си пишеш:

mGrid.Redraw = False
mGrid.Row = 0
mGrid.Col = x
mGrid.Sort = sortAscending
mGrid.Redraw = True
mGrid.Row = 1
mGrid.Col = 1

където х ти е колоната, по която искаш да сортираш.

Много е важно да имаш предвид, че .Col и .Row пропъртитата ти сетват курсора, така че след сортирането да си ги поставиш в начална позиция. Това с единиците го давам като пример, ако нулевия ред и нулевата ти колона са заглавни.

Успех!

Отговор
в отговор на Killy-ManJarro #3

Ооо задължен съм ти :)

а аз се чудех по едно време защо ли има и .Col и .Cols :)
хах, мн яко миси :) сега разбрах и как ще си оцветя отделните колонки!

а защо се забранява преизчертаването и после пак се разрешава?
пести се време ли? лично при мен всяко излишно действие ще е добре да се премахне защото ми трябва максимално бързодействие - ще правя нещо от рода на генетични мутации за определяне на най-добри тегловни коефиценти за анализ на дадени статистики... процеса ще се повтаря и повтаря докато се усъвършенства максимално :)

Отговор
в отговор на msafinx #4

Re: Ооо задължен съм ти :)

Вече не си спомням със сигурност, защото от доста време не пиша код, но мисля, че ако не забраниш преизчертването, се получава много неприятно премигване на екрана, а освен това май се забързва цялата операция.

Отговор