diff --git a/asv_filter_scharf.java b/asv_filter_scharf.java new file mode 100644 index 0000000..790d4b7 --- /dev/null +++ b/asv_filter_scharf.java @@ -0,0 +1,56 @@ +// eine frei formulierte Filterbedingung muss einen boolischen Wert zurückgeben +// +// "dialogwertZeile" liefert den Vergleichswert, welcher bei der zu dieser Filterzeile gehörigen +// Dialog-Abfrage angegeben wurde. +// +// "dialogwerteMap.get(n)" liefert den Vergleichswert, welcher bei der zur Filterzeile "n" +// gehörigen Dialog-Abfrage angegeben wurde. +import de.isb.svp.domain.pojo.SchuelerSchuljahr; + +SchuelerSchuljahr schuelerSchuljahr = obj; + +noteListe = schuelerSchuljahr.getNoteListe(); +daten_alle_einzelnoten = []; +daten_schnitte = []; +java.text.NumberFormat nf = java.text.NumberFormat.getNumberInstance(Locale.GERMANY); + +for (i=0; i < noteListe.size(); i++) { + String bezeichner = noteListe[i].getBlockbezeichner(); + try { + String note = noteListe[i].note; + note = note.replaceAll("-",""); + daten_eine_note = Integer.parseInt(note); + } + catch (NumberFormatException e) { + daten_eine_note = 0; + } + if ((bezeichner == "Kleine LN 1. Halbjahr" || bezeichner == "Kleine LN 2. Halbjahr" || + bezeichner == "Große LN 1. Halbjahr" || bezeichner == "Große LN 2. Halbjahr" ) && daten_eine_note != 0) { + daten_alle_einzelnoten.add(daten_eine_note); + } + else if (bezeichner == "KLEIN gesamt" || bezeichner == "GROSS gesamt") { + schnitt = nf.parse(noteListe[i].note).floatValue(); + daten_schnitte.add(schnitt); + } +} + +boolean pan = false; +boolean einzelPAN =false; + +for (int element : daten_alle_einzelnoten) { + if (element == 5 || element == 6){ + einzelPAN = true; + break; + } +} + +if (einzelPAN) { + for (float element : daten_schnitte) { + if (element > 4.5) { + pan = true; + break; + } + } +} + +return pan;