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.*