Segment protokollieren - Druckerauswahl möglich?

10. November 2014 18:30

Hallo,

ich habe heute eine Anforderung auf den Tisch bekommen, wo ich so spontan nicht weiß, ob das überhaupt bzw. mit einem vertretbaren Aufwand realisierbar ist.
Beim Protokollieren eines Segmentes mit Serienbriefen möchte der Kunde (NAV 2013) vor dem Druck gerne den Drucker auswählen können.
Ich habe mir das jetzt mal angesehen und den Stelle im Code gefunden, wo der Druck gestartet wird:
Codeunit 5054 WordManagement, Funktion ExecuteMerge, bis zum CASE, der abfragt, ob es sich um Fax, mail oder Hardcopy handelt:

TempDeliverySorter."Correspondence Type"::"Hard Copy":
BEGIN
WordDocument.MailMerge.Destination := 0; // 0 = wdSendToNewDocument
WordHelper.CallMailMergeExecute(WordDocument);
WordHelper.CallPrintOut(WordApplication.ActiveDocument);
END;

Leider habe ich keine Idee ob bzw. wie man dort das Verhalten ändern kann, das Navision einfach im Hintergrund auf dem Standarddrucker druckt.
Hat irgendjemand da eine Idee oder das schon mal umgesetzt? :?:

Re: Segment protokollieren - Druckerauswahl möglich?

8. Januar 2015 14:27

Hey,

hattest du eine Lösung gefunden?

Gruß

Re: Segment protokollieren - Druckerauswahl möglich?

8. Januar 2015 15:27

Hallo Camplr3,

ja, ich habe eine Lösung gefunden und zwar wie folgt:

1. Erweiterung Report 5185 Log Segment um ein zusätzliches Eingabefeld "Druckername"
2. Übergabe dieses zusätzliches Feldes an die Funktion LogSegment in Codeunit 5051 SegManagment
3. Von dort Übergabe an ein neues Feld in T5074 Delivery Sorter
4. Anpassung der Funktion ExecuteMerge in Codeunit 5054 WordManangment wie folgt:

TempDeliverySorter."Correspondence Type"::"Hard Copy":
BEGIN
WordDocument.MailMerge.Destination := 0; // 0 = wdSendToNewDocument
WordHelper.CallMailMergeExecute(WordDocument);
//018 XXX0000 /A
IF TempDeliverySorter."Printer Name" <> '' THEN
WordApplication.ActivePrinter(TempDeliverySorter."Printer Name");
//018 XXX0000 /E
WordHelper.CallPrintOut(WordApplication.ActiveDocument);
END;

Funktioniert problemlos in NAV2013, wenn kein Drucker mitgegeben wird, dann nimmt er wie bisher den Standarddrucker.