Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DBGrid i Bookmark

[es] :: Pascal / Delphi / Kylix :: DBGrid i Bookmark

[ Pregleda: 1708 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

franjo_tahi
Franjo Tahi
Zagreb

Član broj: 34712
Poruke: 399
*.adsl.net.t-com.hr.



+1 Profil

icon DBGrid i Bookmark06.06.2008. u 01:01 - pre 193 meseci
Ima li tko ideju kako se najbrže vratiti na aktivni slog u gridu?

Radim s TIBDataSet-om i TDBGrid-om

Procedure je sljedeča:
U gridu je aktivan određeni slog. Potrebno je promjeniti order klikom na title (znači: close - izmjena qrya - open), a da se nakon toga u gridu pozicionira na isti slog.

Pokušao sam s bookmarkom i stvar radi nakon close - open, ali bez izmjene ordera, ako primijenim u qry-u order, bookmar više ne radi kako treba, tj. ne varti se na pravi slog.

Pokušao sam sa Locate, ali je presporo na većem setu podataka.

Svaka ideja je dobro došla...

 
Odgovor na temu

priki

Član broj: 24732
Poruke: 700
*.static.t-2.net.

ICQ: 174153511


+26 Profil

icon Re: DBGrid i Bookmark06.06.2008. u 09:42 - pre 193 meseci
TIBDataSet poveži s TClientDataSetom

tamo postavi IndexFieldNames na polje po kojem želiš sortirati i to ti je

Code:

ClientDataSet.IndexName := 'sifra';
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: DBGrid i Bookmark06.06.2008. u 10:03 - pre 193 meseci
> Radim s TIBDataSet-om i TDBGrid-om

> U gridu je aktivan određeni slog. Potrebno je promjeniti order klikom na title (znači: close - izmjena qrya - open), a da se nakon toga u
> gridu pozicionira na isti slog.

> Pokušao sam s bookmarkom i stvar radi nakon close - open, ali bez izmjene ordera, ako primijenim u qry-u order, bookmar više ne radi
> kako treba, tj. ne varti se na pravi slog.

> Pokušao sam sa Locate, ali je presporo na većem setu podataka.

Koliko se sećam IBDataSet za Bookmark koristi RecNo, zato se posle sortiranja RecNo odnosi na sasvim drugi slog. Jedini način je preko nekog nepromenljivog podatka poput ID polja iz baze. Što se tiče brzine dve stvari mi padaju na pamet:
1) Handluj OnNewRecord* i proveri koji od novoučitanih slogova ima traženi ID, sačuvaj RecNo i posle otvaranja se pozicioniraj na njega (ili se pozicioniraj direkno iz handlera).
* Ako se OnNewRecord ne poziva prilikom učitavanja svakog sloga onda vidi ima li neki drugi event koji će se pozvati, ako nema napravi naslednika IBDataSet i overajduj GetNextRecord i tu vrši proveru. Naravno ovu proveru nema potrebe da radiš ako se dataset otvara po prvi put ili nije potrebno da se repozicionira na prethodno aktivni slog.
2) Napravi poseban thread u kome ćeš pozvati Locate, kada nađe slog, pošalji glavnom threadu poruku sa datim RecNo i neka se on pozicionira.

 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: DBGrid i Bookmark

[ Pregleda: 1708 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.