Skip to content

Instantly share code, notes, and snippets.

@Sulkar
Last active December 9, 2020 16:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Sulkar/2f6243c2a841858edcf9fffdb4f7deeb to your computer and use it in GitHub Desktop.
Save Sulkar/2f6243c2a841858edcf9fffdb4f7deeb to your computer and use it in GitHub Desktop.
Script Executor: Klasse die in einer Variable erstellt werden kann -> bsp.: Bericht: Klassenübersicht
new bayern.asv.reports.api.groovy.ScriptExecutor("",/
import bayern.asv.reports.api.st.austritt.AustrittEintrittHelper;
import bayern.asv.reports.api.kl.datasources.schuelerliste.SchuelerlisteDatasourceConverter;
import bayern.asv.reports.api.st.migration.Migration;
import bayern.asv.reports.api.tools.arraylistdatasource.ArrayListDataSource;
import de.isb.svp.domain.pojo.Klasse;
import de.isb.svp.domain.pojo.Klassengruppe;
import de.isb.svp.domain.pojo.SchuelerSchuljahr;
import de.isb.base.business.context.Context;
import java.util.Date;
public class KlassengruppeExtender {
private final Klassengruppe klassengruppe;
private Integer schuelerAnzahl = 0;
private Integer schuelerAnzahlM = 0;
private Integer schuelerAnzahlW = 0;
private Integer schuelerMigrationAnzahl = 0;
private Integer schuelerMigrationAnzahlM = 0;
private Integer schuelerMigrationAnzahlW = 0;
private ArrayListDataSource<SchuelerSchuljahr> schueler;
private final ArrayListDataSource<SchuelerSchuljahr> schuelerM;
private final ArrayListDataSource<SchuelerSchuljahr> schuelerW;
private final ArrayListDataSource<SchuelerSchuljahr> schuelerMigration;
private final ArrayListDataSource<SchuelerSchuljahr> schuelerMigrationM;
private final ArrayListDataSource<SchuelerSchuljahr> schuelerMigrationW;
public static final String mitAustritte = "mitAustritte";
public static final String ohneAustritte = "ohneAustritte";
public static final String nurAustritte = "nurAustritte";
public static final String nurAktuelle = "nurAktuelle";
public static final String alle = "alle";
public KlassengruppeExtender() {
}
public KlassengruppeExtender(Klassengruppe klassengruppe) {
this(klassengruppe, mitAustritte);
}
public KlassengruppeExtender(Klassengruppe klassengruppe, String filter) {
super();
this.klassengruppe = klassengruppe;
schueler = new ArrayListDataSource<>();
schuelerM = new ArrayListDataSource<>();
schuelerW = new ArrayListDataSource<>();
schuelerMigration = new ArrayListDataSource<>();
schuelerMigrationM = new ArrayListDataSource<>();
schuelerMigrationW = new ArrayListDataSource<>();
Date selectedDate = Context.get(de.isb.svp.domain.DomainContextConstants.SELECTED_DATE);
ArrayListDataSource<SchuelerSchuljahr> schuelerInKlasse = klassengruppe.getSchuelerSchuljahrListe();
for (SchuelerSchuljahr schuelerSchuljahr : schuelerInKlasse) {
if(filter == "mitAustritte" || AustrittEintrittHelper.isAktuell(schuelerSchuljahr.getSchuelerStamm(),selectedDate)){
schuelerAnzahl++;
schueler.add(schuelerSchuljahr);
if (schuelerSchuljahr.getSchuelerStamm().getGeschlecht()
.equals("männlich")) {
schuelerAnzahlM++;
schuelerM.add(schuelerSchuljahr);
}
if (schuelerSchuljahr.getSchuelerStamm().getGeschlecht()
.equals("weiblich")) {
schuelerAnzahlW++;
schuelerW.add(schuelerSchuljahr);
}
if (Migration.checkMigrationsStatus(schuelerSchuljahr)) {
schuelerMigrationAnzahl++;
schuelerMigration.add(schuelerSchuljahr);
if (schuelerSchuljahr.getSchuelerStamm().getGeschlecht()
.equals("männlich")) {
schuelerMigrationAnzahlM++;
schuelerMigrationM.add(schuelerSchuljahr);
}
if (schuelerSchuljahr.getSchuelerStamm().getGeschlecht()
.equals("weiblich")) {
schuelerMigrationAnzahlW++;
schuelerMigrationW.add(schuelerSchuljahr);
}
}
}
}
}
public Klasse getKlasse() {
return klasse;
}
public Integer getSchuelerAnzahl() {
return schuelerAnzahl;
}
public Integer getSchuelerAnzahlM() {
return schuelerAnzahlM;
}
public Integer getSchuelerAnzahlW() {
return schuelerAnzahlW;
}
public Integer getSchuelerMigrationAnzahl() {
return schuelerMigrationAnzahl;
}
public Integer getSchuelerMigrationAnzahlM() {
return schuelerMigrationAnzahlM;
}
public Integer getSchuelerMigrationAnzahlW() {
return schuelerMigrationAnzahlW;
}
public ArrayListDataSource<SchuelerSchuljahr> getSchueler() {
return schueler;
}
public ArrayListDataSource<SchuelerSchuljahr> getSchuelerM() {
return schuelerM;
}
public ArrayListDataSource<SchuelerSchuljahr> getSchuelerW() {
return schuelerW;
}
public ArrayListDataSource<SchuelerSchuljahr> getSchuelerMigration() {
return schuelerMigration;
}
public ArrayListDataSource<SchuelerSchuljahr> getSchuelerMigrationM() {
return schuelerMigrationM;
}
public ArrayListDataSource<SchuelerSchuljahr> getSchuelerMigrationW() {
return schuelerMigrationW;
}
}
/)
@Sulkar
Copy link
Author

Sulkar commented May 30, 2020

Der ScriptExecutor Parameter kann als Objekt in einem weiteren Parameter (oder Variable) erstellt werden:
z.B.:

$P{KlassengruppeExtender}.execute(/retVal=new KlassengruppeExtender(klassengruppe, filter)/,["klassengruppe":$F{self},"filter":$P{AusgetreteneSchueler}? "mitAustritte" : "ohneAustritte"]).get("retVal")

@Sulkar
Copy link
Author

Sulkar commented May 30, 2020

Dann kann eine Variable erstellt werden, die z.B.: alle Schüler beinhaltet / abruft, indem sie eine Methode des Objekts aufruft:

$P{klassengruppeExtenderObject}).getSchuelerAnzahl

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment