Пример #1
0
        public LeseNotenAusExcel(string afileName, StatusChanged StatusChangedMethod)
        {
            fileName = afileName;
              this.StatusChanged = StatusChangedMethod;

              Status("Öffne Datei " + afileName);
              xls = new OpenNotendatei(fileName);
              // Liste der gespeicherten Sids bereitstellen (alte Sids sollen nicht aus Excel gelöscht werden)
              for (int i = CellConstant.zeileSIdErsterSchueler; i < CellConstant.zeileSIdErsterSchueler + OpenNotendatei.MaxAnzahlSchueler; i++)
              {
            int sid = Convert.ToInt32(xls.ReadValue(xls.sid, CellConstant.SId + i));
            if (sid == int.MaxValue)
            {
              continue; // Schüler wurde gelöscht
            }
            else
            {
              if (sid == 0) break;
              sidList.Add(sid);
            }
              }

              kurs = new Kurs(Convert.ToInt32(xls.ReadValue(xls.sid, CellConstant.KursId)));

              Status("Synchronisiere Datei " + afileName);
              Synchronize();

              Status("Übertrage Noten aus Datei " + afileName);
              DeleteAlteNoten();
              UebertrageNoten();
              success = true;

              // TODO: Gefährlich, private Variablen zu disposen?
              xls.Dispose();
              xls = null;

              Status("fertig mit Datei " + afileName);
        }
Пример #2
0
        /// <summary>
        /// Aus dem übergebenen Kurs wird eine Exceldatei mit allen Schülerdaten generiert
        /// </summary>
        public ErzeugeExcelDatei(diNoDataSet.KursRow aKurs)
        {
            kurs = new Kurs(aKurs);

              if (kurs.getLehrer == null)
              {
            return; // es gibt auch Kurse ohne Lehrer, z. B. übernommene Noten aus 11ter Klasse
              }

              alleSchueler = kurs.getSchueler(true); // sind bereits via SQL nach Klasse und Namen sortiert

              if (alleSchueler.Count == 0)
              {
            log.WarnFormat("Der Kurs {0} hat keine Schueler ", kurs.Data.Bezeichnung);
            return;
              }

              if (alleSchueler.Count > OpenNotendatei.MaxAnzahlSchueler)
              {
            throw new InvalidOperationException("zu viele Schüler " + alleSchueler.Count);
              }

              if (string.IsNullOrEmpty(kurs.FachBezeichnung))
              {
            // ignoriere FPA, Seminare und ähnliche Platzhalter
            log.Debug("Erzeuge keine Datei für das Fach " + kurs.getFach.Kuerzel);
            return;
              }

              CopyExcelFile();

              xls = new OpenNotendatei(fileName);

              FillExcelFile();
              SwitchNotenschluessel();

              // speichere und schließe Datei
              xls.workbook.Save();
              xls.Dispose(); // Destruktor aufrufen
              xls = null;
        }