Imprimer le Rapport dans Microsoft Dynamics AX 2009 par le biais de X++
Je suis en train d'imprimer des ventes rapport de confirmation sur un bouton sur lequel j'ai ajouté sur les Ventes de Détail de Commande formulaire dans Microsoft Dynamics AX 2009. Sur l'événement click du bouton, j'ai écrit du code suivant:
void clicked()
{
Args args;
ReportRun reportRun;
SalesFormLetter salesFormLetter;
PrintJobSettings printJobSettings;
CustConfirmJour custConfirmJour;
RecordSortedList list = new RecordSortedList(55);
SalesTable salesTableUpdate;
;
SELECT firstonly custConfirmJour order by ConfirmID desc where custConfirmJour.SalesId == salesTable.SalesId ;
list.ins(custConfirmJour);
args = new Args(ReportStr(SalesConfirm));
printJobSettings = new PrintJobSettings();
printJobSettings.SetTarget(PrintMedium::Printer);
printJobSettings.suppressScalingMessage(true);
salesFormLetter = new SalesFormLetter_Confirm(true);
salesFormLetter.updatePrinterSettingsFormLetter(printJobSettings.packPrintJobSettings());
args.designName("Standard");
args.caller(salesFormletter);
args.parmEnum(PrintCopyOriginal::Original);
args.parmEnumType(enumnum(PrintCopyOriginal));
args.object(list);
reportRun = new ReportRun(args);
reportRun.setTarget(PrintMedium::Printer);
reportRun.init();
reportRun.run();
}
Le code fonctionne bien sauf le problème au lieu d'envoyer le rapport directement sur l'imprimante, l'aperçu avant impression est à venir.
Je vais être très greateful si quelqu'un d'entre vous pourrait me permettre de savoir quel est le problème avec ce code.
Rgds
Haroon
Vous devez vous connecter pour publier un commentaire.
Puisque vous n'êtes pas de l'envoyer dans une référence à n'importe quelle imprimante, il devrait utiliser la valeur par défaut de l'imprimante, qui peut très bien être XPS de Microsoft ou de certains d'affichage de l'imprimante.
J'ai eu à envoyer dans le printersetting le rapport (SalesInvoice) et ajouter un peu de code pour renifler tout envoyé printersetting. Sinon, le rapport va utiliser quel que soit printersetting qui s'applique à ce type de rapport. Obtenir que le travail m'a permis de passer dans les différents printersettings, comme le courrier Électronique, PDF, etc, etc... 🙂
Si vous ne connaissez pas l'appareil que l'utilisateur a défini comme imprimante par défaut, puis il sera toujours l'impression vers l'imprimante par défaut. Si vos paramètres par défaut sont à imprimer à l'écran (même si le Support d'Impression sélectionné::Imprimante), il va quand même aller à l'écran. Je pense que vous devez sélectionner PrintMedium::l'Écran et l'avoir toujours aller à l'écran de sorte que l'utilisateur peut sélectionner une imprimante, sinon, ils peuvent ne pas savoir où le rapport imprimé (j'ai des utilisateurs qui ont impair choix par défaut de l'imprimante, ce qui peut être à travers le bâtiment).
essayez ceci:
Par le biais de ce code, j'appelle un rapport de Trois fois (variable maxReports), chaque fois qu'il va directement à l'imprimante.