Navigarea în setul de date - Capitolul 15

Mutarea sau navigarea prin înregistrările unui set de date se poate face în mai multe moduri. De exemplu, în componentele TDBGrid și TDBCtrlGrid, care afișează mai multe înregistrări simultan, puteți utiliza tastele cursor vertical sau bara verticală de defilare.

Dar dacă numai în cazul componentelor care afișează numai un câmp din înregistrarea curentă a setului de date (TDBEdit, TDBComb®Vох, etc.) se află în formularul? Evident, în acest caz, pe formular trebuie să fie localizate elemente de control suplimentare, care sunt responsabile pentru deplasarea prin înregistrări.

De asemenea, nici o componentă de cartografiere a datelor nu are instrumente integrate pentru crearea și ștergerea în întregime a înregistrărilor.

Pentru a rezolva aceste sarcini, este proiectată componenta TDBNavigator, care este o colecție de butoane de comandă, efectuează operații de navigare pe setul de date și modificarea întregii înregistrări.

Componenta TDBNavigator utilizează proprietatea DataSource pentru a comunica cu componenta TDataSource și prin aceasta cu setul de date. Această schemă permite modificarea simultană a valorilor câmpului curent în toate componentele de cartografiere a datelor asociate TDataSource. Astfel, TDBNavigator vă instruiește doar să vă deplasați printr-un set de date sau o altă operație de control, iar toată lucrarea reală este efectuată de componenta setului de date și de componenta TDataSource. Componentele cartografierii datelor pot accepta numai date noi din câmpurile lor.

Fig. 15.4. Scopul butoanelor componentei TDBNavigator

Componenta TDBNavigator conține un set de butoane, fiecare dintre acestea fiind responsabil de efectuarea unei operații pe un set de date. În total, există 10 butoane, dezvoltatorul poate lăsa într-un set orice număr de butoane în orice combinație. Vizibilitatea butoanelor este controlată de proprietatea visibleButtons:

TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast, nblnsert, nbDelete,

nbEdit, nbPost, nbCancel, nbRefresh);

TButtonSet = set de TNavigateBtn;

proprietate VisibieButtons: TButtonSet;

Fiecare element de tip TNavigateBtn reprezintă un buton, scopul acestora fiind descris mai jos:

nbFirst - treceți la prima înregistrare a setului de date;

nbPrior - treceți la înregistrarea anterioară a setului de date;

nbNext - treceți la următoarea înregistrare a setului de date;

nbLast - treceți la ultima înregistrare a setului de date;

nblnsert - introduceți o nouă înregistrare în poziția curentă a setului de date;

nbDelete - șterge înregistrarea curentă, cursorul se mută la următoarea înregistrare;

nbEdit - setul de date este tradus în modul de editare;

nbPost - toate modificările din înregistrarea curentă sunt transferate în baza de date;

nbcancel - toate modificările din înregistrarea curentă sunt anulate;

nbRefresh - restabilește valorile inițiale ale înregistrării curente, efectuate după ultimul transfer de modificări la baza de date.

Cea mai importantă pentru pierderea posibilă a datelor din cauza unei erori este operația de ștergere, deci folosind proprietatea confirmDelete, puteți activa mecanismul de control al ștergerii. De fiecare dată când ștergeți o înregistrare, vi se va cere să confirmați operațiunea care se efectuează.

Apăsarea oricărui buton poate fi emulată programatic folosind metoda BtnClick.

Dacă trebuie să efectuați acțiuni suplimentare atunci când faceți clic pe orice buton, puteți utiliza procesanții de evenimente BeforeAction și Onciick, în care parametrul Buton definește butonul apăsat. Proprietățile și metodele componentei TDBNavigator sunt prezentate în Tabelul. 15.6.

Tabelul 15.6. Proprietățile și metodele componentei TDBNavigator