public byte? ReadSchnittGanzzahlig(BerechneteNotentyp typ, Halbjahr hj, int zeile) { string zelle = CellConstant.getSchnittZelle(typ, hj, zeile); if (zelle == null) return null; string v; if (typ == BerechneteNotentyp.Abschlusszeugnis) v = ReadValue(AP, zelle); else v = ReadValue(notenbogen, zelle); return !string.IsNullOrEmpty(v) ? Convert.ToByte(v, CultureInfo.CurrentUICulture) : (byte?)null; }
/// <summary> /// liefert zum angegeben Notentyp und Halbjahr die Spalte im Excelsheet. Zusammen mit der Zeile (=obere Zeile) /// des Schülers wird die Zelle generiert. /// </summary> public static string getSchnittZelle(BerechneteNotentyp typ, Halbjahr hj, int zeile) { string s=null; if (hj == Halbjahr.Erstes) { zeile++; // die meisten Noten stehen unten switch (typ) { case BerechneteNotentyp.SchnittSA: s = "M"; break; case BerechneteNotentyp.Schnittmuendlich: s = "N"; break; case BerechneteNotentyp.JahresfortgangMitNKS: s = "O"; break; case BerechneteNotentyp.Jahresfortgang: s = "O"; zeile--; break; } } if (hj == Halbjahr.Zweites) { zeile++; switch (typ) { case BerechneteNotentyp.SchnittSA: s = "Y"; break; case BerechneteNotentyp.Schnittmuendlich: s = "Z"; break; case BerechneteNotentyp.JahresfortgangMitNKS: s = "AA"; break; case BerechneteNotentyp.Jahresfortgang: s = "AA"; zeile--; break; case BerechneteNotentyp.APGesamt: s = "G"; break; case BerechneteNotentyp.Abschlusszeugnis: s ="I"; break; } } if (s != null) s = s + zeile; return s; // ggf. ein null String, falls diese Kombi nicht zulässig ist }
public decimal? ReadSchnitt(BerechneteNotentyp typ, Halbjahr hj, int zeile) { string zelle = CellConstant.getSchnittZelle(typ, hj, zeile); if (zelle == null) return null; string v; if (typ == BerechneteNotentyp.APGesamt) v = ReadValue(AP, zelle); else v = ReadValue(notenbogen, zelle); return !string.IsNullOrEmpty(v) ? Convert.ToDecimal(v, CultureInfo.CurrentUICulture) : (decimal?)null; }
public decimal? ReadSchnitt(BerechneteNotentyp typ, Halbjahr hj, int zeile) { string zelle = CellConstant.getSchnittZelle(typ, hj, zeile); if (zelle == null) return null; string v; if (typ == BerechneteNotentyp.APGesamt || typ == BerechneteNotentyp.EndnoteMitNKS) v = ReadValue(AP, zelle); else v = ReadValue(notenbogen, zelle); var zahlenwert = !string.IsNullOrEmpty(v) ? Convert.ToDecimal(v, CultureInfo.CurrentUICulture) : (decimal?)null; return (zahlenwert >= 0) ? zahlenwert : (decimal?)null; // diese Zeile unterdrückt einen Fehler bei der AP Englisch. // Solange die AP noch nicht vorliegt, berechnet das Excel-Sheet in der Englisch-AP einen negativen Wert }