1) Include CRPE and PRINTERS in 'uses' (CRPE.pas is packaged with Crystal Reports)
2) Add a TPrinterSetupDialog obect to the form (to allow the user to select a different printer)
3) Create printer variables:
Var
JobHandle : Integer
ADevice, ADriver, APort : Array[0..30] of Char;
ADeviceMode : THandle;
4) Use engine calls to run the report. Issue the following functions
before issuing a PEStartPrintJob:
{ Open print job }
PEOpenEngine()
JobHandle = PEOpenPrintJob(<filename>)
.
.
.
{ Change printer }
Printer.GetPrinter(ADevice, ADriver, APort, ADeviceMode);
PESelectPrinter(JobHandle, ADriver, ADevice, Aport,
PDevMode(PTR(ADeviceMode,0))^);
.
.
.
{ Start print job }
PEStartPrintJob(JobHandle, True);
PECloseEngine();