HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Paradox táblastruktúra exportálása Excel-be


Példaprogram letöltése

4448 bájt

Készítünk egy komponenst, amely segítségével lekérdezhetjük egy megadott, Paradox típusú adattábla mezőszerkezetét. A komponens a meghatározott adatokat egy Excel munkafüzetben jeleníti meg.

A mellékelt példaprogram megnyitása előtt a PStructure.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponenst a Table property-jén keresztül kapcsolhatjuk hozzá egy TTable komponenshez, amely egy Paradox típusú táblához kapcsolódik.
Az adatok lekérdezése az Execute metódus meghívására történik. A metódus meghívása előtt a TTable Active property-jét igazra kell állítani.
procedure Execute;
Az Execute metódus lefutása után egy megnyitott Excel munkafüzetben látható a tábla adatszerkezete.
A komponenst a TComponent osztályból származtatjuk.
A Table property megfelelő működéséhez felül kell írnunk a Notification metódust.
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
Ha a komponenst hozzákapcsoljuk egy TTable-hez, majd a TTable-t töröljük, a Delphi hibaüzenetet küld. Ezt a Notification metódusban elhelyezett, következő kóddal kerülhetjük el.
if (AComponent=FTable) and (Operation=opRemove) then
  FTable:=Nil;
A komponens kódjának lényege az Execute metódusban található.
procedure Execute;
Egy OleVariant típusú változó segítségével megnyitjuk, majd láthatóvá tesszük az Excel programot.
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.Visible:=True;
Létrehozunk egy új munkafüzetet, melynek aktív munkalapján létrehozzuk a fejlécet.
ExcelApp.WorkBooks.Add;
ExcelApp.Range['A1','A1'].Value:='Mezőnév';
...
A feldolgozás során a megadott táblának csak az adattípusú (fkData) mezőivel foglalkozunk.
if FTable.FieldCount>0 then
  for i:=0 to FTable.FieldCount-1 do
    if FTable.Fields[i].FieldKind=fkData then begin
        ExcelApp.Range['A'+IntToStr(i+2),'A'+IntToStr(i+2)].Value:=FTable.Fields[i].FieldName;
Az adott mező típusát a következőképpen határozhatjuk meg, elágazások segítségével.
if FTable.Fields[i].DataType=ftString then
  ExcelApp.Range['B'+IntToStr(i+2),'B'+IntToStr(i+2)].Value:='Alpha';
A mező méretét a Size tag adja meg, melyre csak akkor van szükségünk, ha az értéke nem 0.
A következő táblázat összefoglalja a Paradox 7-ben használható mezőtípusokat, valamint a mezők Delphi-ben használt típusait.
Paradox típus TFieldType
Alpha ftString
Number ftFloat
Money ftCurrency
Short ftSmallInt
Long Integer ftInteger
BCD ftBCD
Date ftDate
Time ftTime
TimeStamp ftDateTime
Memo ftMemo
Formatted Memo ftFmtMemo
Graphic ftGraphic
OLE ftParadoxOLE
Logical ftBoolean
AutoIncrement ftAutoInc
Binary ftBlob
Bytes ftBytes

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 635. 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 |