Како сортирати записе у Делпхи ДБГриду према наслову ступца

Делпхи ДБГрид је тако моћна компонента да га вероватно користите сваки дан ако развијате апликације засноване на подацима. У наставку ћемо погледати како додати још неких функција у апликације базе података које ће ваши корисници сигурно вољети.

Следећи концепте описане у Водич за почетнике за програмирање Делпхи базе података, доњи примери користе АДО компоненте (АдоКуери / АдоТабле спојен на АДОЦоннецтион, ДБГрид повезан на АдоКуери преко ДатаСоурце) за приказ екрана записи из таблице базе података у ДБГрид компоненти.

Сва имена компонената остала су онако како их је Делпхи именовао када су испуштени на обрасцу (ДБГрид1, АДОКуери1, АдоТабле1, итд.).

Помицање мишем преко наслова ДБГрид

Прво, да видимо како промијенити показивач миша док се креће по ДБГрид насловном подручју. Све што требате учинити је додати код догађају ОнМоусеМове за ДБГрид компоненту.

Дољи код једноставно користи својство МоусеЦоорд ДБГрид компоненте да "израчуна" гдје је показивач миша. Ако је изнад насловног подручја ДГБрид, пт.и је једнак 0, што је први ред у ДБГриду (насловно подручје које приказује наслове ступаца / поља).

instagram viewer

процедура ТФорм1.ДБГрид1МоусеМове
(Пошиљалац: ТОбјецт; Схифт: ТСхифтСтате; Кс, И: Интегер);
вар
пт: ТГридцоорд;
започети
пт: = ДБГрид1.МоусеЦоорд (к, и);
ако пт.и = 0 онда
ДБГрид1.Цурсор: = црХандПоинт
друго
ДБГрид1.Цурсор: = црДефаулт;
крај;

Сортирајте на колону Кликните и промените фонт наслова ступца

Ако користите АДО приступ развоју Делпхи базе података и желите да сортирате записе у скупу података, морате поставити својство Сорт вашег АдоДатасет (АДОКуери, АдоТабле).

Својство Сорт је вриједност најширег низа што указује на "ОРДЕР БИ" дио стандардног СКЛ упита. Наравно, не морате писати СКЛ упит да бисте могли користити својство Сорт. Једноставно подесите својство Сортирање на име једног поља или на листу поља одвојена зарезима, а сваки следи редоследом сортирања.

Ево примера:

АДОТабле1.Сорт: = 'Година ДЕСЦ, АртицлеДате АСЦ'

Догађај ОнТитлеЦлицк ДБГрид компоненте има параметар Ступац који означава Ступац на који је корисник кликнуо. Сваки ступац (објект типа ТЦолумн) има својство поља које указује на поље (ТФиелд) представљено са Ступац и поље у својству ФиелдНаме садрже име поља у подлози скуп података.

Због тога се за сортирање АДО скупа података по пољу / ступцу може користити једноставна линија:

са ТЦустомАДОДатаСет (ДБГрид1.ДатаСоурце. ДатаСет)
Сортирај: = Ступац. Поље. Име поља; // + 'АСЦ' или 'ДЕСЦ'

Испод је код за ОнТитлеЦлицк чак и руковаоца који сортира записе по клику ступца. Код, као и увек, проширује идеју.

Прво желимо да на неки начин обележимо ступац који се тренутно користи за редослед сортирања. Затим, ако кликнемо на наслов ступца, а скуп података је већ сортиран по том ступцу, желимо да променимо редослед сортирања из АСЦ (узлазно) у ДЕСЦ (силазно) и обрнуто. Коначно, када сортирамо скуп података према другој колони, желимо да уклонимо марку из претходно одабране колоне.

Ради једноставности, како бисмо обележили колону која „сортира“ записе, једноставно ћемо променити стил фонта наслова ступца у Болд и уклонити га када се база података сортира користећи другу колону.

процедура ТФорм1.ДБГрид1ТитлеЦлицк (Ступац: ТЦолумн);
{$ Ј +}цонст ПревиоусЦолумнИндек: интегер = -1;
{$ Ј-}
бегиниф ДБГрид1.ДатаСоурце. ДатаСет је ТЦустомАДОДатаСет тада ТЦустомАДОДатаСет (ДБГрид1.ДатаСоурце). ДатаСет) добегинтри
ДБГрид1.Цолумн [ПревиоусЦолумнИндек] .титле. Фонт. Стил: =
ДБГрид1.Цолумн [ПревиоусЦолумнИндек] .титле. Фонт. Стил - [фсБолд];
екцептенд;
Цолумн.титле. Фонт. Стил: =
Цолумн.титле. Фонт. Стиле + [фсБолд];
ПревиоусЦолумнИндек: = Ступац. Индек;
ако (Пос (колона). Поље. Име поља, сортирање) = 1)
и (Поз ('ДЕСЦ', сортирај) = 0) онда
Сортирај: = Ступац. Поље. ФиелдНаме + 'ДЕСЦ'
друго
Сортирај: = Ступац. Поље. ФиелдНаме + 'АСЦ';
крај;
крај;

Горњи код користи куцане константе да бисте сачували вредност претходно "одабраног" ступца за редослед сортирања.

instagram story viewer