I am trying to print a simple label report out. The report when run from
within AX will bring up a dialogue asking for barcode font etc. I want to
call the form within x++ without bringing the dialogue, so want to set these
in code. How can this be done? Also I saw a previous post about repressing
the print dialogue, I have tried it, and although I can get a print out
(obviously because other settings are not set, it doesn't come out quite as
required), I get loads of errors on the infoLog about the printer:
OpenPrinter_1: rc:0 lastError:1801(0x709) The printer name is invalid.
My code is as follows:
RunbaseReportStd runbaseReportStd;
ReportRun reportRun;
Args args;
PrintJobSettings printJobSettings;
container printSettings;
str test1;
;
args = new Args();
args.name(reportstr(WMSPalletNumber));
test1 = args.toString();
reportRun = classFactory.reportRunClass(args);
runbaseReportStd = RunbaseReportStd::construct();
runbaseReportStd.initReportRun(reportRun);
runbaseReportStd.makeQueryRun();
runbaseReportStd.queryRun().interactive(false);
runbaseReportStd.queryRun().query().dataSourceNo(1).addRange(fieldnum(WMSPallet,wMSPalletId)).value(SysQuery::value(thisPallet));
runbaseReportStd.printJobSettings().unpackPrintJobSettings(printSettings);
printJobSettings = new PrintJobSettings(printSettings);
//unbaseReportStd.makePrintJobSettings();
runbaseReportStd.reportRun().report().interactive(false);
printJobSettings.setTarget(PrintMedium::Printer);
printJobSettings.deviceName(printJobSettings.getPrinter(4));
runbaseReportStd.printJobSettings().setTarget(PrintMedium::Printer);
runbaseReportStd.printJobSettings().deviceName(printJobSettings.getPrinter(4));
runbaseReportStd.run();
Thanks in advance.
have you tried
reportRun.report().interactive(false);
?
is this not the same line:
runbaseReportStd.reportRun().report().interactive(false);
If so I am already using it, also the main question is how to package teh
arguments needed for this particular report?
thanks
static void Job1(Args _args)
{
ReportRun reportRun;
Args args;
PrintJobSettings printJobSettings;
container printSettings;
;
args = new Args(reportstr(WMSPalletNumber));
reportRun = classFactory.reportRunClass(args);
reportRun.init();
//reportRun.unpackPrintJobSettings(printSettings);
printJobSettings = new PrintJobSettings(/*printSettings*/);
printJobSettings.setTarget(PrintMedium::Printer);
printJobSettings.deviceName(printJobSettings.getPrinter(4));
printJobSettings.suppressScalingMessage(true);
reportRun.printJobSettings(printJobSettings.packPrintJobSettings());
reportRun.report().interactive(false);
reportRun.run();
}
Maybe you just don't have 4 printers? Try setting the number to something
lower than 4?
Or else, try specifying the printer name directly
--
Kashperuk Ivan (Vanya), SDET, Inventory management, Microsoft Dynamics AX
My blog - http://kashperuk.blogspot.com
Download MorphX IT in Russian - http://www.lulu.com/content/723888
I'm trying to write functionality to send Invoice report by email.
Im write the following code:
static void Job1(Args _args)
{
MenuFunction menuFunction;
ReportRun reportRun;
Args args;
PrintJobSettings printJobSettings;
CustInvoiceJour custInoviceJour;
;
select firstonly custInoviceJour;
menuFunction = new MenuFunction(menuitemoutputstr(SalesInvoiceOriginal),
MenuItemType::Output);
args = new Args();
args.menuItemName (menuFunction.name());
args.menuItemType (MenuItemType::Output);
args.name (menuFunction.object());
args.parm (menuFunction.parameters());
args.parmEnumType (menuFunction.enumTypeParameter());
args.parmEnum (menuFunction.enumParameter());
args.record (custInoviceJour);
reportRun = menuFunction.create(args);
reportRun.init();
printJobSettings = new PrintJobSettings();
printJobSettings.setTarget(PrintMedium::Mail);
printJobSettings.mailTo("b...@microplan.pl");
printJobSettings.mailSubject("wysyłka");
printJobSettings.format(PrintFormat::PDF);
printJobSettings.suppressScalingMessage(true);
reportRun.printJobSettings(printJobSettings.packPrintJobSettings());
reportRun.report().interactive(false);
Info(strFmt("%1",reportRun.printJobSettings().getTarget()));
Info(strFmt("%1",reportRun.printJobSettings().preferredTarget()));
Info(strFmt("%1",reportRun.printJobSettings().viewerType()));
Info(strFmt("%1",reportRun.printJobSettings().deviceName()));
Info(strFmt("%1",reportRun.printJobSettings().format()));
Info(strFmt("%1",reportRun.printJobSettings().fileName()));
Info(strFmt("%1",reportRun.printJobSettings().preferredFileFormat()));
Info(strFmt("%1",reportRun.printJobSettings().mailTo()));
Info(strFmt("%1",reportRun.printJobSettings().mailCc()));
Info(strFmt("%1",reportRun.printJobSettings().mailSubject()));
Info(strFmt("%1",reportRun.printJobSettings().preferredMailFormat()));
Info(strFmt("%1",reportRun.printJobSettings().allPages()));
Info(strFmt("%1",reportRun.printJobSettings().from()));
Info(strFmt("%1",reportRun.printJobSettings().to()));
Info(strFmt("%1",reportRun.printJobSettings().copies()));
Info(strFmt("%1",reportRun.printJobSettings().storeInPrintArchive()));
Info(strFmt("%1",reportRun.printJobSettings().preferredOrientation()));
Info(strFmt("%1",reportRun.printJobSettings().paperOrientation()));
Info(strFmt("%1",reportRun.printJobSettings().virtualPageHeight()));
Info(strFmt("%1",reportRun.printJobSettings().fitToPage()));
reportRun.run();
Info(strFmt("%1",reportRun.printJobSettings().getTarget()));
Info(strFmt("%1",reportRun.printJobSettings().preferredTarget()));
Info(strFmt("%1",reportRun.printJobSettings().viewerType()));
Info(strFmt("%1",reportRun.printJobSettings().deviceName()));
Info(strFmt("%1",reportRun.printJobSettings().format()));
Info(strFmt("%1",reportRun.printJobSettings().fileName()));
Info(strFmt("%1",reportRun.printJobSettings().preferredFileFormat()));
Info(strFmt("%1",reportRun.printJobSettings().mailTo()));
Info(strFmt("%1",reportRun.printJobSettings().mailCc()));
Info(strFmt("%1",reportRun.printJobSettings().mailSubject()));
Info(strFmt("%1",reportRun.printJobSettings().preferredMailFormat()));
Info(strFmt("%1",reportRun.printJobSettings().allPages()));
Info(strFmt("%1",reportRun.printJobSettings().from()));
Info(strFmt("%1",reportRun.printJobSettings().to()));
Info(strFmt("%1",reportRun.printJobSettings().copies()));
Info(strFmt("%1",reportRun.printJobSettings().storeInPrintArchive()));
Info(strFmt("%1",reportRun.printJobSettings().preferredOrientation()));
Info(strFmt("%1",reportRun.printJobSettings().paperOrientation()));
Info(strFmt("%1",reportRun.printJobSettings().virtualPageHeight()));
Info(strFmt("%1",reportRun.printJobSettings().fitToPage()));
}
and it doesn't work corectly, report is printed to the Screen and in infolog
i have the following:
Info Wiadomość (16:35:10) Adresat wiadomości e-mail
Info Wiadomość (16:35:10) Drukarka
Info Wiadomość (16:35:10) Default
Info Wiadomość (16:35:10) Xerox Phaser 8560DN PS on turnstone.microplan.pl
(redirected 26)
Info Wiadomość (16:35:10) PDF
Info Wiadomość (16:35:10)
Info Wiadomość (16:35:10) ASCII
Info Wiadomość (16:35:10) b...@microplan.pl
Info Wiadomość (16:35:10)
Info Wiadomość (16:35:10) wysyłka
Info Wiadomość (16:35:10) ASCII
Info Wiadomość (16:35:10) true
Info Wiadomość (16:35:10) 1
Info Wiadomość (16:35:10) 1
Info Wiadomość (16:35:10) 1
Info Wiadomość (16:35:10) false
Info Wiadomość (16:35:10) Portrait
Info Wiadomość (16:35:10) Portrait
Info Wiadomość (16:35:10) -1
Info Wiadomość (16:35:10) false
Info Wiadomość (16:35:10) Ekran
Info Wiadomość (16:35:10) Drukarka
Info Wiadomość (16:35:10) Default
Info Wiadomość (16:35:10) Xerox Phaser 8560DN PS on turnstone.microplan.pl
(redirected 26)
Info Wiadomość (16:35:10) ASCII
Info Wiadomość (16:35:10)
Info Wiadomość (16:35:10) ASCII
Info Wiadomość (16:35:10)
Info Wiadomość (16:35:10)
Info Wiadomość (16:35:10)
Info Wiadomość (16:35:10) ASCII
Info Wiadomość (16:35:10) true
Info Wiadomość (16:35:10) 1
Info Wiadomość (16:35:10) 1
Info Wiadomość (16:35:10) 1
Info Wiadomość (16:35:10) false
Info Wiadomość (16:35:10) Portrait
Info Wiadomość (16:35:10) Portrait
Info Wiadomość (16:35:10) -1
Info Wiadomość (16:35:10) false
As you see the reportRun.run() changes the printJobSettings values.
Any ideas?
SalesInvoiceReport changes the printJobSettings in fetch ;(