Evo da podelim i ja svoje iskustvo kako sam to uradio, po meni jedno od jednostavnijih rešenja.
Dakle, na glavnoj formi - switchboardu postoje npr. dva dugmeta:
- Unos
- Pregled
Kada korisnik klikne na "unos", otvori mu se blanko forma, sa poljima koje čekaju na unos. Ok, korisnik unese sve (ili samo required) podatke, i klikne na "save record". Forma se zatvara, taj record u bazi je snimljen i "zakucan", za svako dalje editovanje potrebno je stisnuti dugme "Pregled".
Kada korisnik stisne dugme "pregled", otvori mu se tabelarna forma sa spiskom svih unosa.
Duplim klikom na neki record, otvara se
ista forma kao i ova gore, samo filtrirana po ID broju za record za koji smo kliknuli. Korisnik edituje podatke i klikne na "Save record". U tom trenutku:
-Stari podaci se snimaju u tblOldData;(ova tabela ima skoro istu strukturu kao i originalna tabela, eventualno se mogu dodati polja "DatumIzmene" i "OldId" - stari id broj recorda, čisto radi sigurnosti;)
-snima se record, i kao posledica toga,
-Promenjeni podaci se snimaju u tblData.
Ovo je skroooz generalizovani scenario, i vredi za bilo koju bazu podataka, bilo kakvu evidenciju, itd. Možda sam malo konfuzan, pitajte pa ćemo se razjasniti.
Sve promene se evidentiraju lagano pomoću jednostavnog upita.
Osnovni problem kod svih loše napravljenih aplikacija kod kojih treba da se prate promene u recordu jeste što kroz formu za unos
mogu da se i edituju podaci, a ovim jednostavnim konceptom se to prevazilazi.
[Ovu poruku je menjao mika dana 13.07.2005. u 15:24 GMT+1]
[Ovu poruku je menjao mika dana 13.07.2005. u 15:27 GMT+1]
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford