protected void printReportPdf(Common _record)
{
args args = new args();
CustInvoiceJour custInvoiceJour = _record;
SRSPrintDestinationSettings printSettings;
SalesInvoiceController controller = new SalesInvoiceController();
args.record(_record);
pdfPath = WinAPI::getTempPath() + custInvoiceJour.InvoiceId + ".pdf";
// imposta nome report
controller.parmReportName(ssrsReportStr(SalesInvoice, Report));
// get print settings from contract
printSettings = controller.parmReportContract().parmPrintSettings();
// set print medium
printSettings.printMediumType(SRSPrintMediumType::File);
printSettings.fileFormat(SRSReportFileFormat::PDF);
printSettings.overwriteFile(true);
printSettings.fileName(pdfPath);
// forzo che non vengano cambiati i parametri di stampa che gli passo io
controller.DEVparmLockDestinationProperties(true);
// suppress the parameter dialog
controller.parmShowDialog(false);
controller.parmArgs(args);
// start operation
controller.startOperation();
}
source : http://daxldsoft.blogspot.com/2012/07/print-salesinvoice-packingslip-or.html