Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.307 pregleda

Najnovija ↓

Kako da izracunam rb dbgrida? 03.07.2007. u 11:39 · pre 235 meseci #1
Pozicionirao sam misa na jedan record u dbgrid. Brisem tabelu i radim refreshj. Pokazivac ide na pocetak. Hocu da mi ostane u tom redu gde je bioi. Kako to da resim?
Re: Kako da izracunam rb dbgrida? 03.07.2007. u 11:52 · pre 235 meseci #2
Akoobrises tabelu onda nema gde da ode kursor.

Inace, ne pozicioniras se na gridu nego na tabeli, dakle u dataset-u zapamti gde si bio pa nakon refresh-a otidji opet na isti slog.
Re: Kako da izracunam rb dbgrida? 03.07.2007. u 12:41 · pre 235 meseci #3
Da, i ja sam imao taj problem i imao sam istu ideju (da zapamtim RecNo pa da se vratim na isti). Međutim, problem je sledeći. Skrolujem DBGrid prema dole i unos na koji kliknem nalazi se negdje na sredini trenutne pozicije dbgrid scrolla. Kad nakon toga RecNo proslijedim db komponenti taj slog se pojavi na vrhu! Znači pobjegne gore dva tri reda.

Ja sam to riješio ovako. OnDraw event mi je služio za pamćenje prvog vidljivog RecNo-a i onda bih taj RecNo (a ne izabrani) proslijedio u dataset. Radilo je odlično.

Nadam se da će ti pomoći. Poz.
Potpis
Damir Kasipović
[email protected]
+387 (0)65 979 949
Re: Kako da izracunam rb dbgrida? 03.07.2007. u 14:36 · pre 235 meseci #4
To radi odlicno sve dok korisnik ne pokrene neku akciju koja radi na tekucem slogu, a tekuci slog vise nije onaj koji je bio tekouci nego onaj koji je bio na vrhu grida.
Re: Kako da izracunam rb dbgrida? 04.07.2007. u 07:36 · pre 235 meseci #5
Citat:
broker: Akoobrises tabelu onda nema gde da ode kursor.

Inace, ne pozicioniras se na gridu nego na tabeli, dakle u dataset-u zapamti gde si bio pa nakon refresh-a otidji opet na isti slog.


Mislio sam da brisem rekord a ne tabelu. U stvari ja imam sql upit koji mi verzuje vise tabela i pokazuje rezultat. E sada kada brisem jedan rekord iz te
prve glavne tabele onda treba da nestane taj rekord u dbgrid. Onda moram da refresh-ujem taj upit i uvek mi kursor skoci gore.
Re: Kako da izracunam rb dbgrida? 04.07.2007. u 09:34 · pre 235 meseci #7
Ovo je normalno ponašanje zato što DataSet nije jedna tabela već upit koji vraća neku vrstu "pogleda" na podatke (joined query).

Da bi ovo rešio, recimo možeš da pre brisanja aktivnog zapisa upamtiš koji ti je zapis ispred (ili iza) tog koji brišeš (zapamtiš njegov ID, vrednost ključa) i onda nakon brisanja uradiš Find sa tim ključem. Ovo rešenje takođe može da bude i uzrok za pad performansi aplikacije kod čitanja podataka iz baze, jer moraš da uradiš više operacija nad istim DataSet-om (pređeš na prethodni slog, pročitaš ID, pređeš na aktuelni slog, obrišeš ga, osvežiš upit, uradiš Find sa zapamćenim ID-jem), pa zato moraš da odlučiš dali ti ovakva funkcionalnost zaista treba.

Postoje takođe komponente (DevExpress ExpressQuantumGrid, recimo) koje ti ovo rade automatski, ali opet moraš neke stvari da malo isplaniraš. Obavezno napravi probu sa više varijanti pa vidi šta ti najviše odgovara.
Potpis
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme