Guida alla creazione, in Microsoft Dynamics AX, di un Job che permette di stampare una fattura su una stampante da noi definita.
Hai la necessità di creare, in Microsoft Dynamics AX, un Job che ti permetta di stampare una fattura su una stampante da te definita, ma non sai da che parte cominciare? Se sei in questa situazione, ti consiglio, allora, di sederti e prenderti 5 minuti per leggere questo articolo dove ti mostrerò alcune righe di codice che ti potrebbero aiutare nel risolvere il tuo problema.
La prima cosa da fare, dopo aver aperto il gestionale della casa di Redmond, è quello di creare un nuovo Job o un nuovo metodo. Una volta creato è sufficiente aggiungere le righe di codice qui sotto.
Nell’esempio qui sotto riportato vado a stampare sulla stampante MyPrinter tutte le fatture create in data odierna.
//Metodo creato da Faion Andrea il 30/05/2017 per la stampa di tutte le fatture giornaliere
static void StampaFatture(Args _args)
//Dichirazione delle variabili
SalesFormLetter salesFormLetter;
PrintJobSettings printJobSettings;
CustInvoiceJour CustInvoiceJour;
//Ciclo all'interno delle Fatture e prendo solo quelle create in data odierna
while select * from CustInvoiceJour
where CustInvoiceJour.createdDate == SystemDateGet()
SalesFormletter = SalesFormletter::construct(DocumentStatus::Invoice, false);
printJobSettings = new printJobSettings();
//Imposto il nome della stampante su cui voglio stampare le fatture
PrintJobSettings.deviceName("MyPrinter");
//Stabilisco il formato e dove voglio mandare la stampante
printJobSettings.setTarget(PrintMedium::Printer);
printJobSettings.format(PrintFormat::PDF);
//Nascondo eventuali messaggi di avviso se il file esiste già
printJobSettings.warnIfFileExists(false);
//Mi segno sul registro degli eventi il numero della fattura stampata
info("Stampata la fattura numero: " + CustInvoiceJour.InvoiceId);
SalesFormletter.updatePrinterSettingsFormLetter(printJobSettings.packPrintJobSettings());
CustInvoiceJour.printJournal(SalesFormletter);
Box::info("Elaborazione Terminata");
//Metodo creato da Faion Andrea il 30/05/2017 per la stampa di tutte le fatture giornaliere
static void StampaFatture(Args _args)
{
//Dichirazione delle variabili
SalesFormLetter salesFormLetter;
PrintJobSettings printJobSettings;
CustInvoiceJour CustInvoiceJour;
;
//Ciclo all'interno delle Fatture e prendo solo quelle create in data odierna
while select * from CustInvoiceJour
where CustInvoiceJour.createdDate == SystemDateGet()
{
//Tipo di documento
SalesFormletter = SalesFormletter::construct(DocumentStatus::Invoice, false);
printJobSettings = new printJobSettings();
//Imposto il nome della stampante su cui voglio stampare le fatture
PrintJobSettings.deviceName("MyPrinter");
//Stabilisco il formato e dove voglio mandare la stampante
printJobSettings.setTarget(PrintMedium::Printer);
printJobSettings.format(PrintFormat::PDF);
//Nascondo eventuali messaggi di avviso se il file esiste già
printJobSettings.warnIfFileExists(false);
//Mi segno sul registro degli eventi il numero della fattura stampata
info("Stampata la fattura numero: " + CustInvoiceJour.InvoiceId);
SalesFormletter.updatePrinterSettingsFormLetter(printJobSettings.packPrintJobSettings());
//Stampo il tutto
CustInvoiceJour.printJournal(SalesFormletter);
}
//Comunico la fine
Box::info("Elaborazione Terminata");
}
//Metodo creato da Faion Andrea il 30/05/2017 per la stampa di tutte le fatture giornaliere
static void StampaFatture(Args _args)
{
//Dichirazione delle variabili
SalesFormLetter salesFormLetter;
PrintJobSettings printJobSettings;
CustInvoiceJour CustInvoiceJour;
;
//Ciclo all'interno delle Fatture e prendo solo quelle create in data odierna
while select * from CustInvoiceJour
where CustInvoiceJour.createdDate == SystemDateGet()
{
//Tipo di documento
SalesFormletter = SalesFormletter::construct(DocumentStatus::Invoice, false);
printJobSettings = new printJobSettings();
//Imposto il nome della stampante su cui voglio stampare le fatture
PrintJobSettings.deviceName("MyPrinter");
//Stabilisco il formato e dove voglio mandare la stampante
printJobSettings.setTarget(PrintMedium::Printer);
printJobSettings.format(PrintFormat::PDF);
//Nascondo eventuali messaggi di avviso se il file esiste già
printJobSettings.warnIfFileExists(false);
//Mi segno sul registro degli eventi il numero della fattura stampata
info("Stampata la fattura numero: " + CustInvoiceJour.InvoiceId);
SalesFormletter.updatePrinterSettingsFormLetter(printJobSettings.packPrintJobSettings());
//Stampo il tutto
CustInvoiceJour.printJournal(SalesFormletter);
}
//Comunico la fine
Box::info("Elaborazione Terminata");
}
Prima di lanciare l’esecuzione del metodo apportare le personalizzazioni del caso.
Spero di esserti stato d’aiuto e di averti aiutato nel risolvere il tuo problema. Per qualsiasi dubbio non farti problemi commenta e vedrò, appena possibile, di aiutarti.
*Metodo creato e testato per la versione 4 di Microsoft Dynamics AX.
Ti potrebbe interessare anche:
Commenta per primo