Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Auszug
hiddentrue

Nuclos Event-Regel Drucken: Interface, PrintContext, Struktur, Zuweisung im Server-Regelmanager, Beispielcode (Java).

globe with meridians Sprache: Deutsch · English

open book Event - Drucken

Ereignis-Regel „Drucken“: Interface, Kontext und ein Beispiel – so reagierst du auf dieses Nuclos-Ereignis.

Status
colourGrey
titleReferenz
Status
colourBlue
titleEntwickler
Status
colourGreen
titleStand: Jul 2026
Status
colourGrey
titlegilt fuer Nuclos 4.2026.x

Panel
bgColor#F4F5F7

Auf dieser Seite

Inhalt
maxLevel2

Allgemein

Regeln des Typs "Print" können nur Businessobjekte zugewiesen werden und müssen das Interface "PrintRule" implementieren.

Innerhalb des Baums mit der Regelbibliothek werden sie dem Knoten "Drucken" zugeschrieben.

minLevel2

Wann greift die Regel?

Diese serverseitige Regel wird ausgeführt beim Drucken eines Formulars/Reports (vor der Ausgabe). Sie kann einem Businessobjekt zugewiesen werden.

Struktur

Grundgerüst der Regelklasse (der Regeleditor legt es automatisch an):

...

Codeblock
languagejava

...

package org.nuclet.businessentity; 
import org.nuclos.api.rule.PrintRule; 
import org.nuclos.api.context.PrintContext; 
import org.nuclos.api.annotation.Rule; 
import org.nuclos.api.exception.BusinessException; 
/** @name        
  * @description 
  * @usage       
  * @change      
*/
@Rule(name="Printouts Vorfiltern", description="Printouts Vorfiltern")
public class PrintoutsVorfiltern implements PrintRule {
    public void print(PrintContext context) throws BusinessException { 
    }
}
Info
titleKontext: PrintContext

Der Kontext PrintContext liefert das betroffene BusinessObject über context.getBusinessObject(...); zusätzlich stehen die Funktionen des RuleContext (Provider) bereit. Eine BusinessException bricht den Vorgang ab.

Zuweisung

Im Server-Regelmanager per Drag-and-Drop dem Ziel zuweisen. Optional lässt sich die Ausführung auf einen Status oder eine Aktion einschränken; die Reihenfolge steuerst du über die Pfeil-Buttons.

Beispiel

Das folgende Beispiel soll den Aufbau einer Regel vom Typ „Print„ und die Weiterverarbeitung der übergebenen Inhalte veranschaulichen.

Codeblock
languagejava
package de.mynuclet; 
import org.nuclos.api.rule.PrintRule;
import org.nuclos.api.context.PrintContext;
import org.nuclos.api.printout.Printout;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.printout.PrintoutList;
import de.mynuclet.formulare.*;
 
/** @name           PrintRuleBeispiel      
  * @description    Zeigt ein einfaches Anwendungsbeispiel für die Modifizierung der Ausgabeformate  ueber eine PrintRule
  * @usage      
  * @change     
*/
@Rule(name="PrintRuleBeispiel", description="PrintRule Beispiel")
public class PrintRuleBeispiel implements PrintRule {
    public void print(PrintContext context) throws BusinessException {
        final Auftrag auftrag = context.getBusinessObject(Auftrag.class);
        context.log("printoutlist " + context.getPrintoutList());
        if ("EUR".equals(auftrag.getWaehrung())) {
            context.log("Die Währung \"EUR\" wurde angegeben");
            for (final Printout printout : context.getPrintoutList()) {
                if (AuftragsbestaetigungLiefergeschaeftPO.class.equals(printout.getClass())) {
                    context.log("attach output format " + AuftragsbestaetigungProjektgeschaeftPO.Auftrag_Projektgeschaeft.getClass().getName());
                    printout.getOutputFormats().add(AuftragsbestaetigungProjektgeschaeftPO.Auftrag_Projektgeschaeft);
                    context.log("after attach" + printout.getOutputFormats().size());
                } else {
                    context.log(printout.getClass() + " != " + AuftragsbestaetigungLiefergeschaeftPO.class.getName());
                }
            }    
        }
    }
}

Verwandte Seiten

open book Regeln (serverseitig)


Grundlagen.

Öffnen →

gear Server Regelmanager


Zuweisen.

Öffnen →

clipboard Ausführungsreihenfolge der Regeln


Reihenfolge.

Öffnen →

Das entsprechende Interface schreibt die Implementierung der Methode "print" vor und liefert als Kontext die Klasse PrintContext.

Darin enthalten sind

  •  Das Businessobjekt aus dem Aufruf Kontext
  •  Vorkonfigurierte Printouts

Weiterhin können die Funktionen des übergeordneten RuleContexts genutzt werden.

Wird ein Datensatz ausgedruckt erstellt Nuclos eine Instanz der PrintRule und ruft die print-Methode mit einem PrintContext auf.

Dieser enthält die vorkonfigurierten Druckprofile (Konfiguration->Report->Formular) des dahinterliegende Businessobjekts.

Der Liste können Elemente hinzugefügt und entnommen werden in Abhängigkeit des eigenen Prozesses

Innerhalb der print-Methode kann der Regelprogrammierer auch eine BusinessException werfen, die zum Abbruch des Events und des Druckvorgangs selbst führt. Die Fehlermeldung wird in Nuclos angezeigt.

Die Angabe der Annotation "Rule" ist nicht zwingend notwendig, wird aber empfohlen, da die Beschreibungen (name und description) im Regelbibliotheksbaum angezeigt werden.

Zuweisung

Klassen des Typs "Print" können nur Businessobjekte zugewiesen werden. Nach der Verknüpfung erscheint die Klasse nach Auswahl des Businessobjekts und des Typs im Zuweisungsfenster und bietet folgende weitere Einstellungsmöglichkeiten:

  • Ausführen bei einem bestimmten Status
  • Ausühren bei einer bestimmten Aktion

Image Removed

Mit dem Symbol des Mülleimers kann die Zuweisung der Klasse zum Businessobjekt gelöscht werden. Wichtig ist, dass damit nur die Zuweisung gelöscht wird, nicht die Regel selbst. Weiterhin lässt sich mit Hilfe der Pfeile-Buttons die Ausführungsreihenfolge verändern. Jede Änderung wird automatisch gespeichert.

Beispiel

Hier finden Sie ein Beispiel, das den Aufbau einer Regel vom Typ "Print" veranschaulicht.

Probleme und Lösungen

Support und Informationen zur Problembehandlung finden Sie hier.