Home Forum Nuclos Konfiguration Formulare Automatisches Drucken nach Statusübergang

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)
  • Autor
    Beiträge
  • #9005
    Ronald Sedelies
    Teilnehmer

    Hallo!
    Ich versuche nach einem Statusübergang einen Lieferschein zu drucken.
    Dafür habe ich folgende Methode:
    public static void print(Lieferschein lieferschein) throws BusinessException {
    NuclosFile result;
    Map parameter = new HashMap();
    parameter.put(„id“, lieferschein.getId());
    result = PrintoutProvider.run(LieferscheinPO.Druck, lieferschein.getId(), parameter);
    FileProvider.print(result, „EPSON_WF_3640_Series“);
    }

    Es gibt keinen Fehler, eine pdf Datei wird in das Nuclos Datenverzeichnis geschrieben, aber es wird nichts ausgedruckt.

    Wenn ich keinen Drucker angebe:
    FileProvider.print(result);
    bekomme ich eine Exception (siehe Anhang).

    Der Ausdruck direkt aus der Formulardefinition (zum Testen) funktioniert übrigens ohne Probleme.

    Ich meine auch, dass es schon mal geklappt hat. Zur Zeit benutze ich
    Nuclos V4.11.2 (2016-09-30 11:23:53), JRE Version 1.8.0_101. Der Server benutzt jdk1.7.0_80.

    Ich hoffe, es kann jemand helfen.

    Gruß

    Ronald

    Attachments:
    #9006
    Nick Röder
    Teilnehmer

    Am Besten sie nutzen den Druckdienst (Administration) um die verfügbaren Drucker zu finden.

    Im entsprechenden Report kann ein Standarddrucker hinterlegt werden. Dieser fehlt vermutlich im Report.

    Über den Fileprovider können dann aber noch die Parameter verändert werden

    z.B.
    org.nuclos.api.report.OutputFormat of = FormularRechnungPO.Formular_Rechnung;
    //PrintProperties aus dem OutputFormat des Reports holen
    PrintProperties properties = of.getProperties();
    properties.setPrintServiceId(uidDrucker);
    properties.setTrayId(uidDruckerfach);
    NuclosFile fDoc = PrintoutProvider.run(of , boRechnung.getId());
    FileProvider.print(fDoc, properties);

    wobei die uidDrucker und uidDruckerfach eben aus dem Druckdienst zu holen wären. Geht über das Objekt nuclosprintservice.

    #9007
    Ronald Sedelies
    Teilnehmer

    Vielen Dank für die schnelle Antwort.
    Ich habe einen Druckdienst eingerichtet, mit ist aber nicht klar, wie man damit einen bestimmten Drucker ansprechen kann. Es gibt ja nur Name und Beschreibung. Muss der Name dem Druckernamen im System (EPSON WF-3640 Series) oder dem Gerätenamen (EPSON_WF_3640_Series) entsprechen?

    #9008
    Nick Röder
    Teilnehmer

    Sie können nur eine UID an die properties übergeben. D.h. entweder sie setzen den Drucker gleich beim Report als Default Printer ein, dann müssen sie nichts mehr machen.

    Wenn Sie den Drucker ändern wollen, dann müssen Sie den Drucker entweder manuell zuweisen. Es empfiehlt sich dies z.B. beim Berarbeiter als Dropdown zu hinterlegen oder direkt in der Rechnung.

    Ansonsten müssten Sie die UID über eine Datenquelle holen der Sie den Druckernamen als Parameter übergeben

    #9009
    Ronald Sedelies
    Teilnehmer

    Meine Frage ging in eine andere Richtung. Die Druckdienste (deren UID ja dann übergeben wird) müssen doch irgendwie mit einem Systemdrucker verbunden werden. Ich nehme mal an, das passiert über den Gerätenamen (EPSON_WF_3640_Series) im Feld „Name“.

    Wenn ich im Report den erstellten Druckdienst einstelle und Clientdrucker als Ausgabemedium auswähle und den Report ausführe, funktioniert es auch. Aber bei der programmatischen Ausführung FileProvider.print(fDoc, properties); passiert einfach nichts: Obwohl die properties mit den meiner Meinung nach richtigen Infos gefüllt sind (per debugging geprüft) und keine Exception geworfen wird, wird weder ein Druckdialog geöffnet noch das Dokument ausgedruckt.
    Ich habe keine Idee mehr, vielleicht sollte ich Nuclos noch mal neu installieren.
    Ich arbeite übrigens unter OS X 10.11.6.

    #9010
    Nick Röder
    Teilnehmer

    lassen Sie sich doch mal den Parameter

    properties.getPrintServiceId();

    ausgeben und prüfen Sie, welche UID da drinnen steht. Liegt nicht am Mac, habe ich auch 😉

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)