Wie startet man einen Bericht, bei dem eine von RunBaseReport abgeleitete Klasse vorgeschalten ist, per X++ und gibt diesem Bericht bereits den Query und die Druckeinstellungen vor?
Wer sich diese Frage schon einmal stellen musste, für den liefert dieser Blogbeitrag vielleicht einen Lösungsansatz:
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.
Mehr dazu
Wie startet man einen Bericht, bei dem eine von RunBaseReport abgeleitete Klasse vorgeschalten ist, per X++ und gibt diesem Bericht bereits den Query und die Druckeinstellungen vor?
Wer sich diese Frage schon einmal stellen musste, für den liefert dieser Blogbeitrag vielleicht einen Lösungsansatz:
static void setPrintJobSettingsQuery4ReportClass_II(Args _args) { custReport custReport = new custReport(); printJobSettings printJobSettings = new printJobSettings(); ; custReport.makeReportRun(); // Modify Query sysQuery::findOrCreateRange(custReport.reportRun().query().dataSourceTable(tableNum(custTable)), fieldNum(custTable, custGroup)).value(queryValue('10')); custReport.reportRun().query().interactive(false); // Create printJobSettings printJobSettings.setTarget(PrintMedium::File); printJobSettings.format(PrintFormat::PDF); printJobSettings.fileName(@"C:\Temp\CustTableReport.pdf"); // Apply printJobSettings custReport.reportRun().printJobSettings(printJobsettings.packPrintJobSettings()); custReport.reportRun().report().interactive(false); // Disable default printer-dialog custReport.reportRun().run(); }Obiger Code instanziiert ein Objekt der Klasse custReport, deren wesentliche Methoden wie folgt aussehen:
class CustReport extends runBaseReport { }public identifiername lastValueElementName() { identifiername ret; //ret = super(); ret = reportStr(Cust); return ret; }static ClassDescription description() { return "Custreport"; }static void main(Args args) { CustReport CustReport; ; CustReport = new CustReport(); if (CustReport.prompt()) { CustReport.run(); } }