/// <summary> /// Führt den Check durch. /// </summary> /// <param name="schueler">Der Schüler.</param> public override void Check(Schueler schueler) { SeminarfachnoteTableAdapter seminarfachAdapter = new SeminarfachnoteTableAdapter(); var seminarfachnoten = seminarfachAdapter.GetDataBySchuelerId(schueler.Id); if (seminarfachnoten.Count == 0) { contr.Add(null,"Es liegt keine Seminarfachnote vor."); } else { if (seminarfachnoten[0].IsGesamtnoteNull()) { contr.Add(null, "Es liegt keine Seminarfachnote vor."); } else { /* s. UnterpunktungsChecker var note = seminarfachnoten[0].Gesamtnote; if (note < 4) { contr.Add(null, "Im Seminarfach wurden " + note + " Punkte erzielt."); } */ if (seminarfachnoten[0].IsThemaLangNull() && seminarfachnoten[0].IsThemaKurzNull()) { contr.Add(null, "Es liegt kein Seminarfachthema vor."); } } } }
/// <summary> /// Führt den Check durch. /// </summary> /// <param name="schueler">Der Schüler.</param> /// <param name="reason">Die Art der Prüfung.</param> /// <returns>Array mit Fehler- oder Problemmeldungen. Kann auch leer sein.</returns> public override void Check(Schueler schueler, Zeitpunkt reason, NotenCheckResults res) { SeminarfachnoteTableAdapter seminarfachAdapter = new SeminarfachnoteTableAdapter(); var seminarfachnoten = seminarfachAdapter.GetDataBySchuelerId(schueler.Id); if (seminarfachnoten.Count == 0) { res.Add(schueler, null,"Es liegt keine Seminarfachnote vor."); } else { var note = seminarfachnoten[0].Gesamtnote; var thema = seminarfachnoten[0].ThemaLang; if (note < 4) { res.Add(schueler, null, "Im Seminarfach wurden " +note+" Punkte erzielt."); } if (string.IsNullOrEmpty(thema)) { res.Add(schueler, null, "Es liegt kein Seminarfachthema vor."); } } }
/// <summary> /// Konstruktor. /// </summary> /// <param name="schuelerId">Die Id des anzuzeigenden Schülers.</param> public Notenbogen(int schuelerId) { log.Debug("Öffne Notenbogen SchülerId=" + schuelerId); InitializeComponent(); schueler = new Schueler(schuelerId); nameTextBox.Text = schueler.NameVorname; klasseTextBox.Text = schueler.getKlasse.Data.Bezeichnung; textBoxAdresse.Text = schueler.Data.AnschriftStrasse + "\n" + schueler.Data.AnschriftPLZ + " " + schueler.Data.AnschriftOrt + "\n Tel.:" + schueler.Data.AnschriftTelefonnummer; SchuelerNoten noten = schueler.getNoten; // Row[lineCount] für schriftliche und Row[lineCount+1] für mündliche Noten int lineCount = 0; foreach(var kursNoten in noten.alleFaecher) { dataGridNoten.Rows.Add(2); dataGridNoten.Rows[lineCount + 1].Height += 2; dataGridNoten.Rows[lineCount + 1].DividerHeight = 2; dataGridNoten.Rows[lineCount].Cells[0].Value = kursNoten.getFach.Bezeichnung; InsertNoten(1, lineCount, kursNoten.getNoten(Halbjahr.Erstes, Notentyp.Schulaufgabe)); InsertNoten(1, lineCount+1, kursNoten.sonstigeLeistungen(Halbjahr.Erstes)); InsertNoten(10, lineCount, kursNoten.getNoten(Halbjahr.Zweites, Notentyp.Schulaufgabe)); InsertNoten(10, lineCount+1, kursNoten.sonstigeLeistungen(Halbjahr.Zweites)); InsertSchnitt(8,lineCount,kursNoten.getSchnitt(Halbjahr.Erstes)); BerechneteNote zeugnis = kursNoten.getSchnitt(Halbjahr.Zweites); InsertSchnitt(18,lineCount, zeugnis); InsertNoten(20, lineCount, kursNoten.getNoten(Halbjahr.Zweites, Notentyp.APSchriftlich)); InsertNoten(20, lineCount + 1, kursNoten.getNoten(Halbjahr.Zweites, Notentyp.APMuendlich)); if (zeugnis != null) { if (zeugnis.PruefungGesamt != null) { dataGridNoten.Rows[lineCount].Cells[21].Value = zeugnis.PruefungGesamt; dataGridNoten.Rows[lineCount].Cells[22].Value = zeugnis.SchnittFortgangUndPruefung; dataGridNoten.Rows[lineCount].Cells[23].Value = zeugnis.Abschlusszeugnis; } else dataGridNoten.Rows[lineCount].Cells[23].Value = zeugnis.JahresfortgangGanzzahlig; } lineCount = lineCount + 2; } if (schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Elf) { FpANotenTableAdapter fpAAdapter = new FpANotenTableAdapter(); var fpANoten = fpAAdapter.GetDataBySchuelerId(schueler.Id); if (fpANoten.Count == 1) { textBoxFpABemerkung.Text = fpANoten[0].Bemerkung; listBoxFpA.SelectedIndex = fpANoten[0].Note; } } if (schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Dreizehn) { SeminarfachnoteTableAdapter seminarfachAdapter = new SeminarfachnoteTableAdapter(); var seminarfachnoten = seminarfachAdapter.GetDataBySchuelerId(schueler.Id); if (seminarfachnoten.Count == 1) { numericUpDownSeminarfach.Value = seminarfachnoten[0].Gesamtnote; textBoxSeminarfachthemaKurz.Text = seminarfachnoten[0].ThemaKurz; textBoxSeminarfachthemaLang.Text = seminarfachnoten[0].ThemaLang; } } }
/// <summary> /// Konstruktor. /// </summary> /// <param name="sourceFileName">Der Dateiname des Exportfiles der leeren DZeugnis-Tabelle.</param> /// <param name="targetFileName">Der Dateiname des zu erstellenden ImportFiles der DZeugnis-Tabelle.</param> public DZeugnisFileController(string sourceFileName, string targetFileName, Zeitpunkt zeitpunkt) { Faecherspiegel faecher = new Faecherspiegel(); SchuelerTableAdapter ada = new SchuelerTableAdapter(); using (FileStream inStream = new FileStream(sourceFileName, FileMode.Open, FileAccess.Read)) using (StreamReader reader = new StreamReader(inStream, Encoding.GetEncoding("iso-8859-1"))) using (FileStream outStream = new FileStream(targetFileName, FileMode.Create, FileAccess.Write)) using (StreamWriter writer = new StreamWriter(outStream, Encoding.GetEncoding("iso-8859-1"))) { while (!reader.EndOfStream) { var zeile = new VerwalteZeile(reader.ReadLine()); int schuelerId = int.Parse(zeile[Konstanten.schuelerIdCol]); // Prüfe vorher, ob der Schüler existiert (hier kommen tausend Schüler aus den Vorjahren) if (ada.GetDataById(schuelerId).Count == 0) { continue; } Schueler schueler = Zugriff.Instance.SchuelerRep.Find(schuelerId); if (BrauchtZeugnis(schueler, zeitpunkt)) { zeile[Konstanten.fpaCol] = Konstanten.GetFpaString(GetFpaNote(zeitpunkt, schueler)); KlassenzielOderGefaehrdung zielerreichung = GetZielerreichung(zeitpunkt, schueler); zeile[Konstanten.klassenzielOderGefaehrdungCol] = Konstanten.GetKlassenzielOderGefaehrdungString(zielerreichung); if (zeitpunkt == Zeitpunkt.ErstePA || zeitpunkt == Zeitpunkt.ZweitePA || zeitpunkt == Zeitpunkt.DrittePA) { zeile[Konstanten.zeugnisartCol] = zielerreichung == KlassenzielOderGefaehrdung.AbschlusspruefungOhneErfolg ? "J" : "A"; zeile[Konstanten.APBestandenCol] = Konstanten.GetBestandenString(GetBestanden(zeitpunkt, schueler)); } zeile[Konstanten.abweisungCol] = Konstanten.GetAbweisungString(schueler.GefahrDerAbweisung); var seminarfachNote = new SeminarfachnoteTableAdapter().GetDataBySchuelerId(schuelerId); if (seminarfachNote != null && seminarfachNote.Count == 1 && !seminarfachNote[0].IsGesamtnoteNull()) { zeile[Konstanten.seminarfachGesamtnote] = string.Format(CultureInfo.CurrentCulture, "{0:00}", seminarfachNote[0].Gesamtnote); zeile[Konstanten.seminarfachThema] = !string.IsNullOrEmpty(seminarfachNote[0].ThemaKurz) ? seminarfachNote[0].ThemaKurz : seminarfachNote[0].ThemaLang.Substring(0, 128); } string faecherspiegel = zeile[Konstanten.faecherspiegelCol]; if (string.IsNullOrEmpty(faecherspiegel)) { log.Warn("Für den Schüler " + schueler.NameVorname + " gibt es keinen passenden Fächerspiegel!"); continue; } for (int i = 0; i < 30; i++) { zeile[Konstanten.notePflichtfach1Col + i] = faecher.GetFachNoteString(faecherspiegel, i, schueler.getKlasse.Schulart, schueler, zeitpunkt); } if (Konstanten.ZeugnisartFromString(zeile[Konstanten.zeugnisartCol]) != Zeugnisart.Zwischenzeugnis) { for (int i = 0; i < 20; i++) { zeile[Konstanten.jahresfortgangPflichtfach1Col + i] = faecher.FindeJahresfortgangsNoten(faecherspiegel, i, schueler.getKlasse.Schulart, schueler, zeitpunkt); zeile[Konstanten.APschriftlichPflichtfach1Col + i] = faecher.FindeAPSchriftlichNoten(faecherspiegel, i, schueler.getKlasse.Schulart, schueler, zeitpunkt); zeile[Konstanten.APmuendlichPflichtfach1Col + i] = faecher.FindeAPMuendlichNoten(faecherspiegel, i, schueler.getKlasse.Schulart, schueler, zeitpunkt); zeile[Konstanten.gesamtNoteMitAPGanzzahlig1Col + i] = faecher.GetFachNoteString(faecherspiegel, i, schueler.getKlasse.Schulart, schueler, zeitpunkt); } } SucheWahlpflichtfach(zeitpunkt, faecher, zeile, schueler, Konstanten.weiteresFach1BezeichnungCol, Konstanten.weiteresFach1NoteCol); SucheWahlpflichtfach(zeitpunkt, faecher, zeile, schueler, Konstanten.weiteresFach2BezeichnungCol, Konstanten.weiteresFach2NoteCol); SucheWahlpflichtfach(zeitpunkt, faecher, zeile, schueler, Konstanten.weiteresFach3BezeichnungCol, Konstanten.weiteresFach3NoteCol); } // rausgeschrieben werden immer alle Zeugnisse, da im Import "ersetzen" angehakt werden muss writer.WriteLine(zeile.ToString()); } } }
private void buttonSpeichern_Click(object sender, EventArgs e) { if (schueler != null && schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Elf) { FpANotenTableAdapter fpAAdapter = new FpANotenTableAdapter(); var fpANoten = fpAAdapter.GetDataBySchuelerId(schueler.Id); if (fpANoten.Count == 1) { fpAAdapter.Update(listBoxFpA.SelectedIndex, textBoxFpABemerkung.Text, schueler.Id); } else { fpAAdapter.Insert(schueler.Id, listBoxFpA.SelectedIndex, textBoxFpABemerkung.Text); } } if (schueler != null && schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Dreizehn) { SeminarfachnoteTableAdapter seminarfachAdapter = new SeminarfachnoteTableAdapter(); var seminarfachnoten = seminarfachAdapter.GetDataBySchuelerId(schueler.Id); if (seminarfachnoten.Count == 1) { seminarfachAdapter.Update((int)numericUpDownSeminarfach.Value, textBoxSeminarfachthemaLang.Text, textBoxSeminarfachthemaKurz.Text, schueler.Id); } else { seminarfachAdapter.Insert(schueler.Id, (int)numericUpDownSeminarfach.Value, textBoxSeminarfachthemaLang.Text, textBoxSeminarfachthemaKurz.Text); } } }