Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

report args

134 views
Skip to first unread message

obewankenobe

unread,
Feb 13, 2009, 7:54:01 AM2/13/09
to
Hi,

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.

dude

unread,
Feb 13, 2009, 8:29:02 AM2/13/09
to
Hi Obe Wan

have you tried

reportRun.report().interactive(false);

?

obewankenobe

unread,
Feb 13, 2009, 9:18:01 AM2/13/09
to
Dude,

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

Vanya Kashperuk Ivan at dot nospam

unread,
Feb 14, 2009, 8:26:07 AM2/14/09
to
This code (and yours, for that matter), work just fine on my machine.

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

Golek@discussions.microsoft.com Bartosz Gołek

unread,
Jun 4, 2009, 10:38:01 AM6/4/09
to
Hello.

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?

Golek@discussions.microsoft.com Bartosz Gołek

unread,
Jun 4, 2009, 10:50:01 AM6/4/09
to
Ok. I found the problem.

SalesInvoiceReport changes the printJobSettings in fetch ;(

0 new messages