, * Andreas Oesterreicher and * Rudolf Hangl . */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/person.class.php'); require_once('../../include/benutzer.class.php'); require_once('../../include/student.class.php'); require_once('../../include/prestudent.class.php'); require_once('../../include/note.class.php'); require_once('../../include/lehrveranstaltung.class.php'); require_once('../../include/Excel/excel.php'); $db = new basis_db(); $user = get_uid(); loadVariables($user); if(!isset($_GET['studiengang_kz'])) die('Falsche Parameteruebergabe'); else $studiengang_kz = $_GET['studiengang_kz']; $semester = isset($_GET['semester'])?$_GET['semester']:''; $typ = isset($_GET['typ'])?$_GET['typ']:''; if($semester=='') die('Bitte ein Semester auswaehlen'); $orgform = isset($_GET['orgform'])?$_GET['orgform']:''; $stg = new studiengang(); $stg_arr = array(); $stg->getAll(false); foreach ($stg->result as $studiengang) $stg_arr[$studiengang->studiengang_kz]=$studiengang->kuerzel; $stg = new studiengang(); $stg->load($studiengang_kz); $student = new student(); $result_student = $student->getStudents($studiengang_kz,$semester,null,null,null, $semester_aktuell); $uids=''; foreach ($result_student as $row) { if($uids!='') $uids.=','; $uids.="'".addslashes($row->uid)."'"; } $qry = "SELECT lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, ects FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id IN ( SELECT distinct lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung, public.tbl_studentlehrverband WHERE tbl_studentlehrverband.studiengang_kz='".addslashes($studiengang_kz)."' AND tbl_studentlehrverband.semester='".addslashes($semester)."' AND vw_student_lehrveranstaltung.studiensemester_kurzbz='".addslashes($semester_aktuell)."' AND uid=student_uid AND vw_student_lehrveranstaltung.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz ) AND studiengang_kz<>0 UNION SELECT lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, ects FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_zeugnisnote USING(lehrveranstaltung_id) WHERE tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang_kz)."' AND tbl_zeugnisnote.student_uid in($uids) AND tbl_zeugnisnote.studiensemester_kurzbz='".addslashes($semester_aktuell)."' ORDER BY bezeichnung"; //tbl_lehrveranstaltung.semester='".addslashes($semester)."' AND if(!$result_lva = $db->db_query($qry)) die('Fehler beim Ermitteln der Lehrveranstaltungen'); $noten = new note(); $noten->getAll(); $noten_arr = array(); $noten_farben = array(); foreach ($noten->result as $row) { $noten_arr[$row->note]=$row->anmerkung; $noten_farben[$row->note]=$row->farbe; } if($typ=='xls') { // Creating a workbook $workbook = new Spreadsheet_Excel_Writer(); $workbook->setVersion(8); // sending HTTP headers $workbook->send("Notenliste_".$semester_aktuell."_".$stg->kuerzel.($semester!=''?'_'.$semester:'').".xls"); // Creating a worksheet $worksheet =& $workbook->addWorksheet("Notenliste"); $worksheet->setInputEncoding('utf-8'); //Formate Definieren $format_bold =& $workbook->addFormat(); $format_bold->setBold(); $format_bold->setBorder(1); $format_rotate =& $workbook->addFormat(); $format_rotate->setTextRotation(270); $format_rotate->setAlign('center'); $format_number =& $workbook->addFormat(); $format_number->setNumFormat('0.00'); $format_number->setBorder(1); //Farben ueberschreiben foreach ($noten_farben as $note=>$farbe) { if($farbe!='') { $workbook->setCustomColor($note+10, hexdec(substr($farbe,0,2)), hexdec(substr($farbe,2,2)), hexdec(substr($farbe,4,2))); } else { $workbook->setCustomColor($note+10, 255, 255, 255); } } $spalte=0; $zeile=0; $worksheet->write($zeile,$spalte,'Nachname', $format_bold); $maxlength[$spalte]=10; $worksheet->write($zeile,++$spalte,'Vorname', $format_bold); $maxlength[$spalte]=10; $worksheet->write($zeile,++$spalte,'Personenkennzeichen', $format_bold); $maxlength[$spalte]=20; while($row_lva = $db->db_fetch_object($result_lva)) { $worksheet->write($zeile,++$spalte,$stg_arr[$row_lva->studiengang_kz].$row_lva->semester.' '.$row_lva->bezeichnung.' ('.$row_lva->ects.' ECTS)', $format_rotate); $maxlength[$spalte]=3; } $worksheet->write($zeile,++$spalte,'Notendurchschnitt', $format_bold); $maxlength[$spalte]=15; $worksheet->write($zeile,++$spalte,'Gewichteter Notendurchschnitt', $format_bold); $maxlength[$spalte]=15; $anzahl_lv=array(); $summe_lv=array(); $summegewichtet=0; $anzahlgewichtet=0; foreach ($result_student as $row_student) { if($orgform!='') { //Wenn der Student nicht die passende orgform hat (VZ,BB,FST, etc) //dann nicht anzeigen $prestudent = new prestudent(); $prestudent->getLastStatus($row_student->prestudent_id); if($prestudent->orgform_kurzbz!=$orgform) continue; } $zeile++; $spalte=0; $worksheet->write($zeile,$spalte,$row_student->nachname, $format_bold); if($maxlength[$spalte]nachname)) $maxlength[$spalte]=strlen($row_student->nachname); $worksheet->write($zeile,++$spalte,$row_student->vorname, $format_bold); if($maxlength[$spalte]vorname)) $maxlength[$spalte]=strlen($row_student->vorname); $worksheet->write($zeile,++$spalte,$row_student->matrikelnr, $format_bold); $noten = array(); $qry = "SELECT * FROM lehre.tbl_zeugnisnote WHERE student_uid='".addslashes($row_student->uid)."' AND studiensemester_kurzbz='".addslashes($semester_aktuell)."'"; if($result = $db->db_query($qry)) while($row = $db->db_fetch_object($result)) $noten[$row->lehrveranstaltung_id] = $row->note; $anzahl=0; $summe=0; $rowcount=0; $summeects=0; $gewichtetenote=0; while($rowcount<$db->db_num_rows($result_lva)) { $row_lva = $db->db_fetch_object($result_lva,$rowcount); $rowcount++; if(isset($noten[$row_lva->lehrveranstaltung_id])) { unset($format_colored); $format_colored =& $workbook->addFormat(); $format_colored->setFgColor($noten[$row_lva->lehrveranstaltung_id]+10); $format_colored->setBorder(1); $format_colored->setAlign('center'); if(isset($format_colored)) $worksheet->write($zeile,++$spalte,$noten_arr[$noten[$row_lva->lehrveranstaltung_id]],$format_colored); else $worksheet->write($zeile,++$spalte,$noten_arr[$noten[$row_lva->lehrveranstaltung_id]]); if(is_numeric($noten_arr[$noten[$row_lva->lehrveranstaltung_id]])) { if(!isset($summe_lv[$row_lva->lehrveranstaltung_id])) { $summe_lv[$row_lva->lehrveranstaltung_id]=0; $anzahl_lv[$row_lva->lehrveranstaltung_id]=0; } $summe_lv[$row_lva->lehrveranstaltung_id] += $noten[$row_lva->lehrveranstaltung_id]; $anzahl_lv[$row_lva->lehrveranstaltung_id]++; $summe+=$noten[$row_lva->lehrveranstaltung_id]; if(is_numeric($row_lva->ects)) { $gewichtetenote += $noten[$row_lva->lehrveranstaltung_id]*$row_lva->ects; $summeects+=$row_lva->ects; } $anzahl++; } } else { unset($format_colored); $format_colored =& $workbook->addFormat(); $format_colored->setFgColor(19); $format_colored->setBorder(1); $format_colored->setAlign('center'); $worksheet->write($zeile,++$spalte,'',$format_colored); unset($format_colored); } } if($anzahl!=0) $schnitt = $summe/$anzahl; else $schnitt=0; if($summeects!=0) $gewichtetenote /= $summeects; $worksheet->write($zeile,++$spalte,sprintf("%.2f",$schnitt), $format_number); $worksheet->write($zeile,++$spalte,sprintf("%.2f",$gewichtetenote), $format_number); $summegewichtet+=$gewichtetenote; $anzahlgewichtet++; } $zeile++; $spalte=2; $worksheet->write($zeile,$spalte,'Notendurchschnitt', $format_bold); $summe_schnitt=0; $anzahl_schnitt=0; $rowcount=0; while($rowcount<$db->db_num_rows($result_lva)) { $row_lva = $db->db_fetch_object($result_lva, $rowcount); $rowcount++; if(isset($summe_lv[$row_lva->lehrveranstaltung_id])) { if($anzahl_lv[$row_lva->lehrveranstaltung_id]!=0) $schnitt = $summe_lv[$row_lva->lehrveranstaltung_id]/$anzahl_lv[$row_lva->lehrveranstaltung_id]; else $schnitt = 0; } else $schnitt=0; if($schnitt!=0) { $summe_schnitt +=$schnitt; $anzahl_schnitt++; } $worksheet->write($zeile,++$spalte,sprintf("%.2f",$schnitt), $format_number); } if($anzahl_schnitt!=0) $schnitt = $summe_schnitt/$anzahl_schnitt; else $schnitt=0; $worksheet->write($zeile,++$spalte,sprintf("%.2f",$schnitt), $format_number); if($anzahlgewichtet!=0) $summegewichtet = $summegewichtet/$anzahlgewichtet; $worksheet->write($zeile,++$spalte,sprintf("%.2f", $summegewichtet), $format_number); //Die Breite der Spalten setzen foreach($maxlength as $i=>$breite) $worksheet->setColumn($i, $i, $breite+2); $workbook->close(); } else { echo ' Lehreinheit '; echo "

Notenspiegel $stg->kuerzel $semester

"; echo ''; while($row_lva = $db->db_fetch_object($result_lva)) { echo ""; } echo ''; echo ''; echo ''; $i=0; $anzahl_lv=array(); $summe_lv=array(); $summegewichtet=0; $anzahlgewichtet=0; foreach ($result_student as $row_student) { if($orgform!='') { //Wenn der Student nicht die passende orgform hat (VZ,BB,FST, etc) //dann nicht anzeigen $prestudent = new prestudent(); $prestudent->getLastStatus($row_student->prestudent_id); if($prestudent->orgform_kurzbz!=$orgform) continue; } $i++; echo ""; $noten = array(); $qry = "SELECT * FROM lehre.tbl_zeugnisnote WHERE student_uid='".addslashes($row_student->uid)."' AND studiensemester_kurzbz='".addslashes($semester_aktuell)."'"; if($result = $db->db_query($qry)) while($row = $db->db_fetch_object($result)) $noten[$row->lehrveranstaltung_id] = $row->note; $anzahl=0; $summe=0; $rowcount=0; $summeects=0; $gewichtetenote=0; while($rowcount<$db->db_num_rows($result_lva)) { $row_lva = $db->db_fetch_object($result_lva, $rowcount); $rowcount++; if(isset($noten[$row_lva->lehrveranstaltung_id])) { if($noten_farben[$noten[$row_lva->lehrveranstaltung_id]]!='') $farbe = "style='background-color: #".$noten_farben[$noten[$row_lva->lehrveranstaltung_id]].";'"; else $farbe = ''; echo ""; if(is_numeric($noten_arr[$noten[$row_lva->lehrveranstaltung_id]])) { if(!isset($summe_lv[$row_lva->lehrveranstaltung_id])) { $summe_lv[$row_lva->lehrveranstaltung_id]=0; $anzahl_lv[$row_lva->lehrveranstaltung_id]=0; } $summe_lv[$row_lva->lehrveranstaltung_id] += $noten[$row_lva->lehrveranstaltung_id]; $anzahl_lv[$row_lva->lehrveranstaltung_id]++; $summe+=$noten[$row_lva->lehrveranstaltung_id]; if(is_numeric($row_lva->ects)) { $gewichtetenote += $noten[$row_lva->lehrveranstaltung_id]*$row_lva->ects; $summeects+=$row_lva->ects; } $anzahl++; } } else { echo ''; } } if($anzahl!=0) $schnitt = $summe/$anzahl; else $schnitt=0; if($summeects!=0) $gewichtetenote /= $summeects; echo ""; echo ""; $summegewichtet+=$gewichtetenote; $anzahlgewichtet++; echo ''; } echo ''; $summe_schnitt=0; $anzahl_schnitt=0; $rowcount=0; while($rowcount<$db->db_num_rows($result_lva)) { $row_lva = $db->db_fetch_object($result_lva, $rowcount); $rowcount++; if(isset($summe_lv[$row_lva->lehrveranstaltung_id])) { if($anzahl_lv[$row_lva->lehrveranstaltung_id]!=0) $schnitt = $summe_lv[$row_lva->lehrveranstaltung_id]/$anzahl_lv[$row_lva->lehrveranstaltung_id]; else $schnitt = 0; } else $schnitt=0; if($schnitt!=0) { $summe_schnitt +=$schnitt; $anzahl_schnitt++; } echo ""; } if($anzahl_schnitt!=0) $schnitt = $summe_schnitt/$anzahl_schnitt; else $schnitt=0; if($anzahlgewichtet!=0) $summegewichtet = $summegewichtet/$anzahlgewichtet; echo ""; echo ""; echo '
NrNamePersonenKz".$stg_arr[$row_lva->studiengang_kz]."$row_lva->semester $row_lva->bezeichnung ($row_lva->ects ECTS)NotendurchschnittGewichteter Notendurchschnitt
$i$row_student->nachname $row_student->vorname$row_student->matrikelnr".$noten_arr[$noten[$row_lva->lehrveranstaltung_id]]." ".($schnitt==0?' ':sprintf("%.2f", $schnitt))."".($gewichtetenote==0?' ':sprintf("%.2f", $gewichtetenote))."
  Notendurchschnitt".($schnitt==0?' ':sprintf("%.2f",$schnitt))."".($schnitt==0?' ':sprintf("%.2f",$schnitt))."".($summegewichtet==0?' ':sprintf("%.2f",$summegewichtet))."
'; echo ' '; } ?>