- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Skicka en QuickReport med Microsoft Outlook Kategori: Objekt/ActiveX
Inlagt: 2005-01-03
Läst: 2098
Inlagt av: Staffan Berg
Beskrivning
Med hjälp av detta exempel kan du skicka en rapport (skapad med QuickReport) via Outlook som en bifogad fil. 
Kod
uses [..], 
Outlook8, OleServer, COMobj, ActiveX; 
[..] 
procedure TfrmKuProt.sbtMailClick(Sender: TObject); 
VAR 
Outlook : OutlookApplication; 
Unknown : IUnknown; 
Result : HResult; 
MI : MailItem; 
Insp : Inspector; 
x : Integer; 
aExportFilter: TQRExportFilter; 
wmf : TQRWMFFilter; 
CONST 
olMailItem = 0; 
BEGIN 
qr.Prepare; 
try 
 wmf := TQRWmfFilter.Create(NIL); 
 wmf.Enhanced := TRUE; 
 aExportFilter := TQRExportFilterLibraryEntry( 
 QRExportFilterLibrary.Filters[4]).ExportFilterClass.Create('c:\rpt.bmp'); 
 qr.QRPrinter.ExportToFilter(aExportFilter); 
 wmf.Free; 
finally 
 aExportFilter.Free 
end; 
 
// via early binding: 
Result := GetActiveObject(CLASS_OutlookApplication, nil, Unknown); 
if Result = MK_E_UNAVAILABLE then 
Outlook := CoOutlookApplication.Create 
else begin 
// make sure no other error occurred during GetActiveObject 
OleCheck(Result); 
OleCheck(Unknown.QueryInterface(OutlookApplication, Outlook)); 
end; 
MI := Outlook.CreateItem(olMailItem) as MailItem; 
MI.Recipients.Add(' @'); 
MI.Attachments.Add('c:\rpt.bmp',EmptyParam, EmptyParam, EmptyParam); 
MI.Subject := 'Your sheet Y'; 
MI.Body := 'Dear Mr. Dredd,'#13#10#13#10'Enclosed please find ..'#13#10; 
Insp := MI.GetInspector; 
Insp.Display(False); 
 
Showmessage('Please click OK when Outlook is finished.'); 
Screen.Cursor := crHourglass; 
Outlook.Quit; 
Outlook := nil; 
end; 
 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -