Delphi - Adatbeviteli és megjelenítési formátum megadása adatbázis mezőknél

forráskód letöltése
Ha a felhasználó egy DBEdit komponensben szerkeszti egy mező értékét, akkor előfordulhat, hogy azt nem a megfelelő formátumban adja meg. Ebben a példában megnézzük, hogy hogyan tudjuk egy adatbázis mező adatbeviteli, illetve megjelenítési formátumát egyszerűen megadni.
A két formátum nem biztos, hogy megegyezik. Egy dátumot például a legkönnyebb úgy megadni, hogy számmal írjuk be az évszám, hónap és nap számát, viszont a megjelenítésnél kiírhatjuk betűvel is. A megjelenítési formátum megadása továbbá hasznos lehet a tört értékek megadásánál, mivel itt akár adott számú tizedes jegyre is kerekíthetjük a bevitt értéket. Ha nyomtatásra kerül a sor, akkor a QuickReport szintén a megjelenítési formátumban meghatározott módon fogja az adatokat kiírni, így szebb nyomtatási képet kaphatunk.
A formátumok megadásához szükség van a mezők objektumaira, melyeket a Table vagy Query komponensre duplán kattintva, vagy a hozzájuk tartozó menüből a Fields Editor-t választva hozhatjuk létre.
A mezők objektumai a TField osztályból származnak, de az adattípustól függően más és más típusú objektumok jönnek létre. Az objektumok EditFormat vagy EditMask property-jében adhatjuk meg az adatbeviteli, míg a DisplayFormat property-ben a megjelenítési formátumot.
EditFormat
Osztály: TNumericField
property EditFormat: String;
Ez a property a TNumericField osztályban található meg, így a szám típusú mezőknél használható. A property sztring típusú, a sztring pedig speciális karaktereket tartalmaz, melyek meghatározzák, hogy az adatbevitel milyen módon történhet. A használható karakterek, és jelentésük az alábbi táblázatban láthatók:
Karakter Jelentés
0 Ezen a helyen kötelezően egy számnak kell lennie.
# Ezen a helyen szám, vagy számok találhatók, de nem kötelezően.
. Tizedespont.
, Ha a sztring tartalmazza a vessző karaktert, akkor a szám ezres csoportosítással jelenik meg. A karakter bárhol lehet a formátum sztringben.
E+ A szám tudományos megjelenítése.
'xx'/"xx" A karakterek idézőjelek (egyszeres, vagy dupla) között jelennek meg.
; A pozitív, negatív és 0 értékek elválasztása a formátum sztringben. Segítségével mindhárom esethez különböző formátumot rendelhetünk, ennek azonban csak a megjelenítésnél van haszna, hiszen adatbevitelkor még nem tudjuk, hogy milyen értéket ad meg a felhasználó.
EditMask
Osztály: TField
property EditMask: String;
A sztring illetve dátum típusú mezőknél használható adatbeviteli maszk adható meg ebben a property-ben. A maszkot ugyanúgy kell megadni, mint a MaskEdit komponensnél. Az alábbi táblázat tartalmazza a használható értékeket:
Karakter Jelentés a maszkban
! Ha ez a karakter megjelenik a maszkban (általában az első karakterként), akkor az opcionális karakterek helyén álló szóközök nem kerülnek bele a Text property-be.
> Az ezután a karakter után álló betűk nagybetűk lesznek.
< Az ezután álló karakterek kisbetűk lesznek.
<> Az előző két karakter hatásának kikapcsolása, ezután kis- és nagybetűk egyaránt megadhatók.
\ Ha fix szöveget adunk meg, ami tartalmaz vezérlő karaktereket is, akkor a karakter elé ezt kell beírni (pl. az „a” betűhöz „\a”).
L Ebben a pozícióban csak betű adható meg, és kötelezően meg kell adni.
l Ebben a pozícióban szintén csak betű adható meg, de nem kötelező megadni.
A Alfa-numerikus karakter (betű vagy szám) adható meg ebben a pozícióban, és kötelező megadni.
a Hasonló az előzőhöz, de nem kötelező megadni.
C Tetszőleges karakter megadható, de kötelező megadni.
c Tetszőleges karakter megadható, és nem kötelező megadni.
0 Csak szám adható meg, és kötelező megadni.
9 Csak szám adható meg, de nem kötelező megadni.
# Numerikus karakter, vagy a + és – jelek adhatók meg.
; A maszk egyes részeit elválasztó karakter.
_ Automatikusan szóközöket szúr be a szövegbe az adott helyre.
DisplayFormat
Osztály: TNumericField
property DisplayFormat: String;
A számok megjelenítési formátumát adhatjuk meg ebben a property-ben. A TNumericField típusú objektumoknál a sztringet ugyanúgy kell megadnunk, mint az EditFormat property-ben (lásd fent).
DisplayFormat
Osztály: TDateTimeField
property DisplayFormat: String;
A TDateTimeField típusú objektumoknál a megjelenítési formátumot másképpen kell megadni, mint a TNumericField típusú objektumoknál. Mivel itt dátumot, és/vagy időt jelenítünk meg, így a használható karakterek is ennek megfelelően lettek kialakítva. Bizonyos esetekben itt már nem csak maga a karakter határozza meg a megjelenítési formátumot, hanem az is, hogy az adott karakterből mennyi áll egymás után.
Karakterek Jelentés
c A dátum a ShortDateFormat (rövid dátum formátum) változóban megadott formátumban, ezt követi az idő a ShortTimeFormat (rövid idő formátum) változóban megadott formátumban. Az idő csak akkor jelenik meg, ha meg van adva (a dátum érték tört része nem 0).
d A nap száma bevezető 0 nélkül.
dd A nap száma 0-val két karakterre igazítva.
ddd A nap nevének rövidített változata (a ShortDayNames változóból). Például „csüt.”.
dddd A nap neve a LongDayNames változóból. Például „Csütörtök’.
ddddd A dátum a ShortDateFormat változónak megfelelően.
dddddd A dátum a LongDateFormat (hosszú dátum formátum) változónak megfelelően.
m A hónap száma bevezető 0 nélkül.
mm A hónap száma 0-val két karakterre igazítva.
mmm A hónap rövidített neve a ShortMonthNames változóból.
mmmm A hónap neve a LongMonthNames változóból.
yy Az évszám két karakteren.
yyyy Az évszám négy karakteren.
h Az óra bevezető 0 nélkül.
hh Az óra 0-val két karakterre igazítva.
n A perc bevezető 0 nélkül.
nn A perc 0-val két karakterre igazítva.
s A másodperc bevezető 0 nélkül.
ss A másodperc 0-val két karakterre igazítva.
t Az idő a ShortTimeFormat változónak megfelelően
tt Az idő a LongTimeFormat (hosszú idő formátum) változónak megfelelően.
am/pm Az idő után a napszak is megjelenik („am.” vagy „pm.”). Használhatók vegyesen kis- és nagybetűk is, az eredmény ennek megfelelő lesz. Ebben az esetben csak a 12 órás kijelzés működik.
a/p Hasonló az előzőhöz, de csak egy betűvel.
ampm 12 órás idő megjelenítés, a TimeAMString és a TimePMString változókban megadott értékekkel jelezve a napszakot („de.” vagy „du.”).
/ A DateSeparator változóban beállított dátum elválasztó karakter.
: A TimeSeparator változóban beállított idő elválasztó karakter.
'xx'/"xx" A karakterek egyszeres, vagy dupla idézőjelek között jelennek meg.