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.

REFERENZ ENTWICKLER STAND: JUL 2026 GILT FUER NUCLOS 4.2026.X

Auf dieser Seite

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):

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 { 
    }
}

Kontext: 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.

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 →

  • Keine Stichwörter