Показать сообщение отдельно
Старый 07.01.2017, 13:49   #3  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от 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
За это сообщение автора поблагодарили: trud (3), Jorj (1), AlGol (3), wojzeh (5).