Управление Crystal Reports с помощью OLE Automation.
Еще одним вариантом использования Crystal Reports в приложениях является использование Crystal Report Engine как OLE Automation-сервера. В справочной системе Crystal Reports имеется подробное описание иерархии вложенных объектов и их методов (и внушительный набор примеров для Visual Basic, аналоги которых несложно создать и на Pascal). В этом случае пример для Delphi, аналогичный рассмотренному выше, выглядит следующим образом: unit Uole1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ComObj; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Button2: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; rep,r:variant; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin rep:=CreateOleObject('Crystal.CRPE.Application'); r:=rep.OpenReport('d:\Report2.rpt'); r.RecordSelectionFormula := '{items.ItemNo} = '+Edit1.Text; r.Preview; end; procedure TForm1.Button2Click(Sender: TObject); begin Close; end; end.
Отметим, однако, что использование OLE Automation - не самый выгодный с точки зрения производительности способ управления отчетами.