Search code examples
axaptadynamics-ax-2009x++

Reprinting a picking list to a printer and not to screen via X++


I am trying to automatically print a picking list directly to the printer. It has already been picked. Here is a job that prints it, but it keeps going to the screen and not to the printer.

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();
}

Solution

  • I figured out the answer. I had to add this line:

    printJobSettings.lockDestinationProperties(true);
    

    This force it to the printer anway.