Delphi Reference Guide - adatkészlet-szerkesztő, számított mezők
TDBGrid futtatása futás közben
A példák, amelyek ebben a cikkben láthatók, bemutatják azokat a fő módszereket, amelyeket a legtöbb programozó használ az adatbázis-táblázatok megjelenítésére a felhasználók számára. A legtöbb anyag megértéséhez általános ismeretekre van szükség a környezet és a Delphi nyelv tekintetében.
Nyissa meg az "Object Selector" kombinált mezőt az Object Inspector tetején - jelenleg két összetevő található: TForm és TQuery.
Kattintson jobb gombbal a TQuery objektumra, és válassza a "Fields Editor" parancsot a helyi menüből. Kattintson a Hozzáadás gombra - megjelenik a Hozzáadás mezők párbeszédablak, amint az az 1. ábrán látható.
Ezeket az új objektumokat használják a Vásárlói tábla megjelenítéséhez a felhasználónak.
Itt találja az éppen létrehozott objektumok teljes listáját:
Ez az egyezmény nagyon hasznos lehet, ha több táblával dolgozik, és azonnal szeretné tudni, hogy melyik mező a táblázatban a változó utal.
A legfontosabb tulajdonság az érték. Ehhez hozzá lehet férni:
eljárás TForm1.Button1Kattintson (Feladó: TObject);
Az itt bemutatott kódban az értékeket először a d és S változókhoz hozzárendeljük. A következő két sor módosítja ezeket az értékeket, és az utolsó kettő új értékeket rendel az objektumokhoz. Nem sok értelme ilyen kódot írni a programban, de ez a kód csak a TField leszármazottai szintaxisának bemutatására szolgál.
Az Érték tulajdonság mindig megegyezik a használni kívánt mező típusával. Például a TStringFields egy karakterlánc, a TCurrencyFields dupla. Ha azonban a TCurrencyField típus mezőjét TDBEdit, TDBGrid stb. Segítségével megjelenítjük, akkor a "$ 5.00" karakterláncot fogjuk megjeleníteni.
Ez lehet, hogy úgy gondolja, hogy a Delphi hirtelen megszakad erős gépelés. Miután TCurrencyField.Value nyilvánították Double, és ha megpróbál egy stringet, hibaüzenetet kap „típusú mismatch” (mismatch típus). A fenti példa azt mutatja, sőt a tárgyak tulajdonságait adat megjelenítés, ahelyett gyengülése típusellenőrzés. (Ugyanakkor lehetőség van arra, hogy a mező értéke már átalakítható más típusú. Erre TField és utódai egy sor AsString vagy AsFloat típusú módszerek. Természetesen az átalakulás csak akkor következik be, ha van értelme.)
Ha a mezőneveket az aktuális DataSet-ben szeretné megkapni, akkor a FieldName tulajdonságot az alábbi két módszer valamelyikében használja:
Ha szeretné megkapni a mezőhöz társított objektum nevét, akkor használja a Név tulajdonságot:
A CUSTOMER tábla esetében az első példa a "CustNo" karakterláncot adja vissza, és a második példa egyik sora visszatér a "Query1CustNo" karakterláncba.
- Végezze el a számításokat a DataSet két vagy több mezőjén, és mutassa be a számítások eredményét a harmadik mezőben.
- Szimulálja a két táblázat összekapcsolását, amely képes szerkeszteni a kapcsolat eredményét.
A CALC_SUM.DPR program a példákhoz erre a leckére illusztrálja a számított mezők első használatát.
Ez a program három táblázatot társít egymáshoz képest. Különösen az ORDEREK és a TÉTELEK kapcsolódnak a OrderNo mezõn keresztül, és az ITEMS és az ALKATRÉTEK a PartNo mezõhöz kapcsolódnak. (Az ORDERS táblában az összes megrendelés tárolódik, az ITEMS táblában - a megrendelésekben megjelölt elemek, az OSZTÁK - az elemek könyvtára). A programban navigálhat az ORDER táblázaton, és megtekintheti a benne foglalt elemek listáját az aktuális sorrendben. A CALC_SUM program meglehetősen összetett, de jól illusztrálja a számított mezők erejét.
A CALC_SUM projekt létrehozásának sorrendje:
- Hozzon létre egy új projektet (File | New Project) és törölje az űrlapot a projektmenedzser projektből (Project Manager)
- Válassza ki az adatbázis-formanyomtatót a Súgó menüből.
- A kezdőképernyőn válassza a "Mester / részletformátum létrehozása" és a "TQuery objektumok használatával".
- Kattintson a Tovább gombra, és válassza ki az ORDERS.DB táblát az adatbázisból alias DBDEMOS-ban.
- Kattintson a Next gombra, és válassza ki az ORDERS.DB táblázat OrderNo, CustNo, SaleDate, ShipDate és ItemsTotal mezőket.
- Kattintson a Tovább gombra, és válassza ki a "Vízszintes" elemet az űrlap dbEdit összetevőinek elhelyezéséről.
- Kattintson a Tovább gombra, és válassza ki az ITEMS.DB táblázatot.
- A következő két képernyőn válassza ki az összes mezőt a táblából, és helyezze őket a rácsba.
- Kattintson a Next (Tovább) gombra, és válassza ki a OrderNo mezőt a Master és Detail ListBoxes listából, majd kattintson a Hozzáadás gombra.
- Kattintson a Tovább gombra, és generálja az űrlapot.
Számos szóra van szükség a fenti folyamat leírásához, de valójában a Database Form szakértő parancsainak végrehajtása egyszerű és intuitív.
Válassza ki a két TQuery objektum közül az elsőt, és állítsa az Aktív tulajdonságot True értékre. Az SQL tulajdonság lekérdezéséhez írja be a lekérdezési szöveget:
válassza ki az * Elemek, P részek közül
ahol (I.OrderNo =: OrderNo) és
Az előző bekezdésben leírt egyszerű folyamat bemutatja, hogyan lehet létrehozni egy számított mezőt. Ha megnézed a DBGrid-ot, láthatod, hogy van még egy üres mező. Ha értéket szeretne adni ehhez a mezőhöz, nyissa meg az Object Inspector Query2 objektumának Események lapját, majd kattintson duplán az OnCalcFields ikonra. Töltse ki a létrehozott módszert az alábbiak szerint:
eljárás TForm2.Query2CalcFields (DataSet: TDataSet);
Miután elindította a programot, a Total mezőben a $ 23.00 vonal szerepel.
Ez azt mutatja, hogy mennyire könnyű létrehozni egy számított mezőt, amely megfelelően formázott adatokat mutat. Valójában ez a mező megmutat valami mást - a Qty (mennyiség) és a ListPrice (ár) mezők terméke. Ehhez az OnCalcFields esemény fenti kódját a következőképpen kell módosítani:
eljárás TForm1.Query2CalcFields (DataSet: TDataset);
Ha most elindítja a programot, akkor a Total mező tartalmazza a kívánt értéket.
Az OnCalcFields eseménykezelőben bonyolultabb számításokat hajthat végre (ez később jelenik meg), de ne feledje, hogy ez a program teljesítményének megfelelő lassulását okozza.
eljárás TForm1.Query1CalcFields (DataSet: TDataset);
a Query2 megkezdődik