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

Fachlicher Hintergrund

Die Druckkonfiguration soll in Abhängigkeit der eingetragenen Währung angepasst werden. Wenn im Auftrag EUR als Währung eingetragen ist, wird dem Formular Auftragsbestaetigung Liefergeschaeft ein weiteres Ausgabeformat Auftragsbestaetigung Projektgeschaeft angehängt.

 

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());
                }
            }    
        }
    }
}

 

 

 

  • Keine Stichwörter