SMDBGrid i grupowanie danych

0

Czy ktoś z kolegów bawił się SMDBGrid z SMComponents? Instaluje się bez problemu w Delphi 11, jest tu niby grupowanie danych, ale… nie potrafię tego użyć. Jest nawet jakiś przykład w demo, ale archaiczny (BDE) i trudno ogarnąć co to robi. Podpiąłem więc sobie jakiś DataSet z ZEOSa, stworzyłem kolumny i wszystko działa. Ale chciałbym teraz zgrupować dane w gridzie wg jakiegoś pola i co teraz? Jest tam coś takiego jak TSMGrouping z właściwością Expression, ale nie wiem jak to działa. Ktoś tego używał? Wujek Google niestety nic nie podpowiada.

0

Udało się to wyjaśnić z autorem. Wsparcie dla grupowania jest dość ograniczone, trzeba pisać sporo na poziomie SQL. Mike pisze tak:

"You need create the query to combine both records which are "grouping" and records which are details. For example:
       SELECT CUSTNO, COUNTRY, 2 AS Flag
       FROM CUSTOMER
       UNION ALL
       SELECT DISTINCT 0, COUNTRY, 1 AS Flag
       FROM CUSTOMER
       ORDER BY COUNTRY, FLAG

In this query the Flag field defines the grouping. If Flag=2 then these records are group names. If Flag=1 then records are details"

Wtedy zaczyna działać, można skorzystać z kodu w katalogu DEMO dotyczącego grupowania. Testowałem to z ZEOSEM, działa acz jest uciążliwe w użyciu. Dodatkowym problemem jest, że Zeos 8 ma jakieś problemy z Union, trzeba co chwilę robić cast (wersja 7 lepiej tu działa, ale nie ma wsparcia do Delphi 11). Nie ma co jednak narzekać, komponenty są darmowe i wspierane od lat.

1 użytkowników online, w tym zalogowanych: 0, gości: 1