Diese Seite richtet sich nur an Anwender mit tiefgreifender Erfahrung im Bereich Informatik und Anwendungsentwicklung.
Das ASV-Team, die LTMs und die MULTIs leisten hierzu keinen technischen Support!
Zum technischen Verständnis: die Daten in ASV sind bei der Enterprise-Installation in einer relationalen Datenbank abgelegt. Der Zugriff auf die Datenschicht erfolgt ausschließlich (!) über die Business-Objekte in Form von Klassen, z.B. die Klasse Schueler, Lehrer, Unterricht oder SchuelerSchuljahr, SchuelerStamm usw. Ein Zugriff direkt auf die ASV-Datenkbank ist nicht vorgesehen und kann, bedingt durch die mehrschichte Systemarchitektur, zur Lieferung falscher Daten führen. Damit der Datenzugriff dennoch möglich ist, arbeitet die ASV mit einem Mehr-Schicht-Datenzugriffs-Modell:
Schicht | Bezeichnung | Zugriff möglich für | Anwendung |
---|---|---|---|
Schicht 0 | Datenbank-Ebene | nur ASV-Kernteam und NUR im Supportfall auf Zuspielung einer schulscharfen Sicherung durch die Schule | nicht möglich (u.A. wegen Datenschutz) |
Schicht 1 | Java-Ebene | nur ASV-Kernteam, Anwendungsentwicklung | nicht möglich |
Schicht 2 | Java-Ebene | nur ASV-Kernteam, Berichte-Ersteller | Jasper-Reports |
Schicht 3 | Business-Objekt-Ebene | Erfahrene Benutzer (z.B. Zugriff auf item.schuelerStamm.geschlecht()) | Textfeld mit OnLoad-Event (Syntax: Groovy) im Serienbrief-, Listen-, Etiketten-Generator und im Exportformat |
Schicht 4 | Virtuelle Felder | jeder Benutzer | Virtuelle Felder (= Datenfeld) im Serienbrief-, Listen-, Etiketten-Generator und im Exportformat |
Schicht 5 | ASV-Anwendung | jeder Benutzer (= das, was man in der Oberfläche sieht) | Anwendung der ASV (= das, was man in den Modulen sieht) |
Abhängig vom Bericht kann es sein, dass Sie
obj?.schuelerSchuljahr. durch obj?
ersetzen müssen, weil Sie sich möglicherweise schon im Datenbereich SchülerSchuljahr befinden.
ASV kann diese Code-Stücke für alle Ausgabe-Arten verarbeiten. Abhängig von der Ausgabe-Art müssen Sie aber beachten:
def st = obj?.schuelerStamm; return st.schStrasse + " " + st.schHausnummer + "\n";
def stb = obj?.schuelerStamm?.ausbildungBetrieb; String strReturn = ""; if (stb != null) { if (stb?.betriebName1 != null) { strReturn = stb?.anschrStrasse + " " + stb?.anschriftHausnr + "\n"; } }
obj?.schuelerStamm.vorbildungSchulischM?.kurzform
obj.schuelerStamm?.austrittsdatumBldg;
obj.schuelerStamm?.abschlussBeruflichBldg?.kurzform
obj?.schuelerStamm?.wlAustrittGrund obj?.schuelerStamm?.wlAustrittGrund?.anzeigeform
obj?.schuelerStamm?.ausbBeruf; obj?.schuelerStamm?.ausbBerufLang; obj?.schuelerStamm?.ausbBerufWeiblich; obj?.schuelerStamm?.ausbBerufWeiblichLang;
def berufsbez = ""; if(obj.schuelerStamm.m_w.kurzform == "M") { berufsbez = obj?.schuelerStamm?.ausbBerufLang; } else { berufsbez = obj?.schuelerStamm?.ausbBerufWeiblichLang; } berufsbez = berufsbez.toString(); if (berufsbez.length() > 0) { berufsbez = berufsbez.replace("]",""); berufsbez = berufsbez.replace("[",""); } // Ausgabe im Serienbrief item.value = berufsbez; // Ausgabe in Filtern, Office-Schablonen und Listen return berufsbez;
obj?.schuelerStamm.getWlStellungImBeruf().getAnzeigeform() obj?.schuelerStamm.getWlStellungImBeruf().getKurzform()
obj?.schuelerStamm.wlKostentraeger.anzeigeform obj?.schuelerStamm.wlKostentraeger.kurzform
obj?.schuelerSchuljahr.wlGastschuelerart?.anzeigeform obj?.schuelerSchuljahr.wlGastschuelerart?.kurzform
obj?.schuelerStamm.foerderungsnummer
obj?.schuelerSchuljahr?.kammer
def strReturn = ""; def strReturn = ""; if (obj?.getAusbildung() != null) { if (obj?.getAusb().getBetriebBerufPerson() != null) { def objPersonList = obj?.getAusb().getBetriebBerufPerson().getBetriebBerufPersonAusbildungsberufList(); if (objPersonList != null) { objPersonList.each() { objPerson -> if (objPerson.getWlBbig() != null) { // Prüfung auf den Ausbildungsberuf des Ansprechpartners = Beruf des Schülers if (objPerson.getAusbildungsberuf().getKurzform() == obj?.getAusbildungsberuf().getKurzform()) { strReturn += objPerson.getWlBbig().getKurzform(); } } } } } } if (strReturn.length() < 1) { strReturn = "ohne Kammer"; } return strReturn;
def strReturn = ""; if (obj?.getAusbildung() != null) { if (obj?.getAusbildung().getBetriebBerufPerson() != null) { def objPersonList = obj?.getAusbildung().getBetriebBerufPerson().getBetriebBerufPersonAusbildungsberufList(); if (objPersonList != null) { objPersonList.each() { objPerson -> if (objPerson.getWlBbig() != null) { // Prüfung auf den Ausbildungsberuf des Ansprechpartners = Beruf des Schülers if (objPerson.getAusbildungsberuf().getKurzform() == obj?.getAusbildungsberuf().getKurzform()) { strReturn += objPerson.getWlBbig().getKurzform(); } } } } } } if (strReturn.length() < 1) { strReturn = "ohne Kammer"; } if (strReturn == 'IHK_Beispiel_Kürzel') { return true; } else { return false; }
obj?.schuelerStamm?.abschlussBeruflich?.getAnzeigeform()
def strReturn = " "; obj?.zeugnisSchuelerListe?.each{zeugnisSchueler-> if(zeugnisSchueler?.getZeugnisFormular().getWlZeugnisart().getSchluessel() == "30"){ zeugnisSchueler?.zeugnisTextList.each{zeugnisText-> if (zeugnisText.getElementname() == "txtBSDurchschnittsnoteAZ" && zeugnisText.getText() != null) { strReturn = zeugnisText.getText().replace("Durchschnittsnote ",""); } } } } // Rückgabe in Serienbrief item.value = strReturn; // Rückgabe in Liste, Office-Schablone, Exportformat return strReturn;
obj?.schuelerSchuljahr?.ausbildung?.betriebBerufPerson?.person?.anredeAnzeigeform
alternativ, wenn Sie bereits im Datenbereich Schüler sind
obj?.ausbildung?.betriebBerufPerson?.person?.anredeAnzeigeform
obj?.schuelerStamm?.klassengruppe?.klasse?.wlOrganisationsform?.getKurzform() obj?.schuelerStamm?.klassengruppe?.klasse?.wlOrganisationsform?.getAnzeigeform()
obj?.schuelerStamm?.klassengruppe?.klasse?.getUnterrichtsstundenProWoche()
def tempGeschlechtAmtsb = ""; if(obj?.klassengruppe?.klasse?.getKlasseninformationenKlassenleiter()?.getLehrerStamm()?.getWlGeschlecht()?.kurzform == "W") tempGeschlechtAmtsb = obj?.klassengruppe?.klasse?.getKlasseninformationenKlassenleiter()?.getLehrerStamm()?.getAmtsbezeichnung()?.getKurzformW(); else tempGeschlechtAmtsb = obj?.klassengruppe?.klasse?.getKlasseninformationenKlassenleiter()?.getLehrerStamm()?.getAmtsbezeichnung()?.getKurzform();
return (obj.schuelerStamm.m_w.kurzform == "M") ? "Der Schüler" : "Die Schülerin"
return obj?.schuelerStamm?.geburtsdatum.format("dd.MM.yyyy")
return obj.schuljahr.kurzform
def Date ersterST = new Date() ersterST = obj.schuljahr.ersterSchultag return ersterST.format('dd.MM.yyyy')
return obj.klassengruppe.klasse.klassenleitungName
def st = obj?.schuelerStamm; String strReturn = ""; strReturn += st.familienname + "\n" strReturn += st.rufname + "\n" strReturn += st.schStrasse + " " + st.schHausnummer + "\n"; strReturn += st.schAnschrPLZ + " " + st.schAnschrOrt + "\n"; if (st.schStaat != null) { if (st.schStaat.anzeigeform.equals("Deutschland") == true) { strReturn += "\n"; } else { strReturn += st.schStaat.anzeigeform + "\n"; } } return strReturn;
String strBetriebName1 = ""; String strBetriebeAdresse = ""; def stb = obj?.schuelerStamm?.ausbildungBetrieb; if (stb != null) { if (stb?.betriebName1 != null) { strBetriebName1 = stb?.betriebName1; strBetriebeAdresse = stb?.betriebName1 + "\n" if (stb?.betriebName2 != null) { if (stb?.betriebName2.length() > 1) { strBetriebeAdresse += stb?.betriebName2 + "\n" } } if (stb?.ansprVORNAMEN.get(0) != null) { strBetriebeAdresse += "zu Hd." if (stb?.ansprAkad.get(0) != null) { strBetriebeAdresse += " " + stb?.ansprAkad.get(0); } strBetriebeAdresse += " " + stb?.ansprVORNAMEN.get(0) + " " + stb?.ansprName.get(0) + "\n"; } strBetriebeAdresse += stb?.anschrStrasse + " " + stb?.anschriftHausnr + "\n"; strBetriebeAdresse += stb?.anschriftPLZ + " " + stb?.anschriftOrt + "\n"; if (stb?.anschriftStaat != null) { if (stb?.anschriftStaat?.anzeigeform.equals("Deutschland") == false) { strBetriebeAdresse += + stb?.anschriftStaat?.anzeigeform + "\n"; } } } } return strBetriebeAdresse;
public class Tools { public static Benutzer getBenutzer() { String login = AuthUtils.getCurrentUserLogin(); List benutzerList = Locator.getInstance(BenutzerDAO.class).findByKennung(login); if (benutzerList.size() > 0) { Benutzer benutzer = (Benutzer) benutzerList.get(0); return benutzer; } return null; } }
Dieser Code muss im Feldaufruf genutzt werden:
Tools.getBenutzer.getBenutzerName(); Tools.getBenutzer.getBenutzerVorname(); Tools.getBenutzer.getFullname(); Tools.getBenutzer.getVorname(); Tools.getBenutzer.getName(); Tools.getBenutzer.getNameVorname()
item.src = obj.schuelerStamm.schuleStamm?.schullogo
item.value = obj?.wlKategorieupzberechnung?.toString();
import de.isb.svp.domain.pojo.SchuelerSchuljahr; import de.isb.svp.domain.pojo.SchuelerKommunikation;
Einfügen in Spalte „Skript“:
final SchuelerSchuljahr ssj = obj; List<SchuelerKommunikation> skListe = ssj.getSchuelerStamm().getKommunikationen(); String ausgabe = ""; for (SchuelerKommunikation k : skListe) { if(k.getKommunikation().getWlKommunikationstyp().getSchluessel().equals("10")) ausgabe = k.getKommunikation().getKommunikationsadresse(); } return (ausgabe);
Eine Gute Informationsquelle über Groovy ist auch eine Online-Dokumentation.
return new Date().format("dd.MM.yyyy")
datum = new Date() datum = datum + 10 return datum.format("dd.MM.yyyy")
new SimpleDateFormat("dd.MM.yyyy").format(feld.getDate())
item.value = "alter Wert"; item.value = item.value.replace("]",""); item.value = item.value.replace("[","");
if (obj?.schuelerStamm.feldname != null) { // Feldwert zurückgeben item.value = obj?.schuelerStamm.feldname; } else { // Entwertungszeichen oder Text zurückgeben item.value = "-"; }
Serienbriefe oder Etiketten benötigen, um auf alle Felder der ASV zugreifen zu können, einige Imports im Global Scripting. Diese finden Sie im Serienbrief-Generator > Modulbezogene Funktionen > Globales Scripting.
import javax.swing.*; import de.isb.svp.client.ze.scripting.objects.*; import de.isb.svp.domain.pojo.SchuleStamm; import de.isb.svp.domain.pojo.SchuleSchuljahr; import de.isb.svp.domain.pojo.WlSchuljahr; import de.isb.svp.domain.pojo.LehrerStamm; import de.isb.svp.domain.pojo.Benutzer; import de.isb.svp.domain.pojo.Anschrift; import de.isb.svp.domain.pojo.Aussenstelle; import de.isb.svp.domain.BenutzerDAO; import de.isb.svp.domain.Schulart; import de.isb.svp.auth.AuthUtils; import de.isb.base.business.Locator; import de.isb.base.utils.Strings; import bayern.asv.api.tools.SchulnameFormatter; import bayern.asv.reports.api.st.schulwechsel.SchulwechselHelper; import bayern.asv.reports.api.tools.unterzeichner.UnterzeichnerDatenHelper; import java.util.*; import java.lang.* import java.text.* import javax.swing.*