Szerkesztő adatbázisba, számított mezők

Példák, hogy látni fogja ebben a cikkben azt bizonyítják, hogy az alapvető technikák által használt legtöbb programozó megjelenítéséhez adatbázis táblák a felhasználók számára. Ahhoz, hogy megértsük sok az anyag igényel átfogó ismerete, a környezet és a Delphi nyelv.







Nyissa meg a combo box „Object Selector” tetején az Object Inspector - most már két összetevője van: TForm és TQuery.

Kattintson a jobb gombbal a TQuery tárgy és a helyi menüből válassza a „Fields Editor”. Kattintson a Hozzáadás gombra - Add a mezők párbeszédpanelen jelenik meg, mint az 1. ábrán látható

Ezek az új lehetőségek fogják használni a képi ábrázolása a VEVŐ táblázat a felhasználó számára.

Itt a teljes lista objektumok imént hoztak létre:

Ez a megállapodás nagyon hasznos lehet, ha dolgozik, több táblát, és csak azt szeretném tudni, ezt a változót táblázatra hivatkozik területen.

A legfontosabb tulajdonsága az úgynevezett Value. Ez úgy érheti el az alábbiak szerint:

A kód itt látható, először rendeljen értékeket a változók d és S. A következő két sort állítani ezeket az értékeket, és az utolsó két rendelt új értékeket tárgyak. Ez nem sok értelme írni a kódot, mint ez a program, de ezt a kódot csak bizonyítani a szintaxis által használt leszármazottai TField.

A Value tulajdonság mindig megfelel a mező típusát, amelyre vonatkozik. Például a TStringFields - string, TCurrencyFields - dupla. Azonban, ha a megjelenített TCurrencyField típus mezőt használja a komponens „érzékeny adatok” (adatértő: TDBEdit, TDBGrid stb), akkor fogja képviselni egy string, mint például: „$ 5.00”.

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 azt szeretnénk, hogy a mezők nevét a jelenlegi DataSet, akkor használja az ingatlan FieldName kétféleképpen, az alábbiak szerint:

Ha azt szeretnénk, hogy a név az objektum kapcsolódó területen, akkor kell használni a Név tulajdonságot:

Az ügyfél tábla, az első példa visszatér a string „CustNo”, valamint a sorok a második példában string „Query1CustNo”.

számított mezők

CALC_SUM.DPR programot például a lecke bemutatja első használata esetén számított mezők.

Ez a program összeköti a három asztal az egy a többhöz. Különösen, a rendeléseket és kapcsolódó tételek a mezőn OrderNo és PARTS elemeket, és kapcsolja össze PartNo területen. (A megrendelések táblázat tartalmazza az összes megrendelés, a tételek asztal - meghatározott tételek sorrendjében, a PARTS - objektumok könyvtárba). A program segítségével navigálhat a Rendelések tábla és lásd kapcsolódó aktuális rendelés lista a mellékelt elemeket. CALC_SUM program nagyon bonyolult, de jól illusztrálja a hatalom számított mezők.

A sorozat létrehozása CALC_SUM projekt:
  • Hozzon létre egy új projekt (File | New Project), és vegye ki az űrlapot (a Project Manager View | Project Manager)
  • Válassza szakértői adatbázis formák a Súgó menüből.
  • Az első képernyőn válassza ki a „Create a master / detail forma” és a „Create a forma segítségével TQuery Objects”.
  • Kattintson a Tovább gombra, és válassza ki az alias tábla ORDERS.DB DBDEMOS tárol.
  • Kattintson a Tovább gombra, és válassza ki a mezőket OrderNo, CustNo, Eladás dátuma, ShipDate és ItemsTotal a ORDERS.DB asztalra.
  • Kattintson a Tovább gombra, és válassza ki a „horizontális” a végeredmény az összetevők formájában dbEdit.
  • Kattintson a Tovább gombra, és válassza ki az asztal ITEMS.DB.
  • A következő két képernyőn jelölje ki az összes mezőt a táblából, és tedd őket egy rács.
  • Kattintson a Tovább gombra, és válassza ki a pályáról OrderNo a Mester és Detail listamezõben, és kattintson a Hozzáadás gombra.
  • Kattintson a Tovább gombra, és létrehoz egy űrlapot.






Beletelik egy csomó szó, hogy leírja azt a folyamatot, ahogy fent, de valójában a parancsok végrehajtása egy szakértői adatbázis formák könnyen és intuitív módon.

Válassza ki az első két tárgy TQuery és telepíti az Active tulajdonságot True. Mert Query2 ingatlan SQL lekérdezés szövegét írják:

Egy egyszerű folyamat leírása az előző bekezdésben, azt mutatja, hogyan lehet létrehozni egy számított mező. Ha megnézzük a DBGrid, akkor láthatjuk, hogy most van egy másik üres dobozt. Annak érdekében, hogy egy értéket ebben a mezőben, az Object Inspector Események oldalon Query2 objektumot, és kattintson duplán OnCalcFields. Töltsük eljárás jön létre az alábbiak szerint:

A program elindítása után összesen mező tartalmazza a string $ 23.00.

Ez azt mutatja, hogy mennyire könnyű az, hogy hozzon létre egy számított mező helyesen jelenik meg formázott adatokat. Tény, hogy ezen a területen kell mutatni valami mást - a munka mezők Mennyiség (db) és listaár (ár). Ebből a célból, a fenti kód egy esemény OnCalcFields kell alábbiak szerint változott:

Ha most fut a program, a Total mező tartalmazza a kívánt értéket.

Az eseménykezelő OnCalcFields végezhet bonyolultabb számítások (ez később látni fogjuk), de nem szabad elfelejteni, hogy ez okozza a megfelelő lassulás a sebesség a programot.

Ebben a példában az összeggel, amelyet egy egyszerű válogatás bejegyzések nem a legjobb megoldás - ez lehetséges, például mennyiségének kiszámítására, hogy további típusú objektum TQuery. DisableControls módszer az úgynevezett törölni dolgozza át DBGrid táblakereséseknél. Query2 újra egy vizsgálatot, hogy megbizonyosodjon arról, hogy a jelenlegi rekordok sorozataként amelyek megfelelnek a sorrendben.

Tedd a másik formája DBEdit elem és kösse meg a Query1 elemet, mező NewItemsTotal. Futtassa a programot, a közelítő formáját a 3. ábrán látható

3. ábra: CALC_SUM Program

Amint látható a program, jelenlétében ItemsTotal mező a RENDELÉSEK táblázatban erre például opcionális, és meg lehetne távolítani (azonban, szükség van más esetekben).

TDBGrid menedzsment futásidőben

DBGrid objektum lehet teljesen átalakultak a futás során. Ön tudja elrejteni és megmutatni oszlopok, a kijelző az oszlopok sorrendje és szélességben.

Használhatja a Beállítások DBGrid tulajdonság az objektum, hogy véleményét megváltoztassa. Options tulajdonság az alábbi lehetséges értékek:

Az alapértelmezett beállítás az igaz, ez lehetővé teszi, hogy a felhasználó számára, hogy módosítsa a rács. Azt is beállíthatja ReadOnly rács tulajdonságot igaz vagy hamis.

Függetlenül attól, hogy a felhasználó használhatja lapra, és Shift-Tab közötti váltáshoz az oszlopokat.

Amint azt az alábbi szerkezetet:

Például beállíthatja lehetőség a Runtime kódírás, mint ez:

Ha azt szeretnénk, hogy engedélyezze vagy tiltsa a lehetőséget, hogy meg lehet csinálni a segítségével logikai műveleteket. Például a következő kód hozzá dgTitles az aktuálisan beállított paraméterek:

Hagyja ShowTitles egy logikai változó, akkor az alábbi kódot, hogy engedélyezze vagy tiltsa a lehetőséget egy kattintással:

Ha azt szeretnénk, hogy elrejtse a területen a run-time, beállíthatja a látható tulajdonságot false:

Mindkét vonal hordozzák azonos kódot feladat. Megadni a mező állítsa a láthatóságot true:

Ha meg akarjuk változtatni a helyzetét az oszlop Runtime, akkor egyszerűen változtatni a kódot (az első mező a rekord nulla index):

Alapértelmezésben CustNo mezőben az ügyfél táblázatban az első. A kód az első sorban ezen a területen mozog a második helyen, és a következő sorban mozgatja a harmadik pozícióba. Ne feledje, hogy a mezők meg vannak számlálva a semmiből, hiszen a feladat tulajdonsághoz Index 1 mező a második rekord. Az első mező értéke 0 Index.

Ha megváltoztatja a mező indexe, indexek más területeken a rekord automatikusan változtatja.

Ha meg akarjuk változtatni az oszlop szélessége Runtime, csak megváltoztatni a tulajdonában van az adott DisplayWidth TField.

Az érték 12 utal, hogy a karakterek számát is jól látható elem.

DBGR_RT program azt mutatja, hogyan kell dolgozni DBGrid Runtime. A program elég egyszerű, kivéve a két kis alkatrészek, amelyeket az alábbiakban ismertetünk. Az első rész bemutatja, hogyan lehet létrehozni egy négyzetet a Runtime és a második azt mutatja, hogyan kell változtatni a sorrendjét elem egy ListBox Runtime.

Amikor létrehoz egy űrlapot (esemény OnCreate) ListBox töltött mezőnevek, majd hozzon létre egy sor tárgyak a jelölőnégyzetet, akkor a megfelelő területen a táblázatban. Először is, az összes jelölőnégyzetet választjuk, és az egész mező látható a táblázatban. A program megtanulja keresztül TTable1 mezőnevek és besorolja a Caption tulajdonsága a megfelelő jelölőnégyzetet. Ezen túlmenően, a onclick eseménykezelő rendelve az összes jelölőnégyzetet eljárás ChBClick, és amelyek be / kikapcsolni területen a DBGrid.

A legtöbb kód ebben a példában végre viszonylag egyszerű feladatok, mint például a név- és rendeletek jelölőnégyzeteket. Íme két fő vonal:

Az első sor létrehoz egy CheckBox adja meg a tulajdonosa (tulajdonos). A második sor hozzárendeli Szülő (szülő) a négyzetet. Ahhoz, hogy megértsük a különbséget a szülők és a tulajdonos, hogy a megfelelő ingatlan az online-help.

A program tartalmaz egy ListBox, ami azt mutatja, a jelenlegi mezők sorrendje a DataSet. Ha módosítani szeretné a mezők sorrendjét DataSet (s így a DBGrid) két kulcsot használ. Megnyomásával a gombok egyikére kiválasztott ListBox'e mező egy pozícióval felfelé vagy lefelé. Szinkronban a változásokat, és a mezők sorrendjét DBGrid. Az alább látható kódot, megváltoztatja Index mező Table1, megváltoztatva így, összesen mezőben DBGrid. Ezek a változások csak a vizuális megjelenítését DataSet. Fizikailag az adatokat a lemezre nem változik.

Az utolsó sor a leírás csak egy példa, hogy valóban megváltoztatja az index az oszlop, hogy a felhasználó akar mozogni. Két sornyi kódot közvetlenül azelőtt, hogy mozog az aktuális sor a ListBox egy új helyzetbe.

Megjelenése DBGR_RT program a 4. ábrán látható

4. ábra: DBGR_RT Program