HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Adattáblák és adatmodulok használata IntraWeb alkalmazásokban


IntraWeb 4. rész

Példaprogram letöltése

9895 bájt

Ebben a részben megnézzük, hogy hogyan lehet használni egy DataModule-t és annak elemeit egy IntraWeb-es alkalmazásban. Készítünk egy kétoldalas alkalmazást. Az első oldalon egy ComboBox segítségével kiválaszthatunk egy vevőt, majd a második oldalon megjelenítjük a hozzá tartozó megrendeléseket. Megismerkedünk az IWDBGrid használatával. Az adatokat a DBDEMOS adatbázisból nyerjük.

Kezdjünk egy új IntraWeb alkalmazást. Válasszuk a File – New – Other menüpontot. A megjelenő New Items ablakban kattintsunk az IntraWeb fülre, majd válasszuk a szokásos, Stand Alone Application-t.
Ha létrejött az új alkalmazás, helyezzünk el benne egy DataModule-t. Ehhez válasszuk a File – New – DataModule menüpontot. A DataModule-t nevezzük el DM-nek, majd mentsük el UDM néven.
Helyezzünk el rajta két TTable és két DataSource komponenst. A Table1 objektumon keresztül létesítsünk kapcsolatot a DBDEMOS adatbázis Customer.db táblájával. A DataSource1-et kapcsoljuk hozzá a táblához. A Table2 objektumot kapcsoljuk hozzá a DBDEMOS Orders.db táblájához. A tábla mezőszerkesztőjét használva állítsuk be, hogy csak a következő mezőket használjuk: CustNo, OrderNo, SaleDate, ShipDate, PaymentMethod, ItemsTotal, AmountPaid. A DataSource2-t kapcsoljuk hozzá a Table2-höz. A táblák Active tulajdonságát állítsuk igazra.
Az eddigi példák során láthattuk, hogy egy IntraWeb alkalmazásban a fő Form kivételével nem jönnek létre automatikusan a Form-ok, sőt az egyes unit-okban még példányváltozók sem kerülnek deklarálásra.
Most beillesztettünk az alkalmazásba egy DataModule-t, amely egy hagyományos elem. Az UDM állományban megtalálható a DM objektum deklarációja, de azt a rendszer nem hozza automatikusan létre.
Kattintsunk a Project – Options menüpontra. A Forms fülön látható, hogy egyik Form sem jön létre automatikusan és a DM sem. Ezt nem is tudjuk megváltoztatni.
Minden egyes létrehozott unit-ban, ahol használni szeretnénk a DM DataModule tábláit, a uses listában fel kell sorolnunk az UDM unit nevét.
Az UDM unitban már deklarálva van a DM példányváltozó. Mielőtt használnánk gondoskodnunk kell a létrehozásáról. Ezt megtehetjük, például a fő Form Create metódusában. A DM létrehozását is a WebApplication-nek kell felügyelnie. A formMain Create metódusában helyezzük el a létrehozás kódját.
DM:=TDM.Create(WebApplication);
Innen kezdve a program befejezéséig minden egyes Form, amely hivatkozik az UDM unitra, használhatja a DataModule-t.
Úgy illene, hogy ha mi hoztuk létre az objektumot, akkor szabadítsuk is fel az általa lefoglalt memóriaterületet. Ezt most azonban a rendszerre kell bíznunk. Sem a Free, sem a Destroy metódust nem használhatjuk. Ha mégis megpróbálnánk, akkor jön az Access Violation ablak.
A formMain-en helyezzünk el az IW Standard palettáról egy IWRegion komponenst. Ez a komponens ugyanazt a feladatot hivatott ellátni, mint a Panel. Tökéletesen alkalmas arra, hogy tartalmát kiemeljük a nagy fehér ablakban, az által, hogy beállítjuk a háttérszínét. Ezen fogjuk elhelyezni az első ablak elemeit.
Helyezzünk el rajta egy IWLabel komponenst, „Vevő neve:” felirattal, mellette egy IWComboBox-ot. Alattuk helyezzünk el egy IWButton komponenst is, felirata legyen a következő: „Rendelések lekérdezése”.
Az IWComboBox1-et a formMain Create metódusában töltjük fel elemekkel. A Create metódust bővítsük az alábbi kóddal.
with DM.Table1 do begin
  First;
  while not Eof do begin
    IWComboBox1.Items.Add(FieldByName('Company').AsString);
    Next;
  end;
end;
Miután az előbb létrehoztuk a DM objektumot, most már nyugodtan használhatjuk.
Az Object Inspector-ban állítsuk az IWComboBox1 Sorted értékét igazra, a NoSelectionText tartalmát pedig magyarosítsuk: „-- Nincs kiválasztva –„.
Az IWButton1 OnClick eseményében először is a Table1 táblában pozícionálnunk kell az IWComboBox1 Text értéke alapján. Ehhez használjuk a Locate metódust.
if DM.Table1.Locate('Company',IWComboBox1.Text,[]) then begin
Ha megtaláltuk a rekordot, akkor a Table2-ben állítsuk be az alábbi szűrést.
DM.Table2.Filter:='CustNo='+DM.Table1.FieldByName('CustNo').AsString;
Ha a rekord nincs meg, akkor adjuk hibaüzenetet.
Most hozzuk létre a második ablakot, amely az Orders tábla tartalmát fogja megjeleníteni. Válasszuk a File – New – Other menüpontot, majd az IntraWeb fülről az Application Form elemet. Az új Form-nak adjuk az OrderForm nevet, majd mentsük el Unit1 néven. A uses listában itt is adjuk meg az UDM unit nevét.
A Form tetején helyezzünk el egy IWRegion komponenst, benne jelenítsük meg a Table1 tábla CustNo, Company és Addr1 mezőinek értékét. A megjelenítését IWDBLabel komponenseken keresztül végezzük. A komponensek az IW Data palettán találhatóak. Ugyanúgy kell használni őket, mint a hagyományos DBLabel komponenseket.
A Form-on helyezzünk el egy IWLink komponenst, amely segítségével, a tanult módon, biztosítsunk visszalépési lehetőséget az előző ablakba.
Az IWLink alá helyezzünk el az IW Data palettáról egy IWDBGrid-et. DataSource értékét állítsuk DM.DataSource2-re. A Table2 Active értéke hiába van igazra állítva, a Grid nem jeleníti meg szerkesztési időben a tábla tartalmát. Így egy picit körülményes beállítani a Grid megfelelő szélességét. Néhányszor futtatnunk kell az alkalmazást, mire a megfelelő értéket beállítjuk.
A Grid működése eltér a hagyományos DBGrid-től. Inkább egy HTML-ben megszokott táblázathoz hasonlít. Ennek megfelelően rendelkezik CellPadding és CellSpacing tulajdonságokkal is.
A Columns tulajdonságban a megjelenítendő oszlopokat egyesével kell beállítanunk. Létre kell hoznunk egy új elemet, majd be kell állítanunk, hogy melyik adatmező értékét mutassa. Szerencsére a Table2 komponensben már beállítottuk, hogy mely mezők jelenjenek meg, ezért itt most nincs dolgunk.
Alapértelmezés szerint a táblázatban nem látható az Indicator. Ha erre mégis szükségünk lenne, akkor az Options tulajdonságban bekapcsolhatjuk. A példaprogramunk szempontjából, most nincs rá szükségünk. Ugyanitt kapcsolhatjuk ki vagy be a fejlécek megjelenítését is.
A fejlécek és sorok színét a RowHeaderColor és RowCurrentColor tulajdonságokon keresztül állíthatjuk be.
A RowClick és RollOver értékét állítsuk igazra. A RollOverColor-ban pedig állítsunk be egy színt, amely kellőképpen eltér a háttértől. Ezzel azt érjük el, hogy amikor az egeret egy sor fölé helyezzük, annak háttere a beállított színre változik.
A Caption mezőben adjuk meg a „Rendelések” feliratot.
Mentsük el munkánkat, majd térjünk vissza a formMain-hez. Az IWButton OnClick eseményének végére helyezzük el az alábbi kódot.
with TOrderForm.Create(WebApplication) do
  Show;
Mentsük el munkánkat, majd próbáljuk ki.

Cikksorozat

#IDKategóriaCikk címeSorozat
2591WindowsTippek és trükkök - RAS - Modem csengetési szám állítása1. rész
2622WindowsTippek és trükkök - Program futtatása más felhasználóként2. rész
2640WindowsA Windows ikonméretének megváltoztatása és Windows 2000 Asztaltémák3. rész
2657WindowsTippek és trükkök - Internet Explorer4. rész
2667WindowsTippek és trükkök5. rész
2684WindowsAlapértelmezések állítása, telepítési fájlok helye, intéző nézetek6. rész
2696WindowsBiztonsági trükkök7. rész
2702WindowsWindows XP trükkök8. rész
2729WindowsWindows 2000 és XP tippek, trükkök9. rész
2757WindowsRegistry trükkök10. rész
2784WindowsTippek, trükkök11. rész
2829WindowsTippek, trükkök12. rész
2889WindowsWindows XP tippek13. rész
2909WindowsTippek Windows XP-hez14. rész
2919WindowsWindows tippek15. rész
2924WindowsWindows tippek16. rész
2963WindowsWindows tippek17. rész
2973WindowsWindows Tippek18. rész
2981WindowsWindows tippek19. rész
2990WindowsTippek-trükkök20. rész
3027WindowsIIS tippek21. rész
3034WindowsWindows XP tippek-trükkök22. rész
3088WindowsWindows 2000/XP tippek, trükkök23. rész
3133WindowsWindows XP tippcsokor24. rész
3140WindowsWindows XP tippek, trükkök25. rész
3152WindowsXP és IIS tippek - trükkök26. rész
3158WindowsWindows XP tippek, trükkök27. rész
3168WindowsTippek, trükkök28. rész
3170WindowsRegistry trükkök29. rész
3179WindowsTippek, trükkök30. rész
3197WindowsWindows XP tippek, trükkök31. rész
3205WindowsTippek, trükkök32. rész
3214WindowsTippek, trükkök33. rész
3223WindowsTippek, trükkök34. rész
3233WindowsTippek, trükkök35. rész
3271WindowsTippek, trükkök36. rész
3307WindowsTippek, trükkök37. rész
3370WindowsTippek, trükkök38. rész
3399WindowsTippek, trükkök39. rész
3510WindowsTippek, trükkök40. rész
3611WindowsHardverrel kapcsolatos tippek, trükkök41. rész
3668WindowsRegistry trükkök42. rész
3711WindowsTippek, trükkök43. rész
3771WindowsTippek, trükkök44. rész
3801WindowsTippek, trükkök45. rész
3831WindowsTippek, trükkök46. rész
3891WindowsTippek, trükkök47. rész
3921WindowsTippek, trükkök48. rész
3981WindowsTippek, trükkök49. rész
4041WindowsTippek, trükkök50. rész
4071WindowsTippek, trükkök51. rész
4151WindowsTippek, trükkök52. rész
4171C#Tippek, trükkök53. rész
4211WindowsTippek, trükkök54. rész
4251WindowsTippek, trükkök55. rész
4281WindowsTippek, trükkök56. rész
3589DelphiTippek, trükkök57. rész
3718DelphiTippek, trükkök58. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 374. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |