(Jv)DBGrid + sortowanie +utrzymywanie danych pola

0

mam problem. Baza danych postgresql + Zeoslib + Delphi 2005 +JEDI, z bazy danych mam zapytanie które wybiera mi kolumny data_przy, data_wyk, kto wyświetlane w JvDbGrid. Wszystko pięknie działa, dodałem obsługa klawiszy vk+left i vk_rigcht w których przy pomocy JvDBGrid.Col określam w jakim polu się znajduje i przy pomocy jego sortuje tabele
ZQuery1.SortedFields:=wartosc;
ZQuery1.Filtered:=True; uzyskuje efekt, że na komponencie JvDBGrid zmieniam podświetlone pole automatycznie sortuje całą tabele ale jest jeden efekt uboczny który chce ominąć, a mianowicie jak jestem na polu z np data_przy to w momencie jak przesuwam się w prawo i zmienia się uporządkowanie to gubię pole na którym byłem, przenosi mnie losowo nie wiem gdzie, a zależy mi by nadal pozostać na danych w danej linijce przy jednoczesnej zmienię uporządkowanie pul zgodnie z wartością pola na jakiej się znajduje. Trochę to zakręcone ale mam nadziej, ze ktoś to pojmie i udzieli mi pomocy z góry dzięki.

0

Witam, Twój post jest dość stary, brak pod nim odpowiedzi, nie wiem czy rozwiązałeś problem ale spotkałem się z czymś podobnym.

Generalnie, ZEOSLIB jest świetny, pracuje na wielu wersjach MySQL i nie tylko, śmiga b. szybko.
ALE..., problem z Gridem.

Jeżeli na formę wstawię komponenty :
TZConnection,
TZQuery,
TDataSource,
TDBNavigator,
TDBGrid
łączę się prawidłowo z bazą, w gridzie wyświetla się tabela - niby OK.

Tabela ma kilka pól i kilka wierszy, jeżeli nie sortuję tabeli przez IndexFieldsNames z TZQuery to jest OK, tzn. można zmieniać zawartości pól itp. OK.

Natomiast jeżeli w IndexFieldsNames wpiszę nazwę jakiejś kolumny, grid oczywiście prawidłowo wyświetli posortowaną zawartość, i np. występuje kilka wierszy z taką samą zawartością to w momencie użycia klawisza EDIT z TDBNavigator na wierszach z taką samą zawartością (będąc nawet na innym polu, nie zawierającym powtarzających dię danych), a następnie POST kolejność wiersze w gridzie ulega zmianie.
Po kolejnej sekwencji EDIT / POST wraca do poprzedniej kolejności.

Jedyne co udało mi się wykombinować to wyłączać sortowanie na czas edycji, a edycję wiersza wykonywać w osobnej formatce, niestety nie można edytować przez TDBGrid.

Może trochę chaotyczny opis problemu ale jeżeli ktoś spotkał się z podobnym przypadkiem i ma rozwiązanie to bardzo proszę o pomoc.

Pozdrawiam

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