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




Kapcsolódó cikkek