|
|
Outlook levelek archiválása Word dokumentumba
|
|
Példaprogram letöltése
234469 bájt
|
Mellékelt példában egy olyan alkalmazást készítünk, mely kiolvassa az Outlook levelező program által már elküldött e-mail-jeinket és ezeket egyetlen Word dokumentumba exportáljuk archiválásként.
A példából megtudhatjuk, hogy miként kell elérni az Outlook Elküldött elemek (Sent Items) mappáját, hogyan lehet kiolvasni az e-mail-ek különféle adatait (címzett, időpont, tárgy, szöveg, stb.), megtudhatjuk azt is, hogy miként hozhatunk létre Word dokumentumot és azon belül hogyan írhatunk tetszőleges szöveget, miként hozhatunk létre táblázatot és hogy hogyan formázhatjuk meg a beírt szöveget.
A mellékelt példa kipróbálásához az Outlook (nem Outlook Express!) és Word alkalmazásnak telepítve kell lennie az adott számítógépen.
Figyelmeztetés: ha az Elküldött elemek (Sent Items) mappa sok e-mail-t tartalmaz, akkor az exportálás sok ideig eltarthat. Ekkor célszerű a program futtatása előtt egy másik mappát választani, melyben kevesebb e-mail van. Ehhez a mellékelt Unit1.pas 60. sorában az olFolderSentMail konstanst írja át az alábbiak egyikére.
60. FFolder:=FNamespace.GetDefaultFolder(olFolderSentMail);
- olFolderDeletedItems - törölt elemek
- olFolderOutbox - postázandó üzenetek
- olFolderInbox - beérkezett üzenetek
Első lépésként kapcsolatot kell teremtenünk az Outlook és Word alkalmazásokkal.
FWord:=GetOrCreateObject('Word.Application');
FOutlook:=GetOrCreateObject('Outlook.Application');
A GetOrCreateObject egy belső függvény. Célja annak ellenőrzése, hogy fut-e már a kért alkalmazás. Ha igen, akkor ehhez kapcsolódunk, ha nem, akkor létrehozunk belőle egy új példányt.
function GetOrCreateObject(const ClassName: string): IDispatch;
var
unknown: IUnknown;
begin
if Succeeded(GetActiveObject(ProgIDToClassID(ClassName),
nil, unknown)) then begin
OleCheck(unknown.QueryInterface(IDispatch, result));
end else begin
result:=CreateOleObject(ClassName);
end;
end;
A Word alkalmazást felhasználva létrehozunk egy dokumentumot, melyet tárolunk az FDocument változóba.
FDocument:=FWord.Documents.Add;
Az új dokumentumnak lekérdezzük a Selection objektumát és szintén tároljuk egy FSelection nevű változóba későbbi felhasználáshoz.
FSelection:=FDocument.Application.Selection;
Ezek után kapcsolatot teremtünk az Outlook Elküldött elemek (Sent Items) mappájával. Ezt az objektumot az FFolder változóba tároljuk el.
FNamespace:=FOutlook.GetNamespace('MAPI');
FFolder:=FNamespace.GetDefaultFolder(olFolderSentMail);
A FFolder objektumban található elemeket az Items property-én keresztül érhetjük el. Ez a property tartalmaz egy Count property-t, melyből megtudható, hogy hány eleme van a mappának. Így már könnyedén kezdeményezhetünk egy ciklust, mely végigmegy az összes elemen.
for i:=1 to FFolder.Items.Count do begin
...
end;
A cikluson belül lekérdezzük egy elemét a mappának, vagyis egy e-mail-t. Ezt tároljuk az FMailItem változóba.
FMailItem:=FFolder.Items(i);
Ezek után beszúrunk a dokumentumba egy 2 x 2-es táblázatot. A létrejött táblázat objektumát pedig tároljuk az FTable változóba.
FRange:=FSelection.Range;
FTable:=FDocument.Tables.Add(FRange, 2, 2);
A táblázat egy cellájának beállíthatjuk a betűtípusát a következőképpen: először lekérdezzük a Font objektumot, mely az adott cellához tartozik, majd ennek az objektumnak a megfelelő property-einek értékül adjuk a kívánt betűtípushoz tartozó értékeket.
FFont:=FTable.Cell(1, 1).Range.Font;
FFont.Name:='Times New Roman';
FFont.Bold:=true;
FFont.Size:=12;
FFont.ColorIndex:=wdGreen;
Egy cellába a szöveg írását az FTable változóban tárolt objektum Cell függvényén keresztül tehetjük meg. Paraméterként a táblázat X, Y koordinátáját kell megadnunk, majd a Range property InsertAfter metódusának hívásával átadhatunk egy beszúrandó sztringet, mely most az aktuális e-mail címzettje lesz.
FTable.Cell(1, 1).Range.InsertAfter(FMailItem.To);
Az e-mail többi lényeges adatát hasonlóan tároljuk a táblázatba, majd a táblázat alá beszúrjuk az e-mail szövegét is.
FSelection.TypeText(FMailItem.Body);
Ezzel a ciklus mag futása véget ért, jöhet a következő e-mail.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 93. 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!
|