From c7867864687339f33d1ba0b5c30ca8a0920cd029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 4 Sep 2007 10:05:03 +0000 Subject: [PATCH] --- cis/private/lehre/anwesenheitsliste.pdf.php | 2 +- cis/private/lehre/notenliste.xls.php | 2 +- content/statistik/bewerberstatistik.xls.php | 212 ++++++++++++++++++++ 3 files changed, 214 insertions(+), 2 deletions(-) create mode 100644 content/statistik/bewerberstatistik.xls.php diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 5a4417ad2..a7280d4cd 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -275,7 +275,7 @@ $pdf->SetFont('Arial','',8); //$result = $stud->getStudents($einheit,$gruppe,$verband,$sem,$stg); $qry = 'SELECT distinct vorname, nachname, uid, matrikelnr, verband, gruppe, semester FROM '; if($gruppe_kurzbz!='') - $qry .= "campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) WHERE (studiensemester_kurzbz IS NULL OR studiensemester_kurzbz='$stsem') AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'"; + $qry .= "campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) WHERE studiensemester_kurzbz='$stsem' AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'"; else { $qry .= "campus.vw_student WHERE studiengang_kz='$stg' AND semester='$sem'"; diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php index 133ffc2c0..0024c3da5 100644 --- a/cis/private/lehre/notenliste.xls.php +++ b/cis/private/lehre/notenliste.xls.php @@ -125,7 +125,7 @@ if (!$conn = pg_pconnect(CONN_STRING)) $qry = 'SELECT distinct vorname, nachname, uid, matrikelnr, verband, gruppe, semester FROM '; if($gruppe_kurzbz!='') - $qry .= "campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) WHERE (studiensemester_kurzbz IS NULL OR studiensemester_kurzbz='$stsem') AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'"; + $qry .= "campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) WHERE studiensemester_kurzbz='$stsem' AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'"; else { $qry .= "campus.vw_student WHERE studiengang_kz='$stg' AND semester='$sem'"; diff --git a/content/statistik/bewerberstatistik.xls.php b/content/statistik/bewerberstatistik.xls.php new file mode 100644 index 000000000..0ccbf8bf7 --- /dev/null +++ b/content/statistik/bewerberstatistik.xls.php @@ -0,0 +1,212 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Exportiert die Studentendaten in ein Excel File. + * Die zu exportierenden Spalten werden per GET uebergeben. + * Die Adressen werden immer dazugehaengt + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/Excel/excel.php'); +require_once('../../include/studiengang.class.php'); + +// Datenbank Verbindung +if (!$conn = pg_pconnect(CONN_STRING)) + $error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!'; + +$user = get_uid(); + +loadVariables($conn, $user); + + //Parameter holen + $studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; + + $maxlength= array(); + $zeile=1; + + // Creating a workbook + $workbook = new Spreadsheet_Excel_Writer(); + + // sending HTTP headers + $workbook->send("Bewerberstatistik". "_" . date("d_m_Y") . ".xls"); + + // Creating a worksheet + $worksheet =& $workbook->addWorksheet("Bewerberstatistik"); + + $format_bold =& $workbook->addFormat(); + $format_bold->setBold(); + + $format_title =& $workbook->addFormat(); + $format_title->setBold(); + // let's merge + $format_title->setAlign('merge'); + + //Zeilenueberschriften ausgeben + + for($i=0;$i<10;$i++) + $maxlength[$i]=0; + $i=10; + $stg_spalte=array(); + $studiengang = new studiengang($conn); + $studiengang->getAll('typ, kurzbzlang', false); + foreach ($studiengang->result as $row) + { + $worksheet->write(0,$i,'('.strtoupper($row->typ).') '.$row->kurzbzlang, $format_bold); + $maxlength[$i]=strlen('('.strtoupper($row->typ).') '.$row->kurzbzlang); + $stg_spalte[$row->studiengang_kz]=$i; + $i++; + } + + // Daten holen + $qry = "SELECT *, tbl_person.person_id + FROM + public.tbl_prestudentrolle, public.tbl_prestudent, public.tbl_person + WHERE + tbl_prestudentrolle.prestudent_id=tbl_prestudent.prestudent_id AND + tbl_prestudent.person_id=tbl_person.person_id AND + studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND + rolle_kurzbz in('Interessent','Bewerber','Student','Abbrecher','Unterbrecher') + ORDER BY nachname, vorname, tbl_prestudentrolle.datum, tbl_prestudentrolle.insertamum"; + + //echo $qry; + + if($result = pg_query($conn, $qry)) + { + $lastperson=''; + $zeile=0; + + while($row = pg_fetch_object($result)) + { + if($lastperson!=$row->person_id) + { + if($lastperson!='') + { + $anzahl_bewerbung=-1; + foreach ($rollen as $stg=>$status) + { + //ROLLEN + $worksheet->write($zeile,$stg_spalte[$stg],$status); + if($maxlength[$stg_spalte[$stg]]write($zeile,4,$anzahl_bewerbung); + if($maxlength[4]0) + $wert='M'; + else + $wert='E'; + + $worksheet->write($zeile,5,$wert); + if($maxlength[5]person_id; + + //DATUM + $worksheet->write($zeile,$i,date('d.m.y')); + if($maxlength[$i]write($zeile,++$i,$row->vorname); + if($maxlength[$i]vorname)) + $maxlength[$i]=strlen($row->vorname); + + //NACHNAME + $worksheet->write($zeile,++$i,$row->nachname); + if($maxlength[$i]nachname)) + $maxlength[$i]=strlen($row->nachname); + + //GESCHLECHT + $worksheet->write($zeile,++$i,$row->geschlecht); + if($maxlength[$i]geschlecht)) + $maxlength[$i]=strlen($row->geschlecht); + + //Spalten fuer Anzahl der Bewerbungen freilassen + $i++; + $i++; + + //ZGV CODE + $worksheet->write($zeile,++$i,$row->zgv_code); + if($maxlength[$i]zgv_code)) + $maxlength[$i]=strlen($row->zgv_code); + } + + switch($row->rolle_kurzbz) + { + case 'Interessent': $kuerzel = 'i'; break; + case 'Bewerber': $kuerzel='b'; break; + case 'Student': $kuerzel='s'; break; + case 'Abbrecher': $kuerzel='a'; break; + case 'Unterbrecher': $kuerzel='u'; break; + default: $kuerzel=''; break; + } + if(isset($rollen[$row->studiengang_kz])) + { + if(strpos($rollen[$row->studiengang_kz],$kuerzel)===false) + { + $rollen[$row->studiengang_kz] .= $kuerzel.$row->ausbildungssemester; + } + } + else + $rollen[$row->studiengang_kz] = $kuerzel.$row->ausbildungssemester; + } + $anzahl_bewerbung=-1; + foreach ($rollen as $stg=>$status) + { + //ROLLEN + $worksheet->write($zeile,$stg_spalte[$stg],$status); + if($maxlength[$stg_spalte[$stg]]write($zeile,4,$anzahl_bewerbung); + if($maxlength[4]0) + $wert='M'; + else + $wert='E'; + + $worksheet->write($zeile,5,$wert); + if($maxlength[5]$breite) + $worksheet->setColumn($i, $i, $breite+2); + + $workbook->close(); + +?>