Цитата:
Сообщение от
DSPIC
Лениво писать самому, хочется содрать готовый отлаженный код.
Таки пришлось немного потрудиться.
X++:
public static void printPackingSlipArchive(VendPackingSlipJour _vendPackingSlipJour)
{
Args args;
SrsReportDataContract contract;
SrsReportRunImpl reportRun;
SRSPrintDestinationSettings printSettings;
PrintJobHeader printJobHeader;
DocuRef docuRefArchive;
if (!_vendPackingSlipJour)
{
return;
}
args = new Args();
args.record(_vendPackingSlipJour);
contract = PurchPackingSlipController::newDataContract(args);
reportRun = new SrsReportRunImpl(contract.parmReportName());
reportRun.parmReportContract(contract);
reportRun.parmReportContract().parmReportExecutionInfo(new SRSReportExecutionInfo());
printSettings = reportRun.parmReportContract().parmPrintSettings();
printSettings.printMediumType(SRSPrintMediumType::Archive);
printSettings.fileFormat(SRSReportFileFormat::PDF);
reportRun.runReport();
if (contract.parmWCIPrintJobHeaderRecId())
{
select firstOnly printJobHeader
where printJobHeader.RecId == contract.parmPrintJobHeaderRecId();
if (printJobHeader)
{
Docu::copy(printJobHeader, _vendPackingSlipJour);
}
}
}
метод contract.parmPrintJobHeaderRecId() - кастомный, пришлось протянуть RecId из \Classes\SRSPrintArchiveContract\createPrintJobHeader