Nuclos Event-Regel Drucken: Interface, PrintContext, Struktur, Zuweisung im Server-Regelmanager, Beispielcode (Java). |
Sprache: Deutsch · English
Ereignis-Regel „Drucken“: Interface, Kontext und ein Beispiel – so reagierst du auf dieses Nuclos-Ereignis.
Auf dieser Seite |
Diese serverseitige Regel wird ausgeführt beim Drucken eines Formulars/Reports (vor der Ausgabe). Sie kann einem Businessobjekt zugewiesen werden.
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 {
}
} |
Der Kontext |
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.
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());
}
}
}
}
} |