Перепечатка списка комплектации на принтере, а не на экране через X ++ - PullRequest
1 голос
/ 02 декабря 2011

Я пытаюсь автоматически напечатать список комплектации прямо на принтер. Это уже было выбрано. Вот задание, которое печатает его, но оно продолжает идти к экрану, а не к принтеру.

static void JobReprintPickingList(Args _args)
{
    Args args;
    ReportRun reportRun;
    SalesFormLetter salesFormLetter;
    PrintJobSettings printJobSettings;
    RecordSortedList list = new RecordSortedList(tablenum(WMSPickingRoute));
    WMSPickingRoute wmsPickingRoute = WMSPickingRoute::find('PkR 079256');
    ;

    if(!wmsPickingRoute)
        return;

    list.ins(wmsPickingRoute);

    args = new Args(ReportStr(WMSPickingList_OrderPick));
    args.designName("Standard");

    printJobSettings    = new PrintJobSettings();
    printJobSettings.deviceName('HP Universal Printing PCL 6');
    printJobSettings.setTarget(PrintMedium::Printer);
    printJobSettings.preferredTarget(PrintMedium::Printer);

    salesFormLetter  = new SalesFormLetter_PickingList(false);
    salesFormLetter.updatePrinterSettingsFormLetter(printJobSettings.packPrintJobSettings());

    args.caller(salesFormletter);
    args.parmEnum(PrintCopyOriginal::Original);
    args.parmEnumType(enumnum(PrintCopyOriginal));
    args.object(list);

    reportRun = new ReportRun(args);
    reportRun.init();
    reportRun.run();
}

Ответы [ 2 ]

2 голосов
/ 09 декабря 2011

Я разобрался с ответом. Я должен был добавить эту строку:

printJobSettings.lockDestinationProperties(true);

Это вынуждает его к принтеру.

1 голос
/ 07 декабря 2011

Вы можете изменить свой код для использования OriginalPrint следующим образом:

args.parmEnum(PrintCopyOriginal::OriginalPrint);

Проблема заключается в методе loadPrintSettings класса FormLetterReport, который переопределяет цель на экран при использовании Original или OriginalCopy.

...