Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaRebeka Borbélyné Megváltozta több, mint 9 éve
1
Apartman – kezelő rendszer implementálása 2 Írta: Kátai Kornél Bálint, 2007 Mail: kkb@inf.elte.hu (A nyugalom megzavarására alkalmas kép- és szöveganyagot tartalmaz, így megtekintése csak saját felelősségre történhet!) 1
2
2
3
Táblák szűrése Táblák editálása Hibakezelés & validáció 3
4
FilterControl – adatforrás JoinedTableCtrl – adatmegjelenítés TableDisplayCtrl MainForm - példányosítás 4 FILTERCONTROL JOINEDTABLECTRL
5
A már implementált JoinedTable osztály példánya lesz az adatforrás Ez azt is jelenti, hogy a példánynak mindig tükröznie kell a megjelenített állapotot! 5
6
Kapcsolat a FilterControl BindingSource objektumán keresztül 6 BindingSource Specifikus osztályok
7
Adatkapcsolatok beállítása TableDisplayCtrl inicializálása (lásd: előző ea) Külső adatforrások beállítása (lásd: előző ea) Megjelenítés és viselkedés megadása 7
8
Négy módszer Hagyományos értékadás Kifejezés feldolgozása Compute Adatkötés táblához Adatkötés egyéb struktúrához 8 Sum, Avg, Min, Max, Count, StDev, Var
9
Select metódus -> DataRow[] RowState a row mindig referencia -> szülő tábla Clone metódus Használat után Dispose! 9
10
Kifejezéssel automatizált szűrés Compute, Select metódusok segítségével Nem minden esetben használható Magas szintű Implementáltuk a helyben szűrő változatát Manuális szűrés Iteráció a tábla sorain Szükséges sorok kinyerése / szükségtelenek eldobása Alacsonyabb szintű 10
11
A szűrés kifejezésen keresztül történik A kifejezés az SQL ‘WHERE’ kulcsszó után várt kifejezésével egyező szintaxisú Hibás szintaxis -> EXCEPTION 11
12
Két megközelítés: Sorok kigyűjtése RowState! Sorok eltávolítása Iteráció alanya módosul -> foreach Ajánlott: for ciklus visszafelé! 12
13
Cél: prioritási sorrend felállítása Konkrét feladat 13 Rendezési direktívák
14
A már ismert Select metódussal oszlopok szerint rendezhető a tábla. Eljárás lépései: Ideiglenes oszlop felvétele a rendezendő táblához Sorok prioritásának meghatározása (pontozás) Rendezés végrehajtása Ideiglenes oszlop eltávolítása 14
15
A JoinedTable Filter metódusa a rendezést is támogatja Eljárás lépései: Ideiglenes oszlop felvétele a rendezendő táblához Sorok prioritásának meghatározása (pontozás) Rendezés végrehajtása Ideiglenes oszlop eltávolítása 15
16
TableCtrlBase Absztrakt ősosztály TableDisplayCtrl –ből származik Típusos Editáló kontrolok TableCtrlBase –ből származtatott osztályok Végső absztrakciós szint 16
17
Absztrakt metódusok Az általános viselkedés leírásához szükséges specifikus eljárások A származtatott osztályok csak ezek implementálása után példányosíthatóak Alternatív lehetőség: INTERFACE -ek 17
18
Adatforrás property ‘set’ metódusának túlterhelése Avagy hogyan inicializáljuk a forrást? Lehetett volna absztrakt metódussal, vagy eseménnyel támogatni! A TableDisplayCtrl inicializációja a szokásos módon Absztrakt metódusok implementálása 18
19
Az editor tábláknál is használhatjuk a korábban tárgyalt adatkötéseket, a display- és a valuemember tagokat 19 Inicializáció Külső adatforrások
20
Dátum típusú mezők editálása Nem támogatja a keretrendszer Saját editor mező implemetálása TableDisplayCtrl 20
21
Az appartman tábla nem rendelkezik reprezentáló mezővel (név) Hivatkozáskor nincs mit megjeleníteni! Előszűrés: 21 Appartmanok (Joined Table) Árak
22
Szükséges: PriceTableCtrl PriceHandlerCtrl UserControl, megjeleníti a PriceTableCtrl –t és a JoinedTableCtrl -t 22 JoinedTableCtrl PriceTableCtrl SelectedRowChanged esemény Előszűrés ID
23
PriceHandlerCtrl SelectedRowChanged esemény PriceTableCtrl Nem mutatjuk az appartman azonosítóját A meglévő bejegyzéseket szűrjük az aktuális appartman alapján Az új bejegyzéseknél beállítjuk a megfelelő hozzárendelést 23 Nem megjelenítendő mező
24
Szükséges, amikor Nem minden táblaállapot megengedett A beviteli mező megenged érvénytelen értéket is A sor rendelkezik érvényességi feltételekkel Tipikus példa: AllowNull A tábla rendelkezik érvényességi feltételekkel Tipikus példa: Unique mező Előfordulnak kapcsolódási problémák 24
25
A Validate() metóduson keresztül Ellenőrzi a mezők, a sorok és a tábla konzisztenciáját Legfontosabb eszköz: Validating események Saját szemantikai ellenőrzés hajtható végre Az esetleges inkonzisztencia kezelhető 25 Validate Validating CellValidating CellValidated RowValidating RowValidated Validated Eseménykezelők
26
Mikor kell ellenőriznünk a konzisztenciát? Mentéskor Törléskor Függések! Mező editálás után Hiba esetén Automatikus, túlterhelhető 26
27
TableCtrlBase ősosztályban NavigatorSaveItemClicked esemény 27 hamis, ha a validáció sikertelen véglegesíti a módosításokat kapcsolat hiba esetén hibaüzenet sikertelen validáció -> igény szerint módosítások visszavonása
28
TableCtrlBase ősosztályban NavigatorDeleteItemClicked esemény 28 van –e függése a törlendő sornak? esemény lekezelve -> nincs törlés
29
TableCtrlBase ősosztályban Adatforrás hiba „Az adatforrás-réteg inkonzisztenciája” Automatikusan kezelt, de túlterhelhető Mező validálás Ha egy mező editálását befejeztük 29 esemény lekezelve -> elutasítjuk az alapértelmezett hibaüzenetet és a validáláson keresztül jelezzük a hibát
30
Sorok konzisztenciáját ellenőrizzük Tiltott állapot (az alapértelmezetteken felül): ha a megadott intervallum értelmetlen 30 ErrorText: a validáció során tapasztalt hiba a validáció sikertelen A mezőkhöz is létezik ErrorText!
31
Kapcsolatépítés Kapcsolt táblák megjelenítése Adatkötések használata Táblák szűrése Táblák editálása Hibakezelés & Validáció 31
32
32 Köszönöm a figyelmet!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.