Drucker auswählen

Bild Microsoft Dynamics NAV 4.xx
(ehem. Microsoft Business Solutions-Navision)

Drucker auswählen

Beitragvon MyERP » 14. Juli 2006 12:14

hallo,

möche über Report.run bzw report.runmodal die Systemauswahl der installierten Drucker erzwingen. wie geht das ?

wenn ich im report in der reqform auf drucken klicke kommt diese auswahl doch auch ?

bei der run bzw runmodal geschichte kann ich zwar einstellen systemprinter wahr oder falsch, ich bekomme aber nicht die auswahl meiner printer ???

danke
MyERP
 
Beiträge: 16
Registriert: 30. Juni 2006 15:03

Beitragvon rotsch » 14. Juli 2006 17:36

Schau mal in der C/SIDE Hilfe nach unter REPORT.RUN. Dort findest du viele Hinweise dazu.

Der Aufruf erfolgt mit diesem Parametern:

Code: Alles auswählen
REPORT.RUN(Number [, ReqWindow] [, SystemPrinter] [, Record])


Wenn du den Parameter ReqWindow auf TRUE setzt, erfolgt auch die Anzeige des Druckerdialoges.
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Beitragvon MyERP » 17. Juli 2006 09:07

Hallo,

diesen Aufruf benutze ich ja. Ich möchte aber nicht das Druckdialogfenster von Navision haben, sondern das Systemdruckfenter, dass bei Navision auch kommt, wenn man im Druckdialog auf drucken klick. Dann pop ein Fenster mit der Auswahl deines Druckers auf! Das Fenster benötige ich, ich möchte hier dann ein PDF-Writer auswählen.
MyERP
 
Beiträge: 16
Registriert: 30. Juni 2006 15:03

Beitragvon mespelage » 17. Juli 2006 09:36

wenn du immer den pdf-Writer benutzen willst, kanns du doch in der Druckerauswahl diesen Drucker fĂĽr diesen Report festlegen.

mfg Michael
mespelage
 
Beiträge: 213
Registriert: 29. März 2006 11:56
Wohnort: Lohne
Realer Name: Michael Espelage
Arbeitsort: Steinfeld
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2015

Beitragvon rotsch » 17. Juli 2006 09:46

Der Parameter ReqWindow steuert beides. Also entweder mit RequestForm des Reports, dann kommt auch der Druckerdialog, oder eben ohne diese beiden Fenster. In dem Fall kommt entweder der Standarddrucker zum Zug, oder, wie mesplage geschrieben hat, muss der Report in der Druckerauswahl hinterlegt werden mit dem gewĂĽnschten Drucker.
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Beitragvon Timo Lässer » 17. Juli 2006 19:48

Ich habe des Ă–fteren mal die Anforderung umsetzen mĂĽssen, dass ein Report nach ganz anderen Kriterien als von Navision unterstĂĽtzt mal auf dem einen, mal auf dem anderen Drucker ausgegeben werden muss.

Dazu habe ich (m)eine SingleInstance-Codeunit "GlobalVariableManagement" (welche ich in so ziemlich jeder Datenbank habe) um zwei Funktionen erweitert:
Code: Alles auswählen
SetSpecialPrinter(NewPrinterName : Text[250])
Printername := NewPrinterName;

GetSpecialPrinter() : NewPrinterName : Text[250]
NewPrinterName := PrinterName;
PrinterName := '';  // Unbedingt löschen!


In der Codeunit 1 frage ich dann in der Funktion FindPrinter meine SI-Codeunit, ob ein abweichender Drucker verwendet werden soll:
Code: Alles auswählen
FindPrinter(ReportID : Integer) : Text[250]
CLEAR(PrinterSelection);

// > TL4.00:02 >>>
"Printer Name" := GlobalVarMgt.GetSpecialPrinter;
IF "Printer Name" = '' THEN
// < TL4.00:02 <<<
IF NOT PrinterSelection.GET(USERID,ReportID) THEN
[...]


Somit kann ich jederzeit vor dem Reportaufruf festlegen, auf welchem Drucker der Report herauskommen soll.
Verwendungsmöglichkeiten dafür gibt es unglaublich viele, man muss seiner Phantasie nur freien Lauf lassen.
Nehmen wir mal an, wir wollen Berichte lagerortabhängig ausgeben, so erweitert man einfach die Tabelle Location um ein Feld "Printer Name", welches eine TableRelation zur Tabelle Printer.ID hat.
Wenn nun ein Ausdruck beim Freigeben von Aufträgen in dem jeweiligen Lager ankommen soll, so übergibt man den hinterlegten Drucker an die SI-Codeunit und setzt somit die Einstellungen in der Tabelle "Printer Selection" einmalig ausser Kraft.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Beitragvon Michael Schumacher » 18. Juli 2006 00:07

@Timo:

unter welcher ID hast du die Codeunit angelegt, und wie sorgst du dafür, dass Kunden mit ihrer Standard NfkU-Lizenz diese auch benutzen können?
Oder erzwingst du so vom Kunden, dass er zusätzliche Codeunits zukauft?
mfg
Michael Schumacher


Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Beitragvon Timo Lässer » 20. Juli 2006 09:01

Ich hatte bisher noch nie ein Projekt mit einer KMU-Lizenz, daher fiel eine weitere zu lizensierende Codeunit nie auf.

Ich lagere solche "Universal-Objekte" immer im 99xxx-Bereich (siehe auch die Objekte im Download-Bereich aus meiner "Tools-Sammlung").
Zuletzt geändert von Timo Lässer am 23. Februar 2007 15:04, insgesamt 1-mal geändert.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Beitragvon Michael Schumacher » 20. Juli 2006 09:58

Dein Feiertagstool zum Beispiel, kann ich mit den normalen UBP-Lizenzen nicht benutzen.... Sie haben kein Recht codeunit..... usw
mfg
Michael Schumacher


Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Re: Drucker auswählen

Beitragvon mueller_gregor » 9. Oktober 2008 15:56

Hei Timo ...

Ich muss einen Report zweimal ausgeben. Einmal auf dem normalen und ein zweites Mal auf
den PDF-Drucker.

Ich möchte den Report aber auf keinen Fall kopieren und ein zweites Mal aufrufen.

Also ĂĽbergebe ich, ĂĽber ein Codeunit, die vom Benutzer eingegebenen Optionen bei
einem zweiten automatischen Aufruf des Reports ... ich weiss aber
nicht wie ich einen anderen Drucker mitgeben kann.

Wann springt er ĂĽberhaupt in die Funktion findprinter in der Codeunit 1.

Für eine Idee wäre ich dankbar.

Gruss aus Neuss

Gregor MĂĽller
mueller_gregor
 
Beiträge: 2
Registriert: 2. September 2008 12:56
Realer Name: Gregor MĂĽller
Arbeitsort: Neuss
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.7

Re: Drucker auswählen

Beitragvon Timo Lässer » 9. Oktober 2008 18:54

mueller_gregor hat geschrieben:ich weiss aber nicht wie ich einen anderen Drucker mitgeben kann.
Das habe ich in dem oben aufgefĂĽhrten Beitrag beschrieben.

mueller_gregor hat geschrieben:Wann springt er ĂĽberhaupt in die Funktion findprinter in der Codeunit 1.
Das geschieht automatisch durch die fin.exe, sobald ein Report gestartet wird.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: Drucker auswählen

Beitragvon mueller_gregor » 10. Oktober 2008 11:04

Danke Timo ..

Ich hab es geschafft. Mein Problem bestand natĂĽrlich noch darin ... woran
erkennt die Codeunit 1, dass es sich um den zweiten Ausdruck (PDF-Ausdruck)
handelt.
Ich habe jetzt einfach in einer Tabelle vor dem zweiten Aufruf die USerid und
die Reporid weggeschrieben .. dies wird von der Codeunit 1 geprĂĽft ... und
danach wird der Eintrag wieder gelöscht.

Ist leider ein bißchen umständlich aber ich kann dem Aufruf der findprinter-Funktion
keinen Paramterer mitgeben.

Danke noch mal fĂĽr die Hilfe.

Gruss

Gregor MĂĽller
mueller_gregor
 
Beiträge: 2
Registriert: 2. September 2008 12:56
Realer Name: Gregor MĂĽller
Arbeitsort: Neuss
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.7

Re: Drucker auswählen

Beitragvon rotsch » 10. Oktober 2008 11:14

Anstelle einer Tabelle könntest du auch eine SingleInstance-Codeunit verwenden und die Werte dort in globalen Variablen speichern und wieder abrufen.
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Re: Drucker auswählen

Beitragvon Tim » 13. Oktober 2008 13:04

Ich hab früher mal folgendes gecoded, um die Druckerauswahl zu manipulieren. Funktioniert, ist aber natürlich nicht schön. Inzwischen steuere ich die Drucker komplett über Automation Server. Das ist zuverlässiger und man kann aufgrund der Events NAV sogar warten lassen, bis der Druck beendet ist.

Code: Alles auswählen
PrinterSel.RESET;
IF NOT PrinterSel.GET(_UserID,_ReportID) THEN BEGIN
  PrinterSel.INIT;
  PrinterSel."User ID" := _UserID;
  PrinterSel."Report ID" := _ReportID;
  PrinterSel."Printer Name" := CompInf."PDF Printer Name";
  PrinterSel.INSERT;
END ELSE BEGIN
  PrinterName := PrinterSel."Printer Name";
  PrinterSel."Printer Name" := CompInf."PDF Printer Name";
  PrinterSel.MODIFY;
END;

// Report drucken!

PrinterSel.GET(_UserID,_ReportID);
IF PrinterName = '' THEN
  PrinterSel.DELETE
ELSE BEGIN
  PrinterSel."Printer Name" := PrinterName;
  PrinterSel.MODIFY;
END;
Tim
 
Beiträge: 244
Registriert: 28. Juli 2007 23:29
Wohnort: Berlin


ZurĂĽck zu NAV 4.xx

Wer ist online?

Mitglieder in diesem Forum: Unbekannter Bot und 1 Gast